一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Booting SBL和板載OSPI Flash燒錄

星星科技指導(dǎo)員 ? 來源:TI ? 作者:TI ? 2023-03-17 09:44 ? 次閱讀

AM243x 是TI Sitara產(chǎn)品線推出的高性能MCU+產(chǎn)品,是一種性能強(qiáng)勁的多核異構(gòu)MCU,擁有4顆800MHz 主頻的Cortex R5F核心和1顆400MHz 主頻的Cortex M4F,以及專門針對多協(xié)議工業(yè)通信總線的2個PRU_ICSSG(2× Gigabit Industrial Communication Subsystems)模塊,可以實現(xiàn)Profinet IRT,Profinet RT,EtherNet/IP,EtherCAT等通信方式。

在這類多核異構(gòu)MCU / CPU產(chǎn)品開發(fā)中,由于芯片在電源軌上的復(fù)雜性以及外設(shè)的豐富程度,不可避免的會接觸到系統(tǒng)復(fù)雜的boot環(huán)節(jié),以及多核調(diào)試帶來的挑戰(zhàn),本文以AM243x-LP評估板為例,對AM243x的booting相關(guān)內(nèi)容進(jìn)行了初步的介紹,并完整演示了RBL-SBL-APP的整個啟動過程以及程序燒錄的方法。

本文以AM243x多核芯片體系結(jié)構(gòu)為切入點,簡要介紹了AM243x的啟動過程,包括加電順序、引導(dǎo)模式選擇、ROM引導(dǎo)過程、SBL過程、SBL-編譯和SYSFW介紹。以ADC演示為例,結(jié)合AM243x LP評估板,完整演示了RBL->SBL->APP啟動過程,簡要介紹了在UART模式下編程外部OSPI Flash的環(huán)境設(shè)置和操作過程,方便用戶在AM243x芯片上快速啟動應(yīng)用程序開發(fā)。

2.AM243x 上電后的Booting環(huán)節(jié):

下圖是AM243x完整的boot流程:

ROWER ON -> ROM Bootloader(RBL) -> Secondary Bootloader(SBL) -> Application Binary。 上電后,芯片進(jìn)行內(nèi)部邏輯的初始化,之后先執(zhí)行ROM中的BOOT代碼,再執(zhí)行用戶自定義的二級BOOT代碼,最后執(zhí)行應(yīng)用程序.

poYBAGQTxdmAdx5tAAAef6cmfU4969.png

Figure 1 BOOT 啟動流程

2.1 上電時序和啟動方式介紹

AM243x 芯片擁有多個電源域,為不同的內(nèi)部邏輯和外設(shè)供電,,下圖是AM243x的上電時序圖,可以在datasheet找到更詳細(xì)的介紹。

pYYBAGQTxdmAYtfWAAAaveAtY3E163.png

Figure 2 Power Sequence

在滿足供電時序的情況下,MCU_PORz信號最終釋放了對內(nèi)核復(fù)位的控制, MCU_PORz的上升沿會鎖存SYS_BOOTMODE[0:15]這些管腳的上下拉狀態(tài),并由此確定芯片的啟動模式和啟動介質(zhì),然后由ROM Bootloader來讀取啟動信息。

AM243x 有兩種主要的啟動方式:Host boot modes 和 Memory boot modes。

Host boot modes:MCU從不同的外設(shè)進(jìn)行啟動,比如從UART、Ethernet、USB接口啟動;

Memory boot modes:MCU從不同的外部存儲介質(zhì),比如QSPI Flash、I2C EEPROM、SD卡、U盤等存儲器啟動;

注意:AM243x 有Primary Boot和Backup Boot功能,這意味著AM243x在Primary Boot失敗的情況下可以用 Backup Boot 來啟動,這個可以由 BOOTMODE 管腳進(jìn)行設(shè)置。

關(guān)于 BOOTMODE 管腳配置,我們可以看到是由16根信號線組成,其中高兩位為Reserved。其16bit對應(yīng)的是BOOTMODE 00-15這16根信號線,原理圖中對應(yīng)的管腳為GPMC0_AD0 – 15。

pYYBAGQTxdqAGs7nAAAgjBOjdKk196.png

