【SemiDrive E3】BPT 打包流程和 USB 烧录 劳德巴赫烧录

一、简介

1、SSDK 环境下打包得到 Boot Package 与 PAC 文件(用于 Semidrive  下载工具烧写)的流程以及打包方法;

2、将编译产物 bin文件转换为 Boot Package 格式,ROM 启动时需要识别这种格式的文件;

3、将 Boot Package 形成 PAC 文件用于下载工具烧录,PAC 文件中包含了 Dloader/Flashloader、SFS 等其他需要烧录或参与烧录过程的文件;
 




     • sfs.img 仅存在于 NOR/Hyper Flash 的 pac 包中,用于存储 Flash 信息,供 ROM 启动时读取;
     • rfd.img 仅存在于 NOR/Hyper Flashpac 包中,用于Flash加密启动;
     • 存储设备 eMMC与SDcard 所使用PAC文件是一样的,区别在于工具下载 SDcard 时,仅下载 BOOT2.img 作为 Normal Boot Package 文件,因为 SDcard 仅支持 1 个 Boot Package;
     • FDA.img 是 Dloader 或 Flashloader 程序,这里称为 Donwloader 程序。该程序仅下载时存在于 RAM,不占用系统的存储空间。当 FDA.img 为 Dloader 时,拨码至 USB 模式上电,ROM 启动后,先下载 Dloader 程序至 RAM中,ROM 接收完 Dloader 程序并校验通过后在 RAM 中运行该程序,Dloader 会初始化通讯接口与存储设备,然后与上位机进行通讯,根据指令将各个 Boot Package、SFS、RFD 文件写入到存储设备中;当 FDA.img 为Flashloader 时,拨码至 JTAG 模式上电,工具将 Flashloader 程序加载到 RAM 中,然后调用 Flashloader 中的函数将各个 BootPackage、SFS、RFD 文件写入到存储设备中;注意,Flashloader 仅支持 Flash 下载,不支持 eMMC下载;Flashloader 不支持使用分区表的 PAC 包下载;
     • 用户也可以在打包过程中以地址的形式加入用户的固件,在下载时能够将其下载到该地址中;

 

二、 Hyper Flash 底包打包

1、软件版本 :基于 E3_SSDK_PTG3.0_Source_Code

2、进入到 ssdk 打开命令提示符窗口或者 Wind11 终端命令窗口

 

3、输入以下命令,即可生成 Hyper Flash 的底包,这里以 E3430 GPIO 为例:

prebuilts\windows\python-3.7.0\python.exe tools\genpac.py -b e3_gateway -p gpio -v IAR -c Debug -f devices\E3430\pacconfig\pac_config_sf.json --chipid=E3430 -d dloader

4、生成的底包如下图所示

 

三、Nor Flash 底包打包

1、1、软件版本 :基于 E3_SSDK_PTG3.0_Source_Code

2、进入到 ssdk 打开命令提示符窗口或者 Wind11 终端命令窗口

 

3、输入以下命令,即可生成 Hyper Flash 的底包,这里以 E3430 GPIO 为例:

prebuilts\windows\python-3.7.0\python.exe tools\genpac.py -b e3_gateway -p gpio -v IAR -c Debug -f devices\E3430\pacconfig\pac_config_sf_norflash.json --chipid=E3430 -d dloader

 

4、注意,这里需要更改打包时所用的 sfs 如下图,我们打开编辑 pac_config_sf_norflash.json 文件,将语句mt35_ospi_fast_read.json 替换为 is25-1-1-4.json 然后载按照 3 的操作进行打包。

 

  SSDK在 tools\sdtools\sfs\ 路径下提供了几种SFS固件以供选择

5、生成的底包如下图所示,这个是以 SSDK 例程 GPIO 进行打包的,所以可以在例程里面找到打包好的文件。

当然,在我们命令打包时,脚本实现将生成的 PAC 文件也 Copy 到其他的目录 :ssdk\tools\sdtools\pac\e3_gateway\gpio (如下图所示)


四、USB 烧录

1、使用 Semidriver 提供的工具 SDToolBox



2、打开 SDFactory

(1) 点击 + 号,将前面生成的底包添加进来

(2) 点击中间的设置图标,

将 IAR 或者其他生成的带有 BPT 的E3_ref_gateway_E3430.elf.bin.pac 替换boot0 ~ boot2,如下图所示,之后点击 OK 即可。

(3) 连接板子,需要将拨码调至 boot 模式为 1000 进行 USB 下载;下载完成后,将 boot 调至 0000 模式,上电从 Flash 启动。

(4) USB 烧录底包文件(Nor Flash)

[ospi_e3_gateway.pac](查看附件)

 

五、劳德巴赫烧录(以 Nor Flash 烧录为例)

1、前面生成的 Pac 底包,使用 SDFactory 复制路径,然后将文件复制放在新建的文件夹 QSPI 里面

 


2、将前面 Nor Flash 底包打包生成的 pac 文件 E3_ref_gateway_E3430.elf.bin.pac 也拷贝到此文件夹中,方便下载操作。

3、将 Attach 文件脚本和 jtag-dloader 的文件脚本,以及 e3_gateway_norflash.out 一并拷贝在此文件夹中

(1) e3_attach.cmm 文件位于 MCAL3.0 目录下 : MCAL_release\tools\T32 ;

[e3_attach.cmm](查看附件)

(2) jtag-dloader_e3_gateway_norflash.cmm,该脚本是 jtag/swd 下载脚本。

[jtag-dloader_e3_gateway_norflash.cmm] (查看附件)

(3) e3_gateway_norflash.out, 是 trace32 版本的 dloader 程序,用于下载到 ram 中运行,dloader 程序负责进行系统初始化,配置 Flash 的 driver,之后 dloader 程序会与下载脚本 load 进行交互,把数据下载到Flash中,e3_gateway_norflash.out 不是通用的,需要根据具体的板卡型号编译。

[e3_gateway_norflash.zip] (查看附件)

 

4、打开劳德巴赫上位机软件 Trace32, 板子 boot 模式设置为 1110

(1) T32 Start

① 打开 t32start.exe 界面

② 劳德巴赫连接开发板

③ 选中 1.Core 然后点击 Start

(2) Attach

① 打开 TRACE32 后,处于未 attach 状态

② 将 T32 文件夹下 e3_attach.cmm 文件拖入 TRACE32 B:: 处

③ 然后空格 + “0” 回车确认

(3) 烧录脚本

① TRACE32 attach 上后可 running 与 stopped

② 将 前面 QSPI 文件夹下 jtag-dloader_e3_gateway_norflash.cmm 文件拖入 TRACE32 B:: 处

(4) 烧录

① 打开 NOR FLASH PROGRAM 界面

② 将文件夹的 sfs.bin 与待烧录 .pac (此 PAC 文件这里是 IAR Release 版本编译产生的)文件拖入 sfs 与 boot0/1/2 处,点击 program flash 烧录,另一个需要注意的是需要选择 swd.

③ 烧录成功

 

六、修改打包底包文件细节

1、修改打包生成的 SFS 所对应的 boot0 ~boot2 地址 
这个文件可以修改 boot Package s数量,以及对应各个 boot package 的地址,如下图所示

 

技术文档

类型标题档案
硬件Application note

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论