那曲檬骨新材料有限公司

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

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

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

廣芯微MCU進(jìn)階篇1:8位MCU IAP實(shí)現(xiàn)

廣芯微電子 ? 來源:廣芯微電子 ? 作者:廣芯微電子 ? 2022-11-24 10:23 ? 次閱讀

概述

本文將介紹廣芯微的8位MCU的IAP實(shí)現(xiàn)介紹及使用說明,通過IAP實(shí)驗(yàn)演示如何通過IAP 更新用戶程序的流程步驟等。

【什么是IAP?】

IAP即為 In Application Programming(在應(yīng)用中編程)。可以簡單理解為:在程序運(yùn)行的過程中進(jìn)行編程(升級程序,更新固件)。IAP是用戶自己的程序在運(yùn)行過程中對User Flash的部分區(qū)域進(jìn)行燒寫,目的是為了在產(chǎn)品發(fā)布后可以方便地通過預(yù)留的通信口對產(chǎn)品中的固件程序進(jìn)行更新升級。

IAP的通信口有許多種:UART串口、I2C、SPI......等。按理說只要能傳輸數(shù)據(jù)的通信口都能實(shí)現(xiàn)IAP的功能。本文所使用的是UART方式的IAP。

【IAP實(shí)現(xiàn)介紹】

本文實(shí)驗(yàn)以UM8004為例,flash大小為16K。UM8004的中斷向量表以及IAP固件程序存放到0x0000-0x1400區(qū)域,在之后的更新中不會對以該區(qū)域空間進(jìn)行擦寫。用戶APP應(yīng)用程序存放在從0x1400-0x3FFF的空間。每次需要更新升級時(shí),將這段空間進(jìn)行擦寫,替換成更新的應(yīng)用程序代碼

933ebb7a-6b9d-11ed-8abf-dac502259ad0.png

使用IAP的上位機(jī),通過IAP程序的處理函數(shù),即可實(shí)現(xiàn)應(yīng)用程序的更新升級。整個(gè)IAP的實(shí)現(xiàn)流程如下圖所示:

9354b7b8-6b9d-11ed-8abf-dac502259ad0.png

圖1 IAP功能流程圖

【IAP使用說明】

開發(fā)套件

IAP開發(fā)套件包含:

硬件開發(fā)板

軟件開發(fā)包

軟件開發(fā)包

軟件開發(fā)包中包含IAP工程、用戶APP應(yīng)用程序例子程序、IAP使用說明、以及一些工具、上位機(jī)等等。

軟件開發(fā)包中的內(nèi)容如下:

UM800Y_IAP:800Y的IAP工程。

UM800Y_APP:用戶應(yīng)用程序示例Demo。

UM800Y_IAP使用說明.doc:IAP實(shí)現(xiàn)和使用的說明文檔。

UNIC_IAPTool.exe: IAP上位機(jī)。

UNIC_BootTool.exe:Bootloader的用戶下載工具。

Sscom5.13.1.exe:串口調(diào)試助手。

Hex2bin.exe:hex文件轉(zhuǎn)換bin文件工具。

JFlash.exe :合并bin或hex文件。

硬件環(huán)境

硬件環(huán)境如圖1所示:

硬件開發(fā)板和USB連接線

電腦(編譯代碼,下載程序代碼)

93673992-6b9d-11ed-8abf-dac502259ad0.png

圖 2 硬件連接示意圖 軟件環(huán)境

Keil C51

工程說明

下面對本次實(shí)驗(yàn)的工程進(jìn)行簡單說明。 IAP工程:

(1) 需要在Target選項(xiàng)卡里設(shè)置我們IAP程序的起始地址與大小,如:

93bc851e-6b9d-11ed-8abf-dac502259ad0.png

圖3 設(shè)置IAP程序的起始地址與大小

這里的IAP程序起始地址設(shè)為0x0000,大小設(shè)為0x1400,即IAP所需的FLASH空間為5KB。其中IAP所占空間的大小可根據(jù)IAP的實(shí)際大小進(jìn)行修改。

(2) 設(shè)置IAP_Proc函數(shù)(IAP更新處理程序)的入口地址,用絕對地址定位的方法設(shè)置在某個(gè)固定的地址,下面以設(shè)置地址為0x0200為例。點(diǎn)開keil C51中的Options for Target,勾選下圖所示的地方。

940b81c8-6b9d-11ed-8abf-dac502259ad0.png

