芯驰 E3 - 程序 pac 打包和 USB 下载

一. 前言

    程序 USB pac 打包下载是芯驰芯片程序烧录的一种方式,程序打包为 pac 包,方便进行对二进制可执行固件代码进行端到端的移动,使用 USB 模式单纯下载固件相较于 JTAG 方式有以下优势:
        ① 下载速度快;
        ② 芯片在 USB 模式下,程序下载不会受到程序运行的影响(可用于程序跑死后的芯片恢复)。

二. pac 打包

  1. SDK 程序打包

           a. 首先要编译要打包的工程,对于 ssdk\boards\e3_gateway\driver_demo\power\rtc_wakeup_pin 路径下的 RTC 唤醒的工程,这里注意要使用 Debug 工程,否则在下面运行打包脚本时会出现找不到 saf.bin 的报错。

               
                                                                              图 1. 选择 Debug 工程

           b. 在 ssdk 路径下运行 cmd 命令,弹出控制台

             
                                                                       图 2. 在 SDK 路径下打开控制台

           c. 在 CMD 控制台中输入

.\prebuilts\windows\python-3.7.0\python.exe .\tools\genpac.py -b e3_gateway -p driver_demo/power/rtc_wakeup_pin -f .\devices\E3640\pacconfig\pac_config_sf.json --chipid=E3640 -d dloader​​

          ① 对于开发板,选择在 ssdk\boards 下的几款名称
          
              
           ② 对于开发板下的工程,选择到包含 “IAR” 文件夹的路径即可

  1.                                      图 4. 选择工程路径
            ③ 对于打包配置文件,要在 “ssdk\devices” 下面选择芯片型号,针对程序要下载的存储介质和 CPU 内核进行选择

  1.                                       图 5. 选择芯片型号和配置脚本
  2.          以 pac_config_sf_norflash.json 和 pac_config_sf.json (hyper flash)做对比,发现主要的区别是对不同的存储介质,一些名称和类型标签的名称有所改变,另外 boot0_addr、boot1_addr 和 boot2_addr 的地址有所变化,flash 加密的 start 和 end 地址有所变化。
               
  1.                                                                       图 6. 对比两个配置脚本
           d. 命令执行完成后,将在 ssdk\boards\e3_gateway\driver_demo\power\rtc_wakeup_pin 下生成 emmc_e3_gateway.pac 和 ospi_e3_gateway.pac 分别对应 emmc 和 flash 两种存储介质的 pac 包。



                                                                        图 7. 生成 pac 包位置
  1. Mcal 程序打包

    a. 打开工程进行编译

        使用打包下载需要将工程切换到 Release 配置,Debug 和 Release 的区别是 Debug 只支持 IAR 下载,Release 只支持 pac 打包下载。

        

                                                                     图 8. 选择 Release 版本进行编译


    b. 进入 MCAL 下的 E3\Semidrive_AutoSAR_MCAL_package_v3.0.0\MCAL_release 路径,打开 CMD 控制台
     
              

                                                                    图 9. 在 MCAL 路径下打开 CMD 控制台
          c. 输入以下命令
         d. 程序运行完成后将在 MCAL_release\iar\iar_v850\E3_ref_gateway_E3640 下生成 ospi_E3_ref_gateway_E3640.pac 的 pac 包

             

             

三. pac 包下载

  1. 打开 SDToolBox,如果没有 SDToolBox,到芯驰官网下载,点击 SDFactoryTool
  1. 点击 + 号图标按钮
  1. 在 ospi1 的路径下选择工程路径下生成的 pac 包,之后点击 OK 关闭窗口。
  1. 选择芯片的运行模式为 USB 模式
           一般开发板上会有四个拨码开关分别控制芯片的 A3~A0 四个引脚,通过芯片的数据手册可以知道, USB 模式对应的四个引脚的电平为 1000,拨动拨码开关为 1000 后重新上下电,即可使芯片进入 USB Boot 模式。

  1. 点击下载按钮进行下载,完成后将出现绿色的 Passed 字符,选择右边的 Stop downloading 按钮完成下载。
  1. 运行程序需要把拨码开关拨到 0000 的状态,然后重新上下电,程序即可运行。

三. 参考资料

1.《E3400_E3600_MCU_TRM_Rev01.00.pdf》
2. 《E3400_E3600_MCU_Datasheet_Rev01.00.pdf》

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

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

评论