Figure 3 BOOTMODE Pin Mapping

PLL Config 針對不同的外部晶振頻率進(jìn)行配置。

poYBAGQTxduAa6arAAAh7b5C4eQ574.png

Figure 4 PLL Reference Clock Selection

Primary Boot 模式如下:

pYYBAGQTxdyAUuS8AAAmwRBz6Pk579.png

chaijie_default.png

Figure 5 Primary Boot Mode Selection

Backup Boot 模式如下:(注意Backup模式下可啟動的方式較少)

pYYBAGQTxd6AdLYsAAAooG3eGjc691.png

Figure 6 Backup Mode Selection

注意:由于ROM Code對不同的啟動接口或介質(zhì)使用的管腳是固定的,在設(shè)計的過程中需要注意選擇對應(yīng)的管腳,詳細(xì)的管腳信息可以在Technical Reference Manual中查看。

2.2 ROM啟動過程介紹

AM243x的ROM Code分為兩部分,分別是DMSC ROM code和Public ROM code,這里DMSC的全稱為Device Management Security Controller,內(nèi)部是一個主頻250MHz 的Cortex M3協(xié)處理器, DMSC模塊是芯片啟動的主控制器.

DMSC ROM code:DMSC ROM 的代碼會涉及到以下幾個部分:

設(shè)備管理;

在 BOOT_CFG中配置boot vectors,控制 R5內(nèi)核的reset釋放, 需特別指出,啟動過程中DMSC是R5內(nèi)核的控制者;

通過主DMSS(Data Movement Subsystem)和Secure Proxy進(jìn)行IPC的配置;

對R5內(nèi)核和SA2UL(Security Accelerator)的PLL進(jìn)行配置;

X509認(rèn)證的解析;

SHA512算法對image integrity check的SA2UL配置;

Public ROM code:下圖是Public ROM code的框架。

poYBAGQTxd6AI-nYAABCCGlVbYo992.png

Figure 7 Public ROM Code Architecture

Main Module是整個Public ROM code的頂層代碼循環(huán),它可以調(diào)用X509密碼認(rèn)證模塊、Log Trace模塊、System模塊以及外設(shè)驅(qū)動的相關(guān)功能代碼,在這里會重復(fù)執(zhí)行直到MCU接收到完整的boot image,也可以被 DMSC置于sleep模式;

芯片上電后一級啟動過程可以分為三部分:

Hardware 部分:這里主要指電源的上電過程,以及芯片內(nèi)部邏輯的初始化;

DMSC部分:DMSC ROM Code 會首先配置啟動過程中看門狗WDT的溢出時間為180秒,接下來配置MCU PLL,根據(jù)不同Boot Mode進(jìn)行相應(yīng)的Firewall配置,MCU的Secure Proxy/Ring Accelerator,然后DMSC會給MCU發(fā)送Boot Mode Info,最終DMSC釋放R5內(nèi)核的Reset信號,R5內(nèi)核開始工作;

R5 內(nèi)核部分:R5 內(nèi)核拿到DMSC發(fā)送的Boot Device Info(由BOOTMODE管腳的配置決定)后,通過對應(yīng)的Boot模式開始啟動,R5內(nèi)核會請求DMSC對接收到的image代碼進(jìn)行image integrity check,如果成功則繼續(xù)向下執(zhí)行,如果Primary Boot的image無效,R5會切換到Backup Mode 進(jìn)行boot image接收并再次調(diào)用DMSC進(jìn)行image integrity check,這樣重復(fù)執(zhí)行調(diào)用,直到180秒看門狗溢出為止,這時MCU會被復(fù)位,重復(fù)上面的所有流程。

當(dāng)image integrity check成功后,R5內(nèi)核會對Main Domain的PLL進(jìn)行配置,接下來DMSC會停止Clock并且Reset R5,R5在復(fù)位結(jié)束后開始執(zhí)行Boot Image(這里在RAM里面的Boot Image不受R5復(fù)位的影響,處于保持狀態(tài)),整個Boot流程完成,芯片開始二級BOOT流程。

pYYBAGQTxd-ABUxBAABMpUGNOkM583.png

Figure 8 Boot Process

2.3 二級SBL啟動過程介紹

