Keil Arm中使用malloc函数的方法:
1、需要使用微库:Arm中使用malloc函数的方法" TITLE="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字节的内存(可能不同的单片机默认分配的不同)如下图:
Arm中使用malloc函数的方法" TITLE="Keil Arm中使用malloc函数的方法" />
笔者将其修改为 10K大小,方便使用,至于在具体环境中如何给heap分配大小,请读者自行考虑
rm中使用malloc函数的方法" TITLE="Keil Arm中使用malloc函数的方法" />
注:启动文件就是单片机对应的启动文件,一篇是KEIL自带的,或者在对应官方网站下载,笔者的启动文件就是
startup_st32f10x.hd.s
|