前言
恩智浦公司的RT1064功能十分的强大,开发RT1064的IDE虽然是基于Eclipse开发的,但是功能也很丰富,类似查看FreeRTOS状态,不用手动配置烧录器(能够自动识别已有的部分烧录器(如J-Link));
问题描述
最近开发过程中遇到一个困扰:由于之前的板子是有外借内存,但是后面的板子取消了内存,所以只能用CPU内的内存,这样程序还是往之前的内存里跑,结果只能出现了bug(无法调试),程序根本进入不了Mian函数,但是简单的点灯程序可以正常的调试;
根据数据手册我们可以看到RT1064的片上内存只有1M,而且这1M分为了三部分(ITCM、DTCM、OCRAM);
根据编译的信息,我们可以看到,这三块区域的分配为ITCM(128k)DTCM(128k)OCRAM(768k)
这里BOARD_SDRAM的大小并没有30M,所以我的程序默认是跑在了这里,所以导致了我的程序无法正常的运行,所以我们要切换内存区块
1、打开项目属性栏
2、找到设置栏,更换程序运行的区域
3、将全局的数据放在OCRAM区块,堆栈放在DTCM区块,然后保存设置并关闭,重新编译,会发现程序运行的区块发生了改变;
然后运行程序便可以正常调试