圖4 勾選Use ExtendedLinker(LX51) instead of BL51

之后在下圖所示位置填入“?PR?IAP_PROC?IAP(C:0x0200)”, 如圖5,最后點(diǎn)擊ok。

946185be-6b9d-11ed-8abf-dac502259ad0.png

圖5 設(shè)置IAP_Proc函數(shù)的地址為0x0200

(3) IAP源碼說明

9475d370-6b9d-11ed-8abf-dac502259ad0.png

圖6 IAP部分代碼

IAP源碼主要功能是當(dāng)UART收到上位機(jī)的請求更新幀時(shí),執(zhí)行IAP_Proc()函數(shù),實(shí)現(xiàn)應(yīng)用程序的更新下載。


用戶APP工程:

(1)需要在Target選項(xiàng)卡里設(shè)置用戶應(yīng)用APP程序的起始地址與大小,如:

94a2bad4-6b9d-11ed-8abf-dac502259ad0.png

圖7 設(shè)置IAP程序的起始地址與大小

這里的APP應(yīng)用程序起始地址設(shè)為0x1400,由于UM8004的flash大小為16K,

用戶APP應(yīng)用程序最大尺寸大小 = 16KB – IAP程序大小=0x2C00。

(2)用戶APP程序中需要添加用于檢查更新的函數(shù)。

本例程使用UART0的回調(diào)函數(shù)調(diào)用IAP處理函數(shù)去更新升級應(yīng)用程序(UART0的波特率需和IAP程序的一致)。調(diào)用IAP處理函數(shù)的方法如下,根據(jù)5的配置來設(shè)置的IAP入口地址值(IAP函數(shù)的地址為0x0200)在用戶APP程序的檢查更新函數(shù)中,定義一個(gè)函數(shù)指針,指向該地址,當(dāng)UART收到請求更新信息時(shí)用于跳轉(zhuǎn),設(shè)置如圖8所示。

94ce5464-6b9d-11ed-8abf-dac502259ad0.png

94ec9546-6b9d-11ed-8abf-dac502259ad0.png

圖8 app程序中設(shè)置IAP處理函數(shù)跳轉(zhuǎn)

如需詳細(xì)代碼和程序移植可參考軟件開發(fā)包的工程以及說明文檔。

【IAP實(shí)驗(yàn)】

IAP實(shí)驗(yàn)說明

本次實(shí)驗(yàn)使用UM8004進(jìn)行演示,通過IAP 將原本Lptimer功能的用戶應(yīng)用程序更新為ADC功能的用戶應(yīng)用程序。

IAP實(shí)驗(yàn)步驟

(1) 將IAP程序和用戶應(yīng)用程序進(jìn)行打包

首先打開J-Flash工具。點(diǎn)擊open data file,打開用戶app程序的bin或者h(yuǎn)ex文

件。這里選擇軟件開發(fā)包里UM800Y_APP文件夾中的Lptimer工程中的bin文件。(可通過hex2bin工具將hex轉(zhuǎn)換成bin文件)

950e9268-6b9d-11ed-8abf-dac502259ad0.png

圖 9 J-Flash工具

打開成功后點(diǎn)擊軟件左上角File,點(diǎn)擊Merge data file…

953ef098-6b9d-11ed-8abf-dac502259ad0.png

圖 10 J-Flash工具

然后選擇IAP工程的bin或者h(yuǎn)ex文件。

打開成功后,選擇是,將兩個(gè)文件合并打包。

95507d2c-6b9d-11ed-8abf-dac502259ad0.png

圖 11 J-Flash工具合并文件

打包成功后。點(diǎn)擊軟件左上角File,選擇Save data file as..將打包好的程序進(jìn)行保存,保存的格式為bin或者h(yuǎn)ex。

95634ef2-6b9d-11ed-8abf-dac502259ad0.png

圖 12J-Flash工具保存合并文件


9580a5ce-6b9d-11ed-8abf-dac502259ad0.png

圖 13 J-Flash工具保存合并文件

(2)使用UNIC_BootTool_V2.0下載合并后的文件

使用UNIC_BootTool_V2.0工具下載程序流程如下:

芯片類型選擇UM800Y,選擇115200波特率

②點(diǎn)擊Browse選擇剛剛打包好的程序

③打開文件后點(diǎn)擊Open,復(fù)位芯片,芯片進(jìn)入到Boot模式。

④點(diǎn)擊Auto Download,將程序下載到UM8004。