SBL的全稱是Second boot loader,用于完成芯片的一些初始配置,拷貝DMSC的SYSFW到片內(nèi)RAM以及加載多核應(yīng)用代碼。 下圖是一個典型的SBL流程. DMSC模塊會再次啟動WDT看門狗并設(shè)定開門狗溢出時間為180秒。 R5 core 0執(zhí)行SBL代碼,先拷貝FLASH上的DMSC SYSFW到片內(nèi)RAM, DMSC ROM代碼對SYSFW image 進(jìn)行完整性檢查后,將SYSFW加載到DMSC模塊,之后DMSC模塊會跳出DMSC ROM代碼,改為執(zhí)行DMSC SYSFW代碼。 SBL會繼續(xù)加載和解析R5核的應(yīng)用代碼并根據(jù)Image信息設(shè)定啟動地址,完成后會請求DMSC 釋放其他R5核的復(fù)位信號,所有內(nèi)核開始執(zhí)行程序.

poYBAGQTxeCAIaaSAABBb2aoa10700.png

pYYBAGQTxeCAZ4L7AAA-i0auHoA374.png

Figure 9 SBL Boot Process

3.AM243x-LP 使用介紹:

AM243x-LP評估板提供了豐富的功能和接口,XDS110調(diào)試器也被集成在電路板上面,方便用戶的燒錄調(diào)試,同時USB轉(zhuǎn)UART功能也通過同一USB接口實現(xiàn),用于串口log信息的打印。

poYBAGQTxeGALRPkAAC0QM2J5dY427.png

Figure 10 System Architecture

評估板上的另一個USB Type C接口用來供電,整板的電流會在2A左右,這里建議先連接Micro USB,建立串口連接后,然后再連接USB Type C接口。USB Type C的連接線需要使用標(biāo)準(zhǔn)的全功能連接線,否則無法與評估板上的CC邏輯控制器TUSB320LAIRWBR進(jìn)行正常通信,造成輸出電流配置不正常,無法正確對評估板供電。

poYBAGQTxeKAfFm9AAEFF2_2rCs838.png

Figure 11 AM243x-LP Board

正常連接兩根USB線之后,板子上會有4個LED燈點亮,分別是LD6、LD7、LD8和LD11四個綠色LED燈。LD9紅色燈會在USB Type C插入的瞬間亮一次,之后熄滅,如果常亮,則代表供電有問題。

pYYBAGQTxeOAHMMeAAIvOaKmdU0684.png

pYYBAGQTxeSAXtcWAAIWW7XLFvE942.png

Figure 12 AM243x-LP Board LED Status

在Micro USB線連接后,Windows系統(tǒng)會進(jìn)行XDS110的驅(qū)動安裝(CCS安裝時會自帶驅(qū)動),安裝完成后,會在設(shè)備管理器里面出現(xiàn)兩個對應(yīng)設(shè)備,如下圖。

poYBAGQTxeWAUGyTAAA_uY05nPA372.png

Figure 13 AM243x-LP Board USB Port

User UART對應(yīng)的是用戶可用的USB轉(zhuǎn)串口打印log的端口,在AM243x-LP評估板中對應(yīng)的是AM243x的MAIN_UART0接口。

下圖是AM243x-LP評估板上的四個按鍵,其功能分別如下:

pYYBAGQTxeWAAmw0AAII8XqLjBw355.png

poYBAGQTxeaACk90AAAl7KrD1a4819.png

Figure 14 AM243x-LP Board Push Buttons

在理解這幾種不同的Reset之前,我們先看看AM243x整個芯片構(gòu)成的兩個Domain,分別是MCU Domain和Main Domain,它們分別由下面的子模塊構(gòu)成。

pYYBAGQTxeeAW4ItAABgBxz4LxQ359.png

pYYBAGQTxeiAXlH4AAAsXCaZqRs002.png

poYBAGQTxeiAalMeAAAhPxhf72w060.png

Figure 15 AM243x Power Domain

我們可以看到在不同的Domain里面包含了不同的模塊和外設(shè),這個就決定了不同Domain對不同外設(shè)和模塊的控制權(quán)。在Reset部分,可以通過不同的Reset源對不同的Domain進(jìn)行獨立控制,也可以通過配置改變其控制Domain的范圍。

