大家好,
我正在从 MPC5744P 移植 MPC5775E 的启动应用程序,所以首先我创建了一个使用 S32DS 闪烁 LED 的项目,我将 linker_flash.ld 中的默认闪存地址从 00800000 更改为 0,如下所示
/* 定义闪存 */
/*FLASH_BASE_ADDR = DEFINED(__flash_base_addr__) ? __flash_base_addr__ : 0x00800008;*/
FLASH_BASE_ADDR = DEFINED(__flash_base_addr__) ? __flash_base_addr__ : 0x00000008;
/*FLASH_SIZE = DEFINED(__flash_size__) ? __flash_size__ : 2048K - 0x08;*/
FLASH_SIZE = DEFINED(__flash_size__) ? __flash_size__ : 128K - 0x08;
内存
{
flash_rchw:org = 0x00000000,len = 0x4
cpu0_reset_vec:org = 0x00000000+0x04,len = 0x4
但是当我尝试使用 OpenSda 进行闪存时,我在闪存编程消息中收到如下错误
日志如下所示
通过 127.0.0.1 从“127.0.0.1”连接。从端口“63368”到 7224 的连接
版权所有 2018 P&E Microcomputer Systems, Inc.
命令行:C:NXPS32DS_Power_v2.1eclipsepluginscom.pemicro.debug.gdbjtag.ppc_1.8.7.201906071634win32pegdbserver_power_console -device=MPC5775E -startserver -singlesession -serverport=7224 -gdbmiport=6224 -接口=OPENSDA -speed=5000 -port=USB1¤
命令>RE
正在初始化。
设备 IDCODE 是 $00000377
设备 ID 修订版为 $00000001
检测到 MPC5777C 设备。
目标已重置并处于活动状态。
CMD>CM C:NXPS32DS_Power_v2.1eclipsepluginscom.pemicro.debug.gdbjtag.ppc_1.8.7.201906071634win32gdiP&E
xp_mpc5775e_1x32x1024k_cflash_highspeed.pcp
正在初始化。
设备 IDCODE 是 $00000377
设备 ID 修订版为 $00000001
检测到 MPC5777C 设备。
初始化。
;版本 1.00,07/13/2018,版权所有 P&E Microcomputer Systems,
www.pemicro.com [5775EB_4meg_highspeed]
;设备 NXP,MPC5775E,1x32x1024k,desc=CFlash_highspeed
;begin_cs 设备=$00800000,长度=$00400000,ram=$00300000
加载编程算法...
完毕。
编程顺序为:擦除、空白检查、编程和验证{默认}
命令>VC
正在将目标文件 CRC-16 验证到设备范围 ...
错误 - 模块范围内没有有效数据。
闪存的当前内容与要编程的应用程序不匹配
命令>EM
擦除。
模块已被删除。
命令>下午
编程。
处理目标文件数据 ...
没有要编程的数据。
.
编程时出错。
设备闪存编程错误
闪存编程期间发生错误。
设备 IDCODE 是 $00000377
设备 ID 修订版为 $00000001
启动重置脚本 (C:NXPS32DS_Power_v2.1eclipsepluginscom.pemicro.debug.gdbjtag.ppc_1.8.7.201906071634win32gdiP&Es32e200_mpc5777c.mac) ...
REM 该脚本与 MPC5777C 器件兼容。
REM Clean GPRs 在使用算法后去除残留数据
REM 设置 MMU 用于外围 B 模块
REM 基址 = $FFE0_0000
REM TLB0, 2 MByte 内存空间, Guarded, Don't Cache, All Access
一旦状态注册结果 = $0209
REM 设置 MMU 将内部 Flash 置为 0...
REM 虚拟地址 0x0 -> 物理地址 = $0000_0000
REM TLB1,16 MByte 内存空间,不受保护,可高速缓存,所有访问
一旦状态注册结果 = $0209
REM 为外部存储器设置 MMU
REM 基址 = $2000_0000
REM TLB2,16 MByte 内存空间,不受保护,可高速缓存,所有访问
一旦状态注册结果 = $0209
REM 为内部 SRAM 设置 MMU
REM 基址 = $4000_0000
REM TLB3,512 KByte 内存空间,不受保护,不缓存,所有访问
一旦状态注册结果 = $0209
REM 为 Periph A 模块设置 MMU
REM 基址 = $C3E0_0000
REM TLB4, 2 MByte 内存空间, Guarded, Don't Cache, All Access
一旦状态注册结果 = $0209
REM 初始化所有主 SRAM - 512KB
将 RAM 从 $40000000 初始化为 $4007FFFF。
重置脚本(C:NXPS32DS_Power_v2.1eclipsepluginscom.pemicro.debug.gdbjtag.ppc_1.8.7.201906071634win32gdiP&Es32e200_mpc5777c.mac)完成。
检测到 MPC5777C 设备。
PE-ERROR:下载到设备时出错。
通过 127.0.0.1 与“127.0.0.1”断开连接。通过端口“63368”与 7224 断开连接
目标断开连接。
请让我知道如何更新链接器以正确闪存到自定义闪存地址?