SemiDrive E3430 使用 NOR Flash 時的配置修改

一、    概述

本文主要介紹 SemiDrive E3430 在使用 NOR Flash 時,需要進行的配置修改。

關於 E3 已經適配的 memory 型號,參考《SemiDrive_Memory 支持列表》文檔。

 


二、    背景

        SemiDrive E3430 的參考板和工程,使用的為 Hyper Flash,如果需要改為使用 NOR Flash,需要對項目工程進行修改。

 


三、   代碼下載及步驟介紹

        使用 SemiDrive support 系統上的 SSDK Builder ,生成 E3430 的參考代碼,選擇 app_demo/flashloader 、driver_demo/spi_nor 和 driver_demo/gpio 示例。

        先讀取 Flash ID ,添加對應 Flash ID 配置,然後生成 flashloader 文件並替換,使用 gpio 示例進行燒錄測試。

分別說明使用 SSDK 軟體包和 MCAL 軟體包時所需修改的內容。

 


四、   讀取 Flash ID

        使用 NOR Flash 時,使用 SSDK drive_demo/spi_nor 文件夾下的示例測試 Flash 並讀取 Flash ID 。如果使用的是 Hyper Flash,則使用 SSDK drive_demo/hyperbus 文件夾下的示例。

將項目工程使用 download and debug 方式燒錄代碼至 ram 中測試 flash 。

 

  1. 使用 spi_nor / spi_nor_interrupt 示例測試得到的串口信息如下。如無串口,則在執行 sdrv_spi_nor_get_info(&flash) 後,查看結構體 flash 中的 info – flash_id 。讀取的 NOR Flash ID 為 0x9d,0x60,0x18。

 

圖 4.1 spi_nor_interrupt 示例 log 信息

 

  1. 使用 hyperbus / hyperbus_interrupt 示例測試得到串口信息如下。

分別使用 Legacy X1、CFI 和 SFDP 三種接口協議讀取 Hyper Flash 的 ID。根據 Flash 手冊,協議 SFDP 讀取的 ID 是正確的,Hyper Flash ID 為 0x34,0x7b,0x1a。

 

圖 4.2 hyperbus_interrupt 示例 log 信息

 


五、   Flashloader 文件生成、使用

Flashloader 的文件使用 SSDK 示例中的 app_demo/flashloader 工程來生成。

  1. 修改drivers/source/spi_nor/sdrv_spi_nor.c 文件,添加對應 flash_id 的配置,如此處使用的 Flash ID 為 {0xEF, 0x60} ,與 SSDK 3.0 中 flash id = { 0XEF , 0x40 } 兼容,則複製 flash id = { 0XEF , 0x40 } 的配置,生成一份 flash id = { 0XEF , 0x60 } 的配置。或者根據使用的 NOR Flash 數據手冊,修改配置信息,建議使用《SemiDrive_Memory 支持列表》文檔中已經適配過的 memory。

 

圖 5.1 flash_id 配置

  1. 因為默認 E3430 工程配置為 Hyper Flash,修改 flashloader 的工程配置,在IAR 中右鍵項目選擇 Options – C/C++ Compiler – Extra Options。修改宏定義 DCONFIG_HYPERBUS_MODE 為 0 。

 

圖 5.2 修改 flashloader 的 IAR 工程配置

 

  1. 修改完成後,點擊 make,編譯項目工程,在app_demo\flashloader\IAR\Debug\Exe 下會生成 flashloader.out 文件。

       Flashloader 項目中configs\pinmux_cfg.c 默認配置的 UART 串口為 GPIO_Y6(TXD) 和 GPIO_Y7(RXD),在開發板上燒錄程序時,會列印燒錄 log 。如果板子上使用了別的 UART 串口,則修改或添加對應 UART 串口的 pinmux 配置。

  1. 編譯 flashloader 工程後,將生成的 flashloader.out 文件添加到添加到 devices\E3430\flashloader 文件夾內,直接替換 flashloader_norflash.out,或者修改 sf.flash 和 sfs.flash 文件內對 .out 的引用為新生成的文件,如需燒錄其餘核則修改對應的 .flash 文件。

 

 

 

 六、   SSDK 軟體包

  1. 打開 driver_demo/gpio 項目工程,作為測試工程,進行修改和測試。
  2. 修改 workspace 下面的標籤,切換模式為 FlashDebug。

 

