STM32F429,u盘写入失败问题
·
总结:(1)RW_IRAM2 0x10000000 0x00010000,不支持dma
(2)因为写入的函数中的局部变量定义在任务栈中,任务栈定义需要强制RAM1中
1.启用了RAM2
2 .sct文件配置
(1)将usb相关文件和任务栈,指定到RAM1中,usb驱动中用到了dma但是RAM2不支持dma
( 2)将 startup_stm32f429_439xx.o(启动文件)指定到RAM1中,我是因为boot中会判断栈顶位置,指定启动文件可以将栈顶指定在0x20000000区域
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08020000 0x000D0000 { ; load region size_region
ER_IROM1 0x08020000 0x000D0000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
.ANY (+XO)
}
RW_IRAM1 0x20000000 0x00030000 { ; RW data
startup_stm32f429_439xx.o (+RW +ZI)
app_data_save.o (+RW +ZI)
*usb* (+RW +ZI)
ff.o (+RW +ZI)
diskio.o (+RW +ZI)
sdio_sdcard.o (+RW +ZI)
w25qxx.o (+RW +ZI)
sfud*.o (+RW +ZI)
.ANY (+RW +ZI)
MyTask.o (+RW +ZI)
}
RW_IRAM2 0x10000000 0x00010000 {
os_*.o (+RW +ZI)
.ANY (+RW +ZI)
}
}
更多推荐


所有评论(0)