Cstyle的UEFI导读:Embedded Controller链接过程

        以MEC1428为例来介绍EC的开发流程和基本原理。按照惯例从链接开始介绍。

一.自定义链接脚本。默认Mplab x默认使用xc32提供的脚本,在Mplab x也可以按照下图自定义链接脚本。

 

 

二.定义地址映射

针对MEC1428其地址及内存映射关系如下Data RAM:32K(0xBFD18000),Code RAM:160K(0xBFCF0000),ROM:192K(0xBFC00000),MMCR:2M(0xA0000000)

/*************************************************************************

* Memory Regions

* Memory regions without attributes cannot be used for orphaned sections.

* Only sections specifically assigned to these regions can be allocated

* into these regions.

*************************************************************************/

MEMORY

{

kseg1_boot_mem : ORIGIN = 0xBFC00000, LENGTH = 0x30000 (192K)

kseg0_program_mem (rx) : ORIGIN = 0xBFCF0000, LENGTH = 0x28000 (Code RAM:160K,读+执行)

sfrs : ORIGIN = 0xA0000000, LENGTH = 0x100000 (MMCR:1M?)

kseg1_data_mem (rwx) : ORIGIN = 0xBFD18000, LENGTH = 0x8000 (Data RAM:32K,读写+执行)

}

下面的sections段,定义了.reset也就是系统reset之后执行的user app第一行代码reset hander的位置(0xBFD00000),在在使用mec142x_spi_gen.exe编译SPI flash文件的时候,.toml脚本的

fw1EntryAddress段必须填入0xBFD00000作为开机后执行的第一条user app指令。fw1LoadAddress必须是kseg0_program_mem就是是user app必须加载到code ram的开始位置。

 

SECTIONS

{

.reset _RESET_ADDR :

{

KEEP(*(.reset))

} > kseg0_program_mem

 

.app_excpt _GEN_EXCPT_ADDR :

{

KEEP(*(.gen_handler))

} > kseg0_program_mem

}

下面是编译输出的最终地址映射表,可以从中看到代码段的加载基地址(.text),reset hander(.reset),异常向量表(.app_excpt),C startup如口段(.startup)

.reset 0xbfd00000 0x18 /microchip/xc32/v2.10/bin/bin/../../lib/gcc/pic32mx/4.8.3/../../../../pic32mx/lib/./proc/MEC1428/crt0_mips32r2.o

.gen_handler 0xbfd00180 0x10 ./microchip/xc32/v2.10/bin/bin/../../lib/gcc/pic32mx/4.8.3/../../../../pic32mx/lib/./proc/MEC1428/crt0_mips32r2.o

.reset.startup 0xbfd017ac 0x140 ./microchip/xc32/v2.10/bin/bin/../../lib/gcc/pic32mx/4.8.3/../../../../pic32mx/lib/./proc/MEC1428/crt0_mips32r2.o

.text.main_entry 0xbfcf8b64 0x54 ./microchip/xc32/v2.10/bin/bin/../../lib/gcc/pic32mx/4.8.3/../../../../pic32mx/lib/./proc/MEC1428/crt0_mips32r2.o

0xbfcf8b98 __crt0_exit

 

转载请注明出处,亦可关注微信公众号:固件C字营

Cstyle.z.zhou@outlook.com   //  http://blog.csdn.net/CStyle_0x007

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值