一、简介
1、SSDK 环境下打包得到 Boot Package 与 PAC 文件(用于 Semidrive 下载工具烧写)的流程以及打包方法;
2、将编译产物 bin文件转换为 Boot Package 格式,ROM 启动时需要识别这种格式的文件;
3、将 Boot Package 形成 PAC 文件用于下载工具烧录,PAC 文件中包含了 Dloader/Flashloader、SFS 等其他需要烧录或参与烧录过程的文件;
• 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 的地址,如下图所示
评论