eric2013 发表于 2021-1-29 10:00:29

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);




hpxzw_foxmai 发表于 2021-1-29 10:28:35

CMSIS里面,ac5 ac6 没有统一的宏定义来自动处理这个吗?
http://www.armbbs.cn/forum.php?mod=viewthread&tid=96796&highlight=ac5%2Bac6

eric2013 发表于 2021-1-29 15:43:00

hpxzw_foxmai 发表于 2021-1-29 10:28
CMSIS里面,ac5 ac6 没有统一的宏定义来自动处理这个吗?
http://www.armbbs.cn/forum.php?mod=viewthread ...

对,AC5和AC6是不一样的。

booksyhay 发表于 2024-3-1 14:20:13

亲测,这里的".bss"应去掉。
    #define__MEMORY_AT__(x)   __attribute__((section(".bss.ARM.__at_"#x)))

eric2013 发表于 2024-3-1 17:10:56

booksyhay 发表于 2024-3-1 14:20
亲测,这里的".bss"应去掉。
    #define__MEMORY_AT__(x)   __attribute__((section(".bss.ARM.__at_"# ...

这个是特地加上的,之前是没加的。
页: [1]
查看完整版本: MDK5 AC6下载提示No Algorithm found for: 30040000H - 300400BFH解决办法