MCU_PORz:可以看作整個芯片(MCU+MAIN)的冷啟動復(fù)位,可以進(jìn)行動態(tài)Boot Mode更改而不用斷電;

MCU_RESETz:MCU Domain的熱復(fù)位;

SoC_RESET_REQz: Main Domain的熱復(fù)位;

在AM243x-LP評估板上可以由8位撥碼開關(guān)來更改Boot配置,其中第8位沒有使用,是懸空狀態(tài),下面的表格列出了這7位配置對應(yīng)的Boot Mode情況。

pYYBAGQTxemAIS6sAAAwWMuD0K0425.png

Figure 16 AM243x LP Boot Mode Selection Table

其中常用的三種模式如下圖所示:

poYBAGQTxeqAesmNAAIASrx_weo456.png

poYBAGQTxeuAaD-eAAH7D0Y12Sw153.png

pYYBAGQTxeuAFgGSAAH2EtmfrCA603.png

Figure 17-1 AM243x LP Boot Mode Switch

關(guān)于 Backup Boot Mode,在AM243x-LP是默認(rèn)配置為NONE模式(BOOTMODE13:10 = x 0 0 0),這里暫時不用關(guān)心。

poYBAGQTxeyAM3MuAAA8YfsPih4123.png

Figure 17-2 AM243x LP Boot Mode Switch (Backup Mode Configuration)

可以在斷電狀態(tài)下更改撥碼開關(guān)的配置,然后重新上電?;蛘咴谕姷那闆r下改變撥碼開關(guān),然后用SW1按鈕實現(xiàn)MCU_PORz冷復(fù)位以使得新的Boot Mode生效。

4. SDK 例程中 SBL 的介紹:

如果要對 SDK 中的 SBL 程序在CCS中進(jìn)行編譯,需要額外安裝OpenSSL,可以在下面的地址下載light版本,

https://slproweb.com/download/Win64OpenSSL_Light-3_0_0.exe

在安裝的過程中,注意選擇 The Windows system directory選項。

pYYBAGQTxeyAIBIRAAByiSE-2Ck506.png

Figure 18 OpenSSL Installation

安裝完成后,需要在windows系統(tǒng)的Path變量中加入下面的路徑。

C:Program FilesOpenSSL-Win64bin

完成后,即可導(dǎo)入C:timcu_plus_sdk_am243x_0x_xx_xx_xxexamplesdriversboot 中的例程,并進(jìn)行編譯。這里我們導(dǎo)入的是 sbl_ospi 這個文件夾內(nèi)的工程。

poYBAGQTxe2ACzFWAABPXMMB-VY574.png

Figure 19 SBL Boot Project

SBL NULL:這個SBL只做了MCU的初始化并且把內(nèi)核至于WFI模式(Wait For Interrupt);

SBL OSPI:初始化MCU并且從OSPI Flash 的 0x80000地址讀取并啟動多核appimage代碼;

SBL OSPI Multi-Partition:初始化MCU并且從OSPI Flash 不同的偏移地址讀取各個內(nèi)核的代碼;

SBL UART:初始化MCU并且從UART通過Xmodem協(xié)議讀取并啟動多核appimage代碼;

SBL UART Uniflash:配合py腳本的flash writer程序,用來燒錄OSPI Flash;

4.1 SBL boot image 創(chuàng)建

SBL 與一般的應(yīng)用程序類似,可以通過CCS來創(chuàng)建并編譯,在從 .out文件到boot image的轉(zhuǎn)化過程,其詳細(xì)情況如下:

雖然SBL工程與應(yīng)用程序類似,但SBL 的入口地址與用戶應(yīng)用程序的入口地址有所不同。在AM243x 的 ROM code 會把程序的入口地址同時配置給 both R5FSS0-0 和R5FSS0-1兩個內(nèi)核。 考慮到SBL只運行在R5SS0-0上,我們需要把R5FSS0-1置于WFI模式,只運行R5FSS0-0內(nèi)核,這個操作可以通過增加link參數(shù) -e_vectors_sbl來實現(xiàn)。

