软件/RTOS/EOS
uCOS-II内存管理的一个提示
01 year ago
在LPC2148上使用uCOS-II,OSMemGet获取内存过程中会出现错误,获取内存失败,进入“startup.s”中的取数据错误。
经过一番调试,这个问题是由于内存地址对齐引发的,在LPC2148 ARM7上,如设置OSMemCreate的区块不是2的倍数,可能引发该问题。例如OSMemCreate时,在0×40000520地址开始建立单向链表的时候,无法在0×40000552地址写入下一个freeblock的地址,0×40000584,这个地址实际写到了0×40000550的位置。
这个问题应该是内存对齐的限制引发的。但是暂时不清楚这是编译器还是芯片还是配置的限制。暂时把内存卡的大小调整为2的幂规避。