|
最近有一个项目,代码量比较大,使用了STM32H7B0,想将部分代码放在外部flash里面运行。我看了硬汉哥前几年写的一个帖子,是基于MDK得,但是基于STM32CubeIDE得还没有例子。想知道怎么改得。
我自己做了修改,但是会报错:
/* Specify the memory areas */
MEMORY {
ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K
DTCMRAM1 (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
DTCMRAM2 (xrw) : ORIGIN = 0x20010000, LENGTH = 64K
RAM (xrw) : ORIGIN = 0x24000000, LENGTH = 1024K
RAM_CD (xrw) : ORIGIN = 0x30000000, LENGTH = 128K
RAM_SRD (xrw) : ORIGIN = 0x38000000, LENGTH = 32K
SPI_FLASH (rx) : ORIGIN = 0x90000000, LENGTH = 8192K
}
SECTIONS {
...
/* New section for usart.o in SPI_FLASH */
.usart_in_spi_flash :
{
. = ALIGN(4);
BSP/led/led.o(.text*) /* Place .text section of usart.o into SPI_FLASH */
. = ALIGN(4);
} >SPI_FLASH
...
}
会报一个:
../BSP/led/led.c:11: multiple definition of `led_open';
../BSP/led/led.c:9: multiple definition of `ledCnt';
这只是一个测试程序,led.c里面就只有一个ledCnt得全局变量和一个led_open得函数。
|
|