pYYBAGQTxe6Af0uHAAB1Gua3YYM278.png

Figure 20 AM243x Link Command

在進(jìn)入main()函數(shù)之后,首先必須調(diào)用Bootloader_socLoadSysFw來加載 SYSFW 到 DMSC 的Cortex M3內(nèi)核,進(jìn)行 board config 操作。

備注:SYSFW默認(rèn)以 .h 頭文件的形式被編譯鏈接到SBL,啟動過程中會發(fā)送到DMSC內(nèi)核的專有RAM區(qū)域,SYSFW的文件內(nèi)容在 C:timcu_plus_sdk_am243x_0x_xx_xx_xxsourcedriverssciclientsocam64x_am243x sysfw_signed.h 里面。

pYYBAGQTxe-ADxqNAACWoXsJZiE752.png

Figure 21 Bootloader_socLoadSysFw

在SBL里,vectors默認(rèn)被鏈接到0x7000000,而且SBL中不能使用ATCM(A Tightly-Coupled Memory)和BTCM(B Tightly-Coupled Memory)的地址空間,SBL 只能使用 0x70000000到0x70080000這個地址范圍的空間,包含code、data、stack之類。

在編譯后,SBL的 .out 文件會通過GCC的objcopy轉(zhuǎn)換成 .bin 文件,接下來會通過 Signing Scripts 簽名生成可啟動的 .tiimage 文件,在這里會使用一個默認(rèn)的key來簽名,即使是非安全啟動MCU芯片也需要走這個流程。這個 Signing Script 會用到前面安裝的 OpenSSL。

RBL在加載SBL的時候是需要SBL為被簽名的格式,可以通過下面的命令來對SBL進(jìn)行簽名。

cd C:timcu_plus_sdk_am243x_0x_xx_xx_xxtoolsbootsigning

.x509CertificateGen.ps1 -b {BOOTIMAGE_BIN_NAME} -o {BOOTIMAGE_NAME} -c R5 -l 0x70000000 -k rom_degenerateKey.pem -d DEBUG -j DBG_FULL_ENABLE -m SPLIT_MODE

這里我們用一個例程生成的bin文件來演示一下,首先拷貝CCS生成的bin文件到C:timcu_plus_sdk_am243x_0x_xx_xx_xxtoolsbootsigning,方便命令行下操作。

poYBAGQTxfCAZc6wAABTQXjcHUc755.png

Figure 22 Signing Files Folder

注意:這里要用到 Windows 10下面的Powershell命令行環(huán)境,在開始菜單輸入Powershell并執(zhí)行,即可進(jìn)入界面,公司的電腦有可能對Powershell的執(zhí)行權(quán)限有限制,這個在執(zhí)行的時候會提示。

.x509CertificateGen.ps1 -b sbl_ospi_am243x-lp_r5fss0-0_nortos_ti-arm-clang.bin -o sbl_ospi_am243x-lp.tiimage -c R5 -l 0x70000000 -k rom_degenerateKey.pem -d DEBUG -j DBG_FULL_ENABLE -m SPLIT_MODE

至此,我們在這里可以看到最終生成的可以用來啟動的SBL的 tiimage 文件。

pYYBAGQTxfCAdUtUAAAxpUn27i4893.jpg

Figure 23 Powershell console command execution

poYBAGQTxfGAQc8yAABmTft1tpY657.png

Figure 24 Signing result of tiimage

5. SBL 燒錄并引導(dǎo)應(yīng)用程序運行:

下面我們快速驗證一下SBL配合用戶應(yīng)用程序進(jìn)行boot并運行的情況。

5.1 安裝Phython 腳本

板載外部QSPI Flash需要通過python腳本進(jìn)行燒錄,所需的Python 3 環(huán)境下載地址如下。

https://www.python.org/downloads/windows/

注意安裝Python的時候需要選擇把Python的路徑加入到系統(tǒng)路徑,安裝完成后可以在CMD Console下驗證是否安裝成功。

pYYBAGQTxfKAA7hMAAB-oRi85BE502.png

Figure 25 Python Installation

poYBAGQTxfKAaRjoAAA1ORBuve8966.png

Figure 26 Python Environment Check

