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

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

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

兩線bootloader工程設(shè)置

電子設(shè)計 ? 來源:網(wǎng)友電子設(shè)計發(fā)布 ? 作者:網(wǎng)友電子設(shè)計發(fā)布 ? 2021-12-29 14:06 ? 次閱讀

CC1310是TI Simplelink MCU系列中支持Sub-1G的SOC.針對很多客戶需要串口進(jìn)行固件升級的應(yīng)用需求,CC1310內(nèi)置了基于ROM的bootloader, 該bootloader支持UART和SPI兩種接口.詳細(xì)信息可參考TI CC1310的用戶指南(http://www.ti.com/lit/pdf/swcu117) 以及TI應(yīng)用文檔SWRA466A, CC2538/CC26xx Serial Bootloader Interface (http://www.ti.com/cn/lit/swra466)。傳統(tǒng)的bootloader至少需要三跟連線,這篇博客主要介紹如何實(shí)現(xiàn)兩線bootloader并基于TI Flash Programmer 2(http://www.ti.com/tool/flash-programmer)工具和CC1310 Launchpad(LAUNCHXL-CC1310)評估板對芯片實(shí)現(xiàn)UART的固件燒寫。

兩線bootloader工程設(shè)置

CC1310 三線bootloader如下圖左,除了串口的兩根連線外,還需要一個專門的I/O進(jìn)行啟動模式的控制。針對很多客戶產(chǎn)品只有一個對外的串口接口,提出了下圖右的兩線Bootloader方式,這個方式將BOOT_IO 與CC1310的UART RX復(fù)合使用。

如下圖BOOTLOADER的串口配置所示,UART和SPI的口是固定的I/O, 不能設(shè)置其他的I/O。CC1310 Launchpad 使用的是7*7 RGZ的封裝,下面我們需要設(shè)置BOOT_IO

BOOT_IO的設(shè)置在ccfg.c文件中,需要配置兩個宏,一個是有效觸發(fā)電平, 一個是DIO的編號。我們將有效觸發(fā)電平設(shè)置成高有效,BOOT_IO設(shè)置為DIO3。修改如下代碼。同時,為了使能Bootloader功能,需要定義下面兩個宏SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE和SET_CCFG_BL_CONFIG_BL_ENABLE為0xC5

#defineSET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5

#defineSET_CCFG_BL_CONFIG_BL_LEVEL 0x0 // Active low to open boot loader backdoor

#defineSET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0x02 // DIO number for boot loader backdoor

#defineSET_CCFG_BL_CONFIG_BL_ENABLE 0xC5

編譯,燒寫固件。

編譯生成目標(biāo)升級Bin固件

這里以TI的CC1310 SDK的pwmled_CC1310_LAUNCHXL_tirtos_ccs例程,編譯需要升級的固件。有兩個地方需要設(shè)置,一個是設(shè)置ARM Hex Utility中的memory width和rom width為8,一個是Build, Step中的post build添加,${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.bin ${CG_TOOL_ROOT}/bin/armofd.exe ${CG_TOOL_ROOT}/bin/armhex.exe ${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe

設(shè)置生成bin文件。 如下圖。

編譯工程,得到pwmled_CC1310_LAUNCHXL_tirtos_ccs.bin

通過Flash Programmer2對目標(biāo)芯片完成兩線串口Bootloader燒寫

應(yīng)用文檔SWRA466A中,對應(yīng)的提供了一個命令行小程序sblAppEx,用于固件升級,因?yàn)槌绦蚓幾g較早,有些版本運(yùn)行會出錯。而很多用戶不知道的,F(xiàn)lash Programmer2 具有通過串口進(jìn)行固件燒寫的功能。下面, 具體介紹用Flash Programmer2進(jìn)行串口固件升級的具體操作如下:

1. 按照圖X所示,連接UART口和BOOT IO口, BOOT IO (即DIO2) 接低點(diǎn)平, 復(fù)位系統(tǒng). 由于我們設(shè)置的是低點(diǎn)平進(jìn)入Bootloader狀態(tài),復(fù)位后,芯片進(jìn)入ROM Bootloader模式

2. 在Flash Programmer2 的左上角 Connected devices中,選擇XDS110 Class Application, Unknown (這是CC1310 Launchpad自帶的UART口,如果是你自己的串口,也可以在這里看到)

3. 選擇好Unknown后,在左下腳的Select Target Device… 下拉菜單中選擇對應(yīng)型號CC1310F128

4. 選擇好芯片好. 右鍵, 選擇Connect, 與目標(biāo)芯片建立UART通信, 如下圖

5. 選擇需要升級的固件BIN文件, 這里選取之前步驟生成的pwmled_CC1310_LAUNCHXL_tirtos_ccs.bin文件

6. 升級成功后,可以從Flash Programmer最下方的狀態(tài)窗口看到更新

7. Dd

至此,我們就實(shí)現(xiàn)了兩線Bootloader

審核編輯:何安

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

    關(guān)注

    0

    文章

    341

    瀏覽量

    9985
收藏 人收藏

    評論

    相關(guān)推薦

    阻抗匹配計算和差分走設(shè)置

    ad,cadense 阻抗匹配計算和差分走設(shè)置
    發(fā)表于 10-17 16:59 ?0次下載

    ad如何設(shè)置個元器件的距離

    在Altium Designer(簡稱AD)中設(shè)置個元器件之間的距離,主要是通過設(shè)置元器件間的安全間距(Clearance)規(guī)則來實(shí)現(xiàn)的。這個規(guī)則定義了元器件之間、元器件與走之間以
    的頭像 發(fā)表于 09-02 15:31 ?2757次閱讀

    磁性開關(guān)和三怎么互接

    磁性開關(guān),又稱為磁簧開關(guān)或霍爾開關(guān),是一種利用磁場的變化來控制電路通斷的電子元件。它廣泛應(yīng)用于各種自動控制、安全保護(hù)、位置檢測等領(lǐng)域。磁性開關(guān)根據(jù)其引腳數(shù)量的不同,可以分為式和三
    的頭像 發(fā)表于 08-26 15:24 ?904次閱讀

    磁性開關(guān)制和三制區(qū)別在哪

    磁性開關(guān)是一種常見的傳感器,廣泛應(yīng)用于工業(yè)自動化、智能建筑、安防系統(tǒng)等領(lǐng)域。磁性開關(guān)按照接線方式的不同,可以分為制和三種類型。下面將介紹磁性開關(guān)
    的頭像 發(fā)表于 08-26 15:14 ?1169次閱讀

    如何才能將Bootloader和Application關(guān)聯(lián)起來

    接下來,我們要利用該Bootloader調(diào)試目標(biāo)Application Project,如何才能將Bootloader和Application關(guān)聯(lián)起來呢?就需要借助剛才提到的Bootloader Project Build所生成
    的頭像 發(fā)表于 06-12 14:32 ?519次閱讀
    如何才能將<b class='flag-5'>Bootloader</b>和Application關(guān)聯(lián)起來

    BGA扇孔的規(guī)則設(shè)置

    過孔間過:用8-18的孔,線寬4mil,4mil,到孔盤4.6mli;(如需過一對差分線需BGA中的線寬及間距
    的頭像 發(fā)表于 03-28 09:25 ?532次閱讀

    STM32L431RCT6從用戶代碼區(qū)跳轉(zhuǎn)使用內(nèi)置system memory bootloader無效怎么解決?

    ); /* 在RTOS工程,這條語句很重要,設(shè)置為特權(quán)級模式,使用MSP指針 */ __set_CONTROL(0); /* 跳轉(zhuǎn)到系統(tǒng)BootLoader */ SysMemBootJump
    發(fā)表于 03-26 07:54

    bootloader設(shè)置APP在0x08020000為開始地址,編譯報錯怎么解決?

    bootloader設(shè)置APP在0x08020000為開始地址,但是編譯報錯。同時如何在IDE中設(shè)置調(diào)試debug地址和相關(guān)設(shè)置,謝謝大師們解答
    發(fā)表于 03-13 06:43

    STM32案例:BootLoader是怎么跳到App

    BootLoader項(xiàng)目程序和App項(xiàng)目程序是分開的,所以需要分別搭建對應(yīng)的項(xiàng)目工程文件,分開搭建文件是為了好配置,同時也是方便對項(xiàng)目進(jìn)行管理。
    發(fā)表于 03-04 09:35 ?3473次閱讀
    STM32案例:<b class='flag-5'>BootLoader</b>是怎么跳到App

    STM32無法進(jìn)入片上Bootloader的處理方法

    STM32無法進(jìn)入片上Bootloader的處理方法? 當(dāng)STM32芯片無法進(jìn)入片上Bootloader時,我們需要采取一系列的處理方法來解決這個問題。以下將詳細(xì)介紹一些常見的處理方法。 1.編程器
    的頭像 發(fā)表于 02-02 14:33 ?1718次閱讀

    在PSoC4000的UART Bootloader中不能將引導(dǎo)加載程序時鐘資源設(shè)置為extCLK嗎?

    我們對 Bootloader 項(xiàng)目中的 extCLK 時鐘設(shè)置有疑問。 我們在 PSoC Creator 4.4 IDE 中使用具有 UART 引導(dǎo)加載程序配置
    發(fā)表于 01-22 06:52

    RZ Loader APP工程修改方法

    由于RZ工程正常啟動時,代碼分成LDR部分和user部分,所以Bootloader可以分別對Application以上2部分進(jìn)行加載,在Bootloader工程里里復(fù)制applicat
    的頭像 發(fā)表于 01-09 12:08 ?499次閱讀
    RZ Loader APP<b class='flag-5'>工程</b>修改方法

    芯知識 | 語音芯片支持一串口和串口的作用與應(yīng)用優(yōu)勢

    隨著科技的不斷進(jìn)步,語音芯片作為現(xiàn)代電子產(chǎn)品中的核心組件,其功能和性能也在不斷提升。其中,語音芯片支持一串口和串口的功能,在實(shí)際應(yīng)用中具有重要的作用和優(yōu)勢。首先,讓我們了解一
    的頭像 發(fā)表于 12-20 08:39 ?632次閱讀
    芯知識 | 語音芯片支持一<b class='flag-5'>線</b>串口和<b class='flag-5'>兩</b><b class='flag-5'>線</b>串口的作用與應(yīng)用優(yōu)勢

    簡單講講u-boot和bootloader有啥區(qū)別

    搞嵌入式軟件開發(fā),掌握u-boot 和 bootloader應(yīng)該是必備的技能之一,但很多工程師依然不知道它們到底是啥。
    的頭像 發(fā)表于 11-09 12:24 ?1077次閱讀

    基于MM32F0140的UDS Bootloader學(xué)習(xí)筆記

    基于MM32F0140的UDS Bootloader學(xué)習(xí)筆記
    的頭像 發(fā)表于 10-30 17:11 ?642次閱讀
    基于MM32F0140的UDS <b class='flag-5'>Bootloader</b>學(xué)習(xí)筆記