95a04f6e-6b9d-11ed-8abf-dac502259ad0.png

圖 14 Bootloader的用戶下載工具 由于本例子將IAP程序和LPTIMER程序打包合并后下載,在程序下載成功后,打開串口助手會看到LPTIMER計(jì)數(shù)功能。

95bb9116-6b9d-11ed-8abf-dac502259ad0.png

圖 15 lptimer定時(shí)計(jì)數(shù)

(3)使用UNIC_IAPTool_V1.3更新程序

通過使用UNIC_IAPTool_V1.3上位機(jī),可以讓IAP程序引導(dǎo)更新用戶應(yīng)用程序。

95ce93b0-6b9d-11ed-8abf-dac502259ad0.png

圖 16IAPTool上位機(jī)說明

使用UNIC_IAPTool_V1.3上位機(jī)更新具體操作流程如下

①打開上位機(jī)選擇串口號以及波特率,選擇芯片型號為UM8004。

②打開需要更新的用戶應(yīng)用程序的bin或者h(yuǎn)ex文件。打開后會顯示該文件的CRC值。

③點(diǎn)擊OPEN

④點(diǎn)擊一鍵下載

⑤點(diǎn)擊一鍵下載后,等待更新過程,更新成功后會提示“下載完成”,否則會提示下載失敗。

95e108a6-6b9d-11ed-8abf-dac502259ad0.png


圖 17 IAPTool上位機(jī)更新成功

⑥之后會運(yùn)行用戶的程序。(可以通過串口工具打印信息看到,通過IAP升級更新已將原來打包時(shí)的Lptimer應(yīng)用程序更換為ADC功能應(yīng)用程序。)


95ef6720-6b9d-11ed-8abf-dac502259ad0.png

圖 18 IAP更新用戶程序?yàn)锳DC功能程序

最終通過IAP已更新升級了用戶的應(yīng)用程序。

【總結(jié)】

感謝大家參與學(xué)習(xí)廣芯微MCU進(jìn)階篇1:8位MCU IAP實(shí)現(xiàn),讓我們期待后續(xù)的文章更新。

【關(guān)于廣芯微】

廣芯微電子(廣州)股份有限公司專注于低功耗物聯(lián)網(wǎng)芯片的研發(fā)、設(shè)計(jì)與銷售,為客戶提供面向個(gè)人與家庭、工業(yè)與商業(yè)物聯(lián)網(wǎng)應(yīng)用領(lǐng)域,以低功耗為差異化的8位/32位微控制器芯片、無線射頻收發(fā)器芯片、數(shù)字電源管理芯片和傳感與信號調(diào)理專用芯片等。

廣芯微秉持客戶第一、技術(shù)創(chuàng)新和市場領(lǐng)先的理念,以國際領(lǐng)先的技術(shù)為基礎(chǔ),為客戶提供一流的產(chǎn)品與技術(shù),打造值得信賴的集成電路設(shè)計(jì)品牌企業(yè)。公司獨(dú)有的低功耗芯片設(shè)計(jì)方法、輕量化人工智能算法、大功率的PD協(xié)議控制以及多樣性無線連接技術(shù)整合而成的低成本高收益的集成電路設(shè)計(jì),在健康醫(yī)療電子消費(fèi)電子、智慧家庭、工業(yè)控制傳感器與表計(jì)等領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用。廣芯微低功耗微處理器芯片與射頻芯片具有超低睡眠功耗與更低的工作電流,有效地幫助電子設(shè)備降低能耗,積極助力節(jié)能減排。

審核編輯 :李倩

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

    關(guān)注

    146

    文章

    17324

    瀏覽量

    352662
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1243

    瀏覽量

    101775
  • IAP
    IAP
    +關(guān)注

    關(guān)注

    2

    文章

    164

    瀏覽量

    24393
  • 廣芯微電子
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    239

原文標(biāo)題:廣芯微MCU進(jìn)階篇1:8位MCU IAP實(shí)現(xiàn)