接下來需要執(zhí)行下面的命令安裝與串口下載相關(guān)的組件,注意需要在管理員模式打開cmd窗口。

pip install --upgrade pip

pip install pyserial xmodem tqdm

pYYBAGQTxfOASjgaAAD3Nc4Z47o909.png

Figure 27 Python toolset installation

5.2 生成應(yīng)用代碼Image

打開 CCS后,導(dǎo)入SDK的ADC驅(qū)動例程,路徑如下。

C:timcu_plus_sdk_am243x_0x_xx_xx_xxexamplesdriversadcadc_singleshotam243x-lpr5fss0-0_freertos

poYBAGQTxfSAV5suAABwwL0d7oU061.png

Figure 28 Import SDK ADC example into CCS

pYYBAGQTxfSAPWnZAABxnccdcA8474.png

Figure 29 Confirm the example import

poYBAGQTxfWAeisoAACd8LgxPvg712.png

Figure 30 Build the example

編譯完工程后,我們可以看到生成的相關(guān)文件,其中.appimage是應(yīng)用程序要燒錄到外部 SPI Flash的文件。

5.3 使用UART 啟動模式燒錄OSPI SBL文件和應(yīng)用代碼Image

接下來的燒錄操作需要在windows的command console里操作,為了方便這個流程,我們可以利用bat文件來直接執(zhí)行,提高效率。

在ccs的workspace目錄中adc_singleshot_am243x-lp_r5fss0-0_freertos_ti-arm-clang工程目錄下,我們新建一個文件夾,暫且命名為AM243xProgFlash,如下圖:

poYBAGQTxfaAYVnxAAA_M6pM4q4298.png

Figure 31 UART programing script files

在這個文件夾里面,@Prog-Boot+App.bat 是手工創(chuàng)建的,里面執(zhí)行了簡單的python命令,sbl_ospi.release.tiimage、sbl_uart_uniflash.release.tiimag是從 C:timcu_plus_sdk_am243x_0x_xx_xx_xxtoolsbootsbl_prebuiltam243x-lp 這個路徑拷貝過來的。

其中sbl_ospi.release.tiimage 也可以使用上面我們編譯成功的 sbl_ospi 工程的 tiimage 文件。uart_uniflash.py 從C:timcu_plus_sdk_am243x_0x_xx_xx_xxtoolsboot 拷貝過來。ospi_sbl+app.cfg 是根據(jù) C:timcu_plus_sdk_am243x_0x_xx_xx_xxtoolsbootsbl_prebuiltam243x-lpdefault_sbl_ospi.cfg 文件修改的。

下面是 @Prog-Boot+App.bat和 ospi_sbl+app.cfg 兩個文件的內(nèi)容。

@Prog-Boot+App.bat 文件:這里需要注意 COM17 根據(jù)自己的情況來修改PC端燒錄端口。

@echo off

echo+

echo+

echo **********************************************************************

echo Start to Program "QSPI Bootloader" and "App Image" to QSPI Flash......

echo **********************************************************************

echo+

echo+

python uart_uniflash.py -p COM17 --cfg= ospi_sbl+app.cfg

echo+

echo+

echo ******** Finished!!! ********

echo+

echo+

pause

ospi_sbl+app.cfg 文件:這里注意黃色標(biāo)識部分的路徑和文件名。

#-----------------------------------------------------------------------------#

# #

# DEFAULT CONFIGURATION FILE TO BE USED WITH THE FLASHWRITER SCRIPT #

# #

#-----------------------------------------------------------------------------#

#

# By default this config file,

# - points to pre-built flash writer, bootloader for this LP

# - The application image points to relative path of the ipc echo application image for this LP

# - Make sure this application is built before running this script

# - You can customized this config file to point to your own bootloader and/or application images

# - You can use --operation=flashverify if you just want to verify the flash contents and not flash the file.

#

# First point to sbl_uart_uniflash binary, which function's as a server to flash one or more files

--flash-writer=sbl_uart_uniflash.release.tiimage

# Now send one or more files to flash or flashverify as needed. The order of sending files does not matter

# Program the OSPI PHY tuning attack vector

--operation=flash-phy-tuning-data

# When sending bootloader make sure to flash at offset 0x0. ROM expects bootloader at offset 0x0

