ST裸机开发能用malloc吗?

[复制链接]
6312|7
 楼主| shangelaila 发表于 2010-7-16 20:17 | 显示全部楼层 |阅读模式
:Q纠结的一个问题。。裸机开发没有系统的话,能不能用malloc()函数呢?如果能用,是谁在管理堆区呢?
zq1987731 发表于 2010-7-16 20:21 | 显示全部楼层
可以用,注意设置好Heap的大小,以及用完后的free()...........
 楼主| shangelaila 发表于 2010-7-16 20:43 | 显示全部楼层
在IAR好像不能直接调用malloc()函数啊。。
香水城 发表于 2010-7-16 21:00 | 显示全部楼层
裸机哪里来的malloc()函数?
hgjinwei 发表于 2010-7-16 21:16 | 显示全部楼层
有的,这个是属于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
 楼主| shangelaila 发表于 2010-7-16 21:18 | 显示全部楼层
0.0
那IAR中在哪里呢?
hgjinwei 发表于 2010-7-16 21:25 | 显示全部楼层
IAR没用过,不清楚。
winloop 发表于 2010-7-16 21:44 | 显示全部楼层
51里都能用malloc,不过内存块要在进入main()之前就分配好,而不能在main()中进行动态的进行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

120

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部