文章出處:【微信號:廣芯微電子,微信公眾號:廣芯微電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    海科技CS8M321/326系列經(jīng)濟(jì)型MCU全新上市

    近期,海科技(股票代碼:688595)全新推出了CS8M321(簡稱M321)、CS8M326(簡稱M326)系列ADC模塊經(jīng)濟(jì)型MCU。該系列M
    的頭像 發(fā)表于 01-10 18:05 ?154次閱讀
    <b class='flag-5'>芯</b>海科技CS<b class='flag-5'>8</b>M321/326系列經(jīng)濟(jì)型<b class='flag-5'>MCU</b>全新上市

    基于觸控型8MCU AiP8F3208循環(huán)風(fēng)扇應(yīng)用方案

    基于觸控型8MCU AiP8F3208循環(huán)風(fēng)扇應(yīng)用方案
    的頭像 發(fā)表于 11-18 09:42 ?235次閱讀
    基于觸控型<b class='flag-5'>8</b><b class='flag-5'>位</b><b class='flag-5'>MCU</b> AiP<b class='flag-5'>8</b>F3208循環(huán)風(fēng)扇應(yīng)用方案

    海科技32MCU加速工業(yè)芯片國產(chǎn)替代

    隨著國產(chǎn)高性能32MCU的崛起,海科技憑借其在產(chǎn)品性能、可靠性、安全性和低功耗方面的優(yōu)勢,以及不斷完善的開發(fā)生態(tài),正逐步打破國際廠商的壟斷地位。CS32系列MCU的多樣化產(chǎn)品線,將
    的頭像 發(fā)表于 11-14 15:00 ?537次閱讀
    <b class='flag-5'>芯</b>海科技32<b class='flag-5'>位</b><b class='flag-5'>MCU</b>加速工業(yè)芯片國產(chǎn)替代

    晟矽8MCU MC32P7051產(chǎn)品概述

    MC32P7051是晟矽電新推出的消費(fèi)類電子產(chǎn)線的產(chǎn)品,是一款高性能IO+AD型8MCU,采用RISC內(nèi)核。該產(chǎn)品的各個(gè)IP,延續(xù)晟矽產(chǎn)品特色,用戶可極速上手。可做為消費(fèi)類電子、鋰
    的頭像 發(fā)表于 09-12 14:22 ?964次閱讀
    晟矽<b class='flag-5'>微</b>電<b class='flag-5'>8</b><b class='flag-5'>位</b><b class='flag-5'>MCU</b> MC32P7051產(chǎn)品概述

    海科技通用 32 MCU FAQ

    景中。 問:CS32L010/CS32L015 VCAP PIN 是什么功能? 答:VCAPPIN 是MCU 內(nèi)部的一個(gè) LDO 輸出,給內(nèi)核供電。MCU 外部需要接一個(gè)1uF 電容到 GND, 以
    發(fā)表于 06-07 16:48

    海通用 MCU 應(yīng)用筆記 :CS32F103 系列 MCU IAP 升級指南

    本應(yīng)用筆記旨在幫助指導(dǎo)用戶針對海 CORTEX-M3 MCU CS32F103 系列單片機(jī) IAP 應(yīng)用的快速開發(fā)。本應(yīng)用筆記實(shí)現(xiàn)了 CAN 和 USART 兩種接口方式來開發(fā)
    發(fā)表于 05-16 11:40

    海通用 MCU 應(yīng)用筆記: CS32F03x IAP 升級

    本技術(shù)文檔旨在幫助客戶實(shí)現(xiàn) IAP 升級提供一個(gè)參考方案和模板。本文檔提供基于 UART 升級的 MCU 參考代碼和 PC 端的升級工具軟件。適用 MCU 型號:CS32F030、CS
    發(fā)表于 05-16 10:55

    海 32 MCU 開發(fā)調(diào)試 ,基于 VS Code 插件實(shí)現(xiàn)海 32 MCU 開發(fā)調(diào)試

    編譯/鏈接等腳本語法,只需要簡單配置參數(shù)、新建工程、增加代碼文件后,就可以開始編譯 和調(diào)試了。如果要生成靜態(tài)庫文件也只需要修改輸出格式,再編譯就可能生成.a 的文件。*附件:基于VSCode插件實(shí)現(xiàn)海32
    發(fā)表于 05-16 10:46

    半導(dǎo)體宣布推出8RISC架構(gòu)IO型OTP MCU SC8P05x系列

    近日,中半導(dǎo)體(深圳)股份有限公司(以下簡稱:中半導(dǎo) 股票代碼:688380)宣布推出8RISC架構(gòu)IO型OTP MCU SC
    的頭像 發(fā)表于 04-18 18:09 ?1419次閱讀
    中<b class='flag-5'>微</b>半導(dǎo)體宣布推出<b class='flag-5'>8</b><b class='flag-5'>位</b>RISC架構(gòu)IO型OTP <b class='flag-5'>MCU</b> SC<b class='flag-5'>8</b>P05x系列

    MCU分類有哪些 soc芯片和mcu芯片區(qū)別

    MCU按照位數(shù)(數(shù)據(jù)總線寬度)劃分,可分為48、16、32和64
    的頭像 發(fā)表于 04-11 15:46 ?2218次閱讀
    <b class='flag-5'>MCU</b>分類有哪些 soc芯片和<b class='flag-5'>mcu</b>芯片區(qū)別

    選用8和32MCU的關(guān)鍵考量

    基于位數(shù)的MCU核心架構(gòu):MCU使用的位數(shù)為8、16、32(有時(shí)稱為深度或數(shù)據(jù)寬度)來表示寄存器的大小,如8
    發(fā)表于 03-26 11:14 ?735次閱讀

    FH8A1?8A是一種io型,完全靜態(tài),基于otp的控制器8MCU單片機(jī)

    FH8A1?8A是一種io型,完全靜態(tài),基于otp的控制器8MCU單片機(jī)
    的頭像 發(fā)表于 03-25 17:35 ?637次閱讀

    精通8MCU模擬外設(shè):高手的進(jìn)階指南

    PIC 與 AVR MCU是目前最受歡迎的8MCU類別,相信不少小伙伴都上過手。PIC MCU易于編程,并且易于與其他外設(shè)接口;AVR
    發(fā)表于 02-29 14:16 ?1273次閱讀
    精通<b class='flag-5'>8</b><b class='flag-5'>位</b><b class='flag-5'>MCU</b>模擬外設(shè):高手的<b class='flag-5'>進(jìn)階</b>指南

    RT-Thread驅(qū)動(dòng)開發(fā)指南進(jìn)階篇-動(dòng)手驅(qū)動(dòng)先楫未適配的外設(shè)LCD

    經(jīng)過上一的《《RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南》基礎(chǔ)--以先楫bsp的hwtimer設(shè)備為例》闡述,可以大致了解到RT-thread設(shè)備驅(qū)動(dòng)開發(fā)的方法步驟,開發(fā)指南中的進(jìn)階篇外設(shè)主要是比基礎(chǔ)
    的頭像 發(fā)表于 02-25 11:04 ?2783次閱讀
    RT-Thread驅(qū)動(dòng)開發(fā)指南<b class='flag-5'>進(jìn)階篇</b>-動(dòng)手驅(qū)動(dòng)先楫未適配的外設(shè)LCD

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階5 自定義實(shí)現(xiàn)insmod命令實(shí)驗(yàn)

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階5 自定義實(shí)現(xiàn)insmod命令實(shí)驗(yàn)
    的頭像 發(fā)表于 02-20 14:10 ?780次閱讀
    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)<b class='flag-5'>進(jìn)階篇</b>-<b class='flag-5'>進(jìn)階</b>5 自定義<b class='flag-5'>實(shí)現(xiàn)</b>insmod命令實(shí)驗(yàn)
    百家乐技巧在那里| 九龙坡区| 百家乐实战案例| 葡京娱乐| 百家乐开户送彩金28| 百家乐官网园胎教网| 百家乐单机版的| 有破解百家乐官网仪器| 大发888玩法| 24山方位吉凶| 灯塔市| 大赢家百家乐的玩法技巧和规则| 大发888账号| 百家乐有电脑游戏吗| 百家乐官网智能分析软| 百家乐平玩法官方网址| 新濠百家乐官网的玩法技巧和规则 | 新金润娱乐城| 模拟百家乐下载| 棋牌百家乐官网赢钱经验技巧评测网| 大发888游戏技巧| 百家乐如何写路| 新手百家乐官网指点迷津| 大发888casino下载| 闲和庄百家乐官网娱乐网| 网上赌博网站| 百家乐的玩法技巧和规则| 吉利百家乐官网的玩法技巧和规则| 喜洋洋水果机遥控器| 百家乐赚钱项目| 澳门百家乐官网走势图| 九游棋牌大厅| 百家乐园云鼎娱乐网| 鑫鑫百家乐官网的玩法技巧和规则 | 百家乐官网丽| 百家乐官网洗码全讯网| 大发888游戏软件下载| 百家乐庄闲必胜手段| 百家乐官网赌博论坛| 天柱县| 大发888官方我的爱好|