--file=sbl_ospi.release.tiimage --operation=flash --flash-offset=0x0

# When sending application image, make sure to flash at offset 0x80000 (default) or to whatever offset your bootloader is configured for

--file=../Debug/adc_singleshot_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage --operation=flash --flash-offset=0x80000

# send the XIP image for this application, no need to specify flash offset since flash offset is specified within the image itself

#--file=../Debug/adc_singleshot_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage_xip --operation=flash-xip

準(zhǔn)備好這些文件后,把AM243x-LP配置為UART boot后上電,雙擊執(zhí)行@Prog-Boot+App.bat即可燒錄。

pYYBAGQTxfaATboUAACtWPJT7oY390.png

Figure 32 UART Programing Result

5.4 使用UART 啟動模式燒錄QPSI SBL文件和應(yīng)用代碼Image

燒錄完成后,切換AM243x-LP為 QSPI BOOT 模式,用按鍵SW1 MCU_PORZ復(fù)位系統(tǒng),可以看到串口輸出的信息,這里可以看到OSPI Bootloader 的信息和 ADC demo 的信息輸出,到此完成了 RBL-SBL-APP 的啟動過程。

poYBAGQTxfeAbKgcAACFK1x1xtM098.png

Figure 33 ADC Program Running Result

6. 總 結(jié):

