MDK5 AC6下载提示No Algorithm found for: 30040000H - 300400BFH解决办法
这个主要是因为下面的定义方式导致的,使用MDK5下载这种程序也没有什么影响,因为这个本身就不需要下载到Flash,这个是RAM使用的,但就是看着不舒服
解决办法:
#ifndef __MEMORY_AT
#if (defined (__CC_ARM))
#define__MEMORY_AT(x) __attribute__((at(x)))
#elif (defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
#define__MEMORY_AT__(x) __attribute__((section(".bss.ARM.__at_"#x)))
#define__MEMORY_AT(x) __MEMORY_AT__(x)
#else
#define__MEMORY_AT(x)
#warning Position memory containing __MEMORY_AT macro at absolute address!
#endif
#endif
/* Ethernet Rx DMA 描述符 */
ETH_DMADescTypeDefDMARxDscrTab __MEMORY_AT(0x30040000);
/* Ethernet Tx DMA 描述符 */
ETH_DMADescTypeDefDMATxDscrTab __MEMORY_AT(0x30040060);
/* Ethernet 接收缓冲 */
uint8_t Rx_Buff __MEMORY_AT(0x30040200);
CMSIS里面,ac5 ac6 没有统一的宏定义来自动处理这个吗?
http://www.armbbs.cn/forum.php?mod=viewthread&tid=96796&highlight=ac5%2Bac6 hpxzw_foxmai 发表于 2021-1-29 10:28
CMSIS里面,ac5 ac6 没有统一的宏定义来自动处理这个吗?
http://www.armbbs.cn/forum.php?mod=viewthread ...
对,AC5和AC6是不一样的。 亲测,这里的".bss"应去掉。
#define__MEMORY_AT__(x) __attribute__((section(".bss.ARM.__at_"#x))) booksyhay 发表于 2024-3-1 14:20
亲测,这里的".bss"应去掉。
#define__MEMORY_AT__(x) __attribute__((section(".bss.ARM.__at_"# ...
这个是特地加上的,之前是没加的。
页:
[1]