链表头文件使用linu内核中的list.h
创建链表的结构体时需要malloc开辟相应的存储空间,发现当结构体占用空间较小和malloc次数不多的情况,打印结构体数据。没有问题,但是一旦占用内存较大的时候,打印结构体数据,就会出现问题,调试,打印每个结构体的首地址 发现,当地址到一定数值的时候,又从头循环了,破坏之前的结构体了。也就是说malloc开辟的又重头来了。
仔细分析c语言中存储区可分为代码区,常量区,全局区(静态区), 堆,栈。malloc开辟的空间在堆区中。而stm32的启动代码startup_stm32f10x_hs.s中定义的Heap_Size EQU 0x0000200 是512Byte,很小。所以修改其值即可。
这里我定义Heap_Size EQU 0x00020000 8K字节。足够我使用了。