圖 6.1 修改 workspace 模式

 

  1. 修改項目配置,右鍵點擊 gpio 項目,選擇 Options ,在 Linker – Extra Options 中,修改 sfs 文件配置,由 Hyper Flash 的配置 sfs_s26h-hyperflash.img 改為 NOR Flash 的配置 sfs_mt35-1-1-1.img 或 sfs_is25-1-1-4.img 。

 

圖 6.2 修改 sfs 配置

 

sfs 文件列表如下,參考 《SemiDrive E3 SSDK User Guide》文檔。



圖 6.3 sfs 文件列表

  1. 修改 Debugger – Setup 中 Driver 為 J-link/J-Trace 。

 

圖 6.4 修改燒錄工具

 

  1. 修改 Debugger – Download 中的 flashloader 配置,選擇前面修改過配置的 .board 文件。

 

圖 6.5 修改 flashloader 配置

 

  1. 項目工程 gpio 默認的串口列印為 GPIO_Y6 和 GPIO_Y7 的 UART7 ,如果板子上使用了別的串口,則修改 c/h 文件,及 board.c 中的 CONSOLE_UART 宏定義為實際使用的 UART 串口號。
  2. 編譯完成後,點擊工具欄 Project – Download – Download active application 下載工程。
  3. 下載完成後,切換撥碼開關為 0b0000 後上電,如串口列印 SSDK E3 GPIO Demo Start!,示例正常運行,則說明程序已經燒錄在 Flash 中,並成功運行。

 


七、   MCAL 軟體包

  1. 在 MCAL 的 tools\IAR_Ddf\flashloader\SemiDrive\3430 路徑下,添加生成的 flashloader.out 文件,直接替換或者修改 sf.flash 和 sfs.flash 文件內對 .out 的引用為新生成的文件。
  2. 打開 E3_ref_gateway_E3430 的工程,workspace 模式選擇 Debug。
  3. 如果板子上使用了別的串口,則修改 EB 中的配置,在 PORT 中添加對應的 IO 口配置為 UART 的復用功能,並修改項目工程的配置 C/C++ Compiler – Preprocessor – Defined symbols 中的宏定義 TTY_UART=UART1 為對應的串口號。

 

圖 7.1 修改 UART 配置

 

  1. 參考 6.3 章節修改 Options – Linker 中的 sfs 配置。
  2. 參考 6.5 章節修改 Debugger – Download 中 board 文件的配置。
  3. 另外如果需要對 Flash 進行操作,需要修改 EB 中 fls 模塊下的配置,將 OSPIController 下的 OSPIControllerInterface 類型從 HYPERBUS 改為 SPI_NOR,FlsSector 中根據 NOR Flash 數據手冊修改對應 sectors 等參數。另外需要在 mcal\Fls_TS_T01D20M1I4R0\src\spi_nor.c 中添加對應 flash_id 的配置。
  4. 編譯燒錄,如程序正常運行,則說明程序已經燒錄在 Flash 中,並成功運行。

 

八、   參考文檔

  • 《SemiDrive_E3_SSDK_User_Guide》
  • 《SemiDrive_E3_MCAL_User_Guide》
  • 《AppNote_E3_Boot_and_OTA》
  • 《SemiDrive_Memory 支持列表》



歡迎在博文下方留言評論,我們會及時回復您的問題。

如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com   
作者:Eason Wang / 王寅森


更多資訊,請掃碼關注我們!


★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論