佚名通过本文主要向大家介绍了mdk,keil mdk,mdk下载,keil mdk 5.0破解,mdk5.0安装教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:MDK 在链接脚本中添加SDRAN section的问题
描述:
uint32_t sdram_show[65280] __attribute__ ((section ("SDRAM"))) ;
由此需要在链接脚本里添加section
LR_IROM1 0x08000000 0x00100000 { ; load region size_region
ER_IROM1 0x08000000 0x00100000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20010000 0x00040000 { ; RW data
.ANY (+RW +ZI)
}
SDRAM 0xC0000000 0x400000{
}
}
SDRAM大括号内 应该写什么呢?
现在提示以下错误
.\Objects\STM32F746NGH6_LCD.sct(15): warning: L6312W: Empty Execution region description for region SDRAM
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching lcd.o(.bss).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching uart.o(.bss).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching sdram.o(.bss).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching system_stm32f7xx.o(.data).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching stm32f7xx_hal.o(.data).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching stdout.o(.data).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6407E: Sections of aggregate size 0x184 bytes could not fit into .ANY selector(s).
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 2 information, 1 warning and 7 error messages.
".\Objects\STM32F746NGH6_LCD.axf" - 7 Error(s), 3 Warning(s).
如果我按照以下方法进行定义,则没有错误
uint32_t sdram_show[65280] __attribute__((at(0xC0000000)));
但是需要手动地去计算数组的开始地址,很不方便。各位大神有没有办法解决上面的错误问题?SDRAN大括号内应该写些什么东西?
描述:
MDK链接脚本STM32SDRAMSCT
最近在玩STM32F7系列单片机,开发板上面有SDRAM,用指针可以对SDRAM正确地进行读写,但是我想在申请数据的时候不用自己计算数组的开始地址,而是由编译器进行安排。我的代码如下:uint32_t sdram_show[65280] __attribute__ ((section ("SDRAM"))) ;
由此需要在链接脚本里添加section
LR_IROM1 0x08000000 0x00100000 { ; load region size_region
ER_IROM1 0x08000000 0x00100000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20010000 0x00040000 { ; RW data
.ANY (+RW +ZI)
}
SDRAM 0xC0000000 0x400000{
}
}
SDRAM大括号内 应该写什么呢?
现在提示以下错误
.\Objects\STM32F746NGH6_LCD.sct(15): warning: L6312W: Empty Execution region description for region SDRAM
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching lcd.o(.bss).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching uart.o(.bss).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching sdram.o(.bss).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching system_stm32f7xx.o(.data).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching stm32f7xx_hal.o(.data).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6406E: No space in execution regions with .ANY selector matching stdout.o(.data).
.\Objects\STM32F746NGH6_LCD.sct: Error: L6407E: Sections of aggregate size 0x184 bytes could not fit into .ANY selector(s).
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 2 information, 1 warning and 7 error messages.
".\Objects\STM32F746NGH6_LCD.axf" - 7 Error(s), 3 Warning(s).
如果我按照以下方法进行定义,则没有错误
uint32_t sdram_show[65280] __attribute__((at(0xC0000000)));
但是需要手动地去计算数组的开始地址,很不方便。各位大神有没有办法解决上面的错误问题?SDRAN大括号内应该写些什么东西?