Keil Arm中使用malloc函数的方法

   

转载至:http://blog.sina.com.cn/s/blog_a189aca10102vabo.html
Keil Arm中使用malloc函数的方法:

1、需要使用微库:Keil Arm中使用malloc函数的方法

如果不选用微库的话会报错,例如:.\Output\SaiWu.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested, but _ttywrch was referenced

2、在所使用的C文件中包含stdlib.h,笔者发现不包含也不会报错,可能是笔者其它头文件包含了

没注意吧,由于头文件众多,笔者就不细找了,总之如果报错就包含stdlib.h就可以了。

3、到了这里就已经可以使用malloc函数了,但是不能分配较大的内存,是因为KEIL中默认给heap(分配了很小的内存),笔者使用STM32F103单片机中的启动文件为heap默认分配了512字节的内存(可能不同的单片机默认分配的不同)如下图:

Keil Arm中使用malloc函数的方法

笔者将其修改为 10K大小,方便使用,至于在具体环境中如何给heap分配大小,请读者自行考虑

Keil Arm中使用malloc函数的方法
注:启动文件就是单片机对应的启动文件,一篇是KEIL自带的,或者在对应官方网站下载,笔者的启动文件就是

startup_st32f10x.hd.s

经过上面3个步骤,就可以愉快的在keil中使用malloc函数