github上的源碼只有flash版本的绽慈,使用IAR燒寫失敗,使用MDK燒寫運(yùn)行也不正常辈毯,調(diào)試也調(diào)試不了坝疼,索性配置一個(gè)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()函數(shù)钝凶,如下:
-- 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);
編譯后仿真調(diào)試就可以了,如果編譯出現(xiàn)SECTION(x)相關(guān)的錯(cuò)誤管毙,將rtdef.h下面的宏定義修改如下:
-- #define SECTION(x) @ x
++ #define SECTION(x) __attribute__((section(x)))
以后再慢慢深入研究腿椎。