ST裸机开发能用malloc吗?

在乡村11   2010-7-16 20:17 楼主
                                 纠结的一个问题。。裸机开发没有系统的话,能不能用malloc()函数呢?如果能用,是谁在管理堆区呢?

回复评论 (7)

                                 可以用,注意设置好Heap的大小,以及用完后的free()...........
点赞  2010-7-16 20:21
                                 在IAR好像不能直接调用malloc()函数啊。。
点赞  2010-7-16 20:43
                                 裸机哪里来的malloc()函数?
点赞  2010-7-16 21:00
有的,这个是属于C库函数,编译器会给你编译出一个malloc函数的,不过Heap还得自己设置。
MDK中这个函数就是用来设置heap大小的.
  1. ;*******************************************************************************
  2. ; User Stack and Heap initialization
  3. ;*******************************************************************************
  4.                  IF      :DEF:__MICROLIB
  5.                
  6.                  EXPORT  __initial_sp
  7.                  EXPORT  __heap_base
  8.                  EXPORT  __heap_limit
  9.                
  10.                  ELSE
  11.                
  12.                  IMPORT  __use_two_region_memory
  13.                  EXPORT  __user_initial_stackheap
  14.                  
  15. __user_initial_stackheap

  16.                  LDR     R0, =  Heap_Mem
  17.                  LDR     R1, =(Stack_Mem + Stack_Size)
  18.                  LDR     R2, = (Heap_Mem +  Heap_Size)
  19.                  LDR     R3, = Stack_Mem
  20.                  BX      LR

  21.                  ALIGN
复制代码
点赞  2010-7-16 21:16
0.0
那IAR中在哪里呢?
点赞  2010-7-16 21:18
                                 IAR没用过,不清楚。
点赞  2010-7-16 21:25
                                 51里都能用malloc,不过内存块要在进入main()之前就分配好,而不能在main()中进行动态的进行
点赞  2010-7-16 21:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复