由于此類多核異構(gòu)MCU的構(gòu)架與通用MCU的構(gòu)架差異較大,在啟動和調(diào)試帶來的挑戰(zhàn)也是顯而易見的。本文以AM243x的芯片構(gòu)架為切入點,簡要的介紹了AM243x的啟動流程以及涉及到的SBL相關(guān)內(nèi)容,以ADC demo為例,結(jié)合AM243x-LP評估板,完整演示了RBL-SBL-APP 的啟動過程,簡要介紹了 UART 模式燒錄外部OSPI Flash的環(huán)境搭建和操作流程,方便用戶快速進(jìn)入AM243x 芯片的應(yīng)用開發(fā)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電源
    +關(guān)注

    關(guān)注

    185

    文章

    18181

    瀏覽量

    254441
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17734

    瀏覽量

    358576
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11013

    瀏覽量

    215303
  • 通信總線
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    9970
收藏 人收藏
    相關(guān)推薦
    熱點推薦

    怎么往板載空的spi nand flash燒錄系統(tǒng)固件?

    請問下,針對d1或d1s平臺,怎么往板載空的spi nand flash燒錄系統(tǒng)固件?找不到相關(guān)文檔
    發(fā)表于 12-28 07:08

    BSP_OSPI_NOR_Erase_Block() 失敗怎么解決?

    OCTOSPI1_Init 2 */ BSP_OSPI_NOR_Init_t 閃存; Flash.InterfaceMode = BSP_OSPI
    發(fā)表于 12-02 07:20

    可以使用OSPI_RegularCmdTypeDef共享代碼函數(shù)讀取NOR-flash ID和NOR-flash SDFP嗎

    的“0x00”序列,因為 NOR 閃存應(yīng)該發(fā)送 0x50444653。有人可以使用簡單的 OSPI_RegularCmdTypeDef 共享代碼函數(shù)來讀取 NOR-flash ID 和 NOR-flash SDFP 這樣我就可以
    發(fā)表于 12-09 08:45

    請問如何使用HAL_OSPI_Receive提高quad SPI接收的速度?

    = HAL_OSPI_OPTYPE_COMMON_CFG;sCommand.FlashId = HAL_OSPI_FLASH_ID_1;sCommand.InstructionMode = HAL_OSPI
    發(fā)表于 01-05 08:30

    rt1052 sbl升級固件后硬卡死怎么處理?

    1052核心板,板載的是,25q128jvsq 我的調(diào)試步驟:1、用jlink燒寫sbl,可以正常運行:2、此時使用MCU Boot Utility將簽名的app1燒寫到norflash
    發(fā)表于 03-30 08:10

    Recommendations for Booting Wi

    Recommendations for Booting Windows from USB Storage Devices AbstractThis paper provides
    發(fā)表于 04-11 17:53 ?16次下載

    關(guān)于使用燒錄燒錄Nand Flash

    Flash專用燒錄編程器;目前為止,有廣泛的、優(yōu)秀的燒錄客戶群,軟件、硬件和算法都是客戶批量生產(chǎn)驗證過的,非常成熟。
    發(fā)表于 03-21 16:26 ?1.1w次閱讀

    16A肖特基勢壘整流器SBL1630CT-SBL1660CT

    16A肖特基勢壘整流器SBL1630CT-SBL1660CT
    發(fā)表于 08-10 09:34 ?2次下載

    如何進(jìn)行板載SPI flash燒錄

    ,很多人對此有些疑慮,其實只需要TUSB9261和USB口設(shè)計正確,。特別是在板子設(shè)計調(diào)試時,需要直接通過板載的方式直接進(jìn)行SPI flash 燒錄的時候,可以按照下述的步驟來進(jìn)行。從板卡角度上來看,只需要
    的頭像 發(fā)表于 01-14 14:43 ?1.2w次閱讀
    如何進(jìn)行<b class='flag-5'>板載</b>SPI <b class='flag-5'>flash</b><b class='flag-5'>燒錄</b>

    STM32單片機(jī)使用SEGGER J-Flash 燒錄的方法

    STM32單片機(jī)使用SEGGER J-Flash 燒錄的方法
    發(fā)表于 12-02 10:21 ?20次下載
    STM32單片機(jī)使用SEGGER J-<b class='flag-5'>Flash</b> <b class='flag-5'>燒錄</b>的方法

    AM243x-LP快速上手—Booting SBL板載OSPI Flash燒錄

    。 在這類多核異構(gòu)MCU / CPU產(chǎn)品開發(fā)中,由于芯片在電源軌上的復(fù)雜性以及外設(shè)的豐富程度,不可避免的會接觸到系統(tǒng)復(fù)雜的boot環(huán)節(jié),以及多核調(diào)試帶來的挑戰(zhàn),本文以AM243x-LP評估板為例,對AM243x的booting相關(guān)內(nèi)容進(jìn)行了初步的介紹…
    的頭像 發(fā)表于 02-15 13:36 ?5621次閱讀
    AM243x-LP快速上手—<b class='flag-5'>Booting</b> <b class='flag-5'>SBL</b>和<b class='flag-5'>板載</b><b class='flag-5'>OSPI</b> <b class='flag-5'>Flash</b><b class='flag-5'>燒錄</b>

    AM243x-LP 快速上手 --- Booting SBL板載 OSPI Flash 燒錄

    AM243x-LP 快速上手 --- Booting SBL板載 OSPI Flash 燒錄
    發(fā)表于 10-28 11:59 ?3次下載
    AM243x-LP 快速上手 --- <b class='flag-5'>Booting</b> <b class='flag-5'>SBL</b> 和<b class='flag-5'>板載</b> <b class='flag-5'>OSPI</b> <b class='flag-5'>Flash</b> <b class='flag-5'>燒錄</b>

    AN017 基于Jlink燒錄文件到SPI Nor Flash的方法

    AN017 基于Jlink燒錄文件到SPI Nor Flash的方法
    發(fā)表于 02-27 18:21 ?0次下載
    AN017 基于Jlink<b class='flag-5'>燒錄</b>文件到SPI Nor <b class='flag-5'>Flash</b>的方法

    JTAG在FLASH燒錄中的“江湖”

    首先,我們來看看JTAG燒錄FLASH的層次結(jié)構(gòu)
    的頭像 發(fā)表于 10-19 11:35 ?3205次閱讀
    JTAG在<b class='flag-5'>FLASH</b><b class='flag-5'>燒錄</b>中的“江湖”

    AN122 GD32H7系列MCU OSPI flash執(zhí)行環(huán)境用戶指南

    電子發(fā)燒友網(wǎng)站提供《AN122 GD32H7系列MCU OSPI flash執(zhí)行環(huán)境用戶指南.pdf》資料免費下載
    發(fā)表于 01-17 15:57 ?1次下載
    AN122 GD32H7系列MCU <b class='flag-5'>OSPI</b> <b class='flag-5'>flash</b>執(zhí)行環(huán)境用戶指南