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

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

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

兩線bootloader工程設(shè)置

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

CC1310是TI Simplelink MCU系列中支持Sub-1G的SOC.針對(duì)很多客戶需要串口進(jìn)行固件升級(jí)的應(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)評(píng)估板對(duì)芯片實(shí)現(xiàn)UART的固件燒寫。

兩線bootloader工程設(shè)置

CC1310 三線bootloader如下圖左,除了串口的兩根連線外,還需要一個(gè)專門的I/O進(jìn)行啟動(dòng)模式的控制。針對(duì)很多客戶產(chǎn)品只有一個(gè)對(duì)外的串口接口,提出了下圖右的兩線Bootloader方式,這個(gè)方式將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文件中,需要配置兩個(gè)宏,一個(gè)是有效觸發(fā)電平, 一個(gè)是DIO的編號(hào)。我們將有效觸發(fā)電平設(shè)置成高有效,BOOT_IO設(shè)置為DIO3。修改如下代碼。同時(shí),為了使能Bootloader功能,需要定義下面兩個(gè)宏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)升級(jí)Bin固件

這里以TI的CC1310 SDK的pwmled_CC1310_LAUNCHXL_tirtos_ccs例程,編譯需要升級(jí)的固件。有兩個(gè)地方需要設(shè)置,一個(gè)是設(shè)置ARM Hex Utility中的memory width和rom width為8,一個(gè)是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對(duì)目標(biāo)芯片完成兩線串口Bootloader燒寫

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

1. 按照?qǐng)DX所示,連接UART口和BOOT IO口, BOOT IO (即DIO2) 接低點(diǎn)平, 復(fù)位系統(tǒng). 由于我們?cè)O(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… 下拉菜單中選擇對(duì)應(yīng)型號(hào)CC1310F128

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

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

6. 升級(jí)成功后,可以從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ī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式處理
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    9990
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    自定義RISC V的bootloader-v2

    在生成SoC時(shí),會(huì)生成一個(gè)預(yù)定義bootloader .bin文件,用于指定soc的工程運(yùn)行的地址,這包括在flash的存儲(chǔ)地址 ,加載到外存中的運(yùn)行地址及在外存中分配的存儲(chǔ)空間的大小 。下面我們
    的頭像 發(fā)表于 10-31 12:37 ?479次閱讀
    自定義RISC V的<b class='flag-5'>bootloader</b>-v2

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

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

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

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

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

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

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

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

    如何才能將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 ?562次閱讀
    如何才能將<b class='flag-5'>Bootloader</b>和Application關(guān)聯(lián)起來

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

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

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

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

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

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

    STM32案例:BootLoader是怎么跳到App

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

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

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

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

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

    RZ Loader APP工程修改方法

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

    pcb走的規(guī)則設(shè)置方法介紹

    隨著電子產(chǎn)品的迅速發(fā)展,PCB(Printed Circuit Board)在電子設(shè)計(jì)中扮演著重要的角色。設(shè)計(jì)PCB走時(shí),合理設(shè)置規(guī)則是確保電路在安全、穩(wěn)定、高效工作的基礎(chǔ)。本文將詳細(xì)介紹PCB走
    的頭像 發(fā)表于 01-09 10:45 ?2367次閱讀

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

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