rt-thread SDRAM中调试配置

github上的源码只有flash版本的,使用IAR烧写失败,使用MDK烧写运行也不正常,调试也调试不了,索性配置一个SDRAM版本。

1.拷贝\bsp\imxrt\Libraries\imxrt1050\devices\MIMXRT1052\iar\MIMXRT1052xxxxx_sdram.icf到工程目录;

2.编辑IAR配置里的Linker里的Linker configuration file修改Override default里的icf文件为$PROJ_DIR$\MIMXRT1052xxxxx_sdram.icf

3.用文本编辑器在icf里面添加:define exported symbol __RTT_HEAP_END = m_data3_end-__size_cstack__;

4.修改board.c下的rt_hw_board_init()函数,如下:

-- rt_kprintf("sdram heap, begin: 0x%p, end: 0x%p\n", SDRAM_BEGIN, SDRAM_END);

-- rt_system_heap_init((void *)SDRAM_BEGIN, (void *)SDRAM_END);

-- rt_memheap_init(&system_heap, "sram", (void *)HEAP_BEGIN, HEAP_SIZE);

++ rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);

编译后仿真调试就可以了,如果编译出现SECTION(x)相关的错误,将rtdef.h下面的宏定义修改如下:

-- #define SECTION(x) @ x

++ #define SECTION(x) __attribute__((section(x)))

以后再慢慢深入研究。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。