1、GPIO复用寄存器

2、上拉配置寄存器

3、方向配置寄存器

4、报错(内存不足)

[27]"E:/DSPProject/F28035.cmd", line 173: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment/blocking fails for section ".econst" size 0x139 page 0.  Available memory ranges:
[28]   FLASHA       size: 0x1f80       unused: 0x114        max hole: 0x114
[29]error #10010: errors encountered during linking; "MyFirstProject.out" not built

方法1:修改CMD文件,扩展存储区域(推荐)

F28035的CMD文件通常将64KB Flash划分为多个扇区。检查 F28035.cmd 第173行附近,将 .econst 分配到多个连续的Flash扇区:

SECTIONS
{
   /* 原配置可能是:.econst : > FLASHA PAGE = 0 */
   /* 修改为分配到多个扇区(使用 | 操作符) */
   .econst : >> FLASHA | FLASHB | FLASHC PAGE = 0
   
   /* 或者如果FLASHA被其他段占满,单独指定到空间充足的扇区 */
   .econst : > FLASHB PAGE = 0
}

注意:F28035的Flash地址范围是 0x3E8000 - 0x3F7FFF(共64KB)。如果CMD文件中将FLASHA定义得很小(如只包含部分扇区),需要合并扇区或改用更大的区域

或者,对于F28035,最常见的快速修复是修改CMD文件,将.econst分配到整个Flash空间:

MEMORY
{
    /* 合并所有Flash为一个区域,或确保有足够大的连续区域 */
    FLASH_ALL (RX) : origin = 0x3E8000, length = 0x00FF80
}

SECTIONS
{
    .text : > FLASH_ALL PAGE = 0
    .cinit : > FLASH_ALL PAGE = 0
    .econst : > FLASH_ALL PAGE = 0  /* 确保econst有充足空间 */
    .switch : > FLASH_ALL PAGE = 0
}

3、继续完善添加中。。。

更多推荐