国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

開發者案例|GC211實現MCU開發和OTA升級

機智云 ? 2022-10-31 16:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文以依托 GC211 和秉火開發板,講述如何實現MCU開發和OTA升級。用戶如果將開發了的產品發布上線銷售,后期需要更新固件和程序,就需要用到遠程OTA固件升級,就能對已發布的產品進行遠程升級。01硬件材料1.機智云4G模組GC211,此模組采用中移模組ML302,支持網絡,移動,聯通,電信4G網絡,可前往機智云官方和淘寶店鋪購買。
e7fcc0dc-5732-11ed-b116-dac502259ad0.png2.秉火【F103開發板-指南者】

02云端開發

2.1、云端部署
創建新產品,可根據自己需求選擇。
e94b2c26-5732-11ed-b116-dac502259ad0.png

添加如下數據點,可根據自己需求

e98ccb22-5732-11ed-b116-dac502259ad0.png
生成STM32F103代碼下載備用
e9e6fba6-5732-11ed-b116-dac502259ad0.png03硬件部分說明3.1 關于STM32啟動ARM7/ARM9 內核的控制器在復位后,CPU 會從存儲空間的絕對地址0x000000 取出第一條指令執行復位中斷服務程序的方式啟動,即固定了復位后的起始地址為0x000000(PC =0x000000)同時中斷向量表的位置并不是固定的。然而,Cortex-M3 內核啟動有3 種情況:1、通過boot 引腳設置可以將中斷向量表定位于SRAM 區,即起始地址為0x2000000,同時復位后PC 指針位于0x2000000 處;2、通過boot 引腳設置可以將中斷向量表定位于FLASH 區,即起始地址為0x8000000,同時復位后PC 指針位于0x8000000 處;3、通過boot 引腳設置可以將中斷向量表定位于內置Bootloader 區;Cortex-M3 內核規定,起始地址必須存放堆頂指針,而第二個地址則必須存放復位中斷入口向量地址,這樣在Cortex-M3 內核復位后,會自動從起始地址的下一個32 位空間取出復位中斷入口向量,跳轉執行復位中斷服務程序。對比ARM7/ARM9 內核,Cortex-M3 內核則是固定了中斷向量表的位置而起始地址是可變化的。總結一下STM32 的啟動文件和啟動過程。
首先對棧和堆的大小進行定義,并在代碼區的起始處建立中斷向量表,其第一個表項是棧頂地址,第二個表項是復位中斷服務入口地址。然后在復位中斷服務程序中跳轉C/C++標準實時庫的main 函數,完成用戶堆棧等的初始化后,跳轉.c 文件中的main 函數開始執行C 程序。假設STM32被設置為從內部FLASH 啟動(這也是最常見的一種情況),中斷向量表起始地位為0x8000000,則棧頂地址存放于0x8000000處,而復位中斷服務入口地址存放于0x8000004 處。當STM32 遇到復位信號后,則從0x80000004 處取出復位中斷服務入口地址,繼而執行復位中斷服務程序,然后跳轉main函數,最后進入mian 函數。3.2OTA 需求分析我們將建立兩個工程,分別是Bootloader 還有APP,我們將Bootloader下載到FLASH 空間0x8000000 地址處,那么STM32 啟動后會首先執行我們的Bootloader 程序,然后就可以按照我們意愿實現OTA 了。?FLASH區間劃分
根據需求,我們將STM32F103VET6 這個芯片Flash 空間劃分出4 個區域:Bootloader、FLAG、APP、APP_BAK。四個區間作用描述如下:? Bootloader: 存儲Bootloader 固件,MCU 上電后首先運行該固件。
? FLAG: 存儲有關升級的相關標志位,Bootloader 和APP 都需要操作該區域。
升級標志位(2B)
固件大小(4B)
MD5加密數據(16B)
? APP:存儲用戶程序固件。
? APPBAK: 臨時存儲云端下發的新固件,升級固件的一個過渡存儲區。
STM32F103VET6分區方案如下圖所示:
ea1b045a-5732-11ed-b116-dac502259ad0.png
3.3 BOOTLOADER分區部分
3.3.1 Bootloader程序流程
Bootloader 的主要職能是在有升級任務的時候將 APPBAK 分區里面的固件拷貝到 APP 區域。當然,這期間需要做很多的工作,比如升級失敗的容錯等等。具體的流程可以參考圖示。需要注意的是,在校驗 MD5 正確后開始搬運固件數據期間,MCU 出現故障(包括突然斷電),MCU 應發生復位操作(FLAG 區域數據未破壞),復位后重新開始執行 Bootloader,從而避免 MCU 刷成板磚。
ea313270-5732-11ed-b116-dac502259ad0.png
3.3.2 Bootloader程序配置
為了方便構架,此處我采用cubemx構建項目,生成keil工程。
創建STM32F103VE項目
ea58134a-5732-11ed-b116-dac502259ad0.png配置外部時鐘
eace39d0-5732-11ed-b116-dac502259ad0.png配置時鐘72M
eb087ed8-5732-11ed-b116-dac502259ad0.png
配置debug為serisl wire
eb22e4d0-5732-11ed-b116-dac502259ad0.png配置串口4為BootLoader的日志打印口。
eb797142-5732-11ed-b116-dac502259ad0.png生成keil代碼添加驅動flash.c,gagent_md5.c和app.c以及對應的組,如何添加此處不過多介紹(基礎的軟件操作),只提供文件路徑。
eb9a69c4-5732-11ed-b116-dac502259ad0.pngebc2f0e2-5732-11ed-b116-dac502259ad0.pngebecb7b0-5732-11ed-b116-dac502259ad0.pngec06db40-5732-11ed-b116-dac502259ad0.pngec8790dc-5732-11ed-b116-dac502259ad0.png
驅動文件的編寫以及函數介紹我此處不過多介紹,可以在原文地址的附件進行下載源文件,也可以在文章末尾復制代碼。重點代碼講解Main.c添加頭文件#include "app.h"eca95c80-5732-11ed-b116-dac502259ad0.png主函數添加APP_Process();ecf273ac-5732-11ed-b116-dac502259ad0.png根據自己分區大小設置區域,我的是18K,2k,54k,54k
ed1bbce4-5732-11ed-b116-dac502259ad0.png
3.3.3Bootloader編譯設置
按照 Bootloader 流程編寫好代碼,需要我們對 KEIL 工程做相應配置,需要注意的是編譯的 Bootloader 固件大小不超過最大可允許的 18KB。Keil 編譯器需要設置如下:
ed4322f2-5732-11ed-b116-dac502259ad0.pngFlash 燒寫地址設置有效
ed905ad6-5732-11ed-b116-dac502259ad0.png設置ST-LINK按塊擦除 FLASH 區間和燒寫程序
eda9dcc2-5732-11ed-b116-dac502259ad0.pngede23e1e-5732-11ed-b116-dac502259ad0.pngee7027a6-5732-11ed-b116-dac502259ad0.png編譯燒錄程序,到此BootLoader編寫燒錄完成。eea77f58-5732-11ed-b116-dac502259ad0.png
3.3.4APP程序分區部分
固件接收流程
做好 BOOTLOADER 工作后,我們開始寫 APP 分區的代碼。APP 分區固件的編寫要注意硬件版本號和軟件版本號,軟件版號作為升級迭代很重要的標志。需要注意的是,中斷向量地址偏移的定義,這個地方需要我們尤其注意,我在開發過程中在這個地方排查了好長時間。STM32 標準庫默認中斷向量地址偏移為0x0,但是我們APP 實際的偏移是0x5000。如果不修改,APP 也可以正常加載運行,但是不會相應中斷。所以,我們需要根據實際APP 下載的起始地址,對中斷向量地址偏移做定義。ef0153c0-5732-11ed-b116-dac502259ad0.png
3.4 CUBEMX部署
解壓云端生成的代碼,由于生成的代碼是STM32F103c8的,我們需要通過CUBEMX轉換成STM32F103VET6的代碼來適應我們的秉火開發板,創建一個新的cubeMX項目,導入自動代碼的CUBEMX工程.
ef1480d0-5732-11ed-b116-dac502259ad0.png目錄保存在解壓代碼所在的路徑。
ef481080-5732-11ed-b116-dac502259ad0.png修改時鐘樹為72M,注意需要同BootLoader時鐘。
ef8bddba-5732-11ed-b116-dac502259ad0.png根據項目需求以及我們自己創建的數據點,我們需要控制RGB燈,蜂鳴器,DHT11,在此處我們需要對引腳進行初始化。
efbaf8a2-5732-11ed-b116-dac502259ad0.png配置RGB燈,采用定時器輸出PWM控制。
f034e2d4-5732-11ed-b116-dac502259ad0.png有源蜂鳴器,和默認代碼按鍵2沖突,修改按鍵2的GPIO為PB15
f04a7bf8-5732-11ed-b116-dac502259ad0.png
3.5 配置溫濕度傳感器DHT11
為每個單獨的文件生成.C.H文件,方便調用頭文件
f0bd669a-5732-11ed-b116-dac502259ad0.png生成KEIL的代碼
f0eb4a6a-5732-11ed-b116-dac502259ad0.png到此我們就完成了項目的構建。3.6 編譯器設置
因為硬件FLASH 空間限定,我們需要對APP 的固件大小做嚴格的限制。本方案,
針對秉火開發板 我們可允許的最大固件為54KB。需要升級的新固件同樣最大可支持54KB。
1、設置FLASH 固件下載地址
f108b320-5732-11ed-b116-dac502259ad0.png2、配置中斷向量偏移地址設置
f15e659a-5732-11ed-b116-dac502259ad0.png3.重新構建工程,添加相關頭文件。
f172623e-5732-11ed-b116-dac502259ad0.png4.添加flash.h,flash.h, gagent_md5.c, gagent_md5.h, app.c文件到項目
f1d0ae84-5732-11ed-b116-dac502259ad0.png5. 在mian.c里面添加一下頭文件
f20dc5a8-5732-11ed-b116-dac502259ad0.png在main.c里面添加如下代碼
f22a2d38-5732-11ed-b116-dac502259ad0.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    147

    文章

    18924

    瀏覽量

    398018
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一文吃透RK平臺OTA升級開發:從邏輯到調試的完整指南

    ,能讓開發者高效解決固件更新、功能迭代等問題。本文將從升級邏輯、核心技巧、調試要點到問題排查,全方位拆解 RK 平臺 OTA 升級開發,附關
    的頭像 發表于 02-09 16:26 ?305次閱讀
    一文吃透RK平臺<b class='flag-5'>OTA</b><b class='flag-5'>升級</b><b class='flag-5'>開發</b>:從邏輯到調試的完整指南

    NSSine? MCU如何重塑數字電源與電機開發 | 納芯微首次亮相RT-Thread開發者大會

    在剛結束的2026RT-Thread20周年慶典暨開發者大會,“芯片與生態”論壇上,納芯微電子市場總監宋昆鵬帶來了一場聚焦于高實時性控制的技術分享,向開發者深度解析了其NSSine系列實時控制MCU
    的頭像 發表于 01-26 12:07 ?866次閱讀
    NSSine? <b class='flag-5'>MCU</b>如何重塑數字電源與電機<b class='flag-5'>開發</b> | 納芯微首次亮相RT-Thread<b class='flag-5'>開發者</b>大會

    2025華為開發者大賽暨開發者年度會議成功舉辦

    開發者大賽總決賽、CEO圓桌、主論壇大咖分享、分論壇技術演講、開發者展區&CodeLabs等多元議題,推動云開發工具鏈、智能體開發、具身智能等前沿技術實戰應用,助力
    的頭像 發表于 12-31 13:32 ?650次閱讀

    2025開源鴻蒙開發者激勵計劃正式啟動

    11月21日,2025開放原子開發者大會盛大啟幕,聚焦“AI共智,開源共享”主題,吸引了來自全球的開發者、企業技術領袖、社區維護及高校科研力量參會。作為大會的重要組成部分,開源鴻蒙技術分論壇同期
    的頭像 發表于 11-27 14:44 ?663次閱讀

    RT-Thread睿擎開發者網站重磅升級 | 產品動態

    技術賦能,體驗煥新尊敬的開發者,我們很高興地宣布RT-Thread睿擎開發者網站已完成全面升級!本次升級基于全新的vuepress-theme-plume框架重構,帶來更卓越的性能表現
    的頭像 發表于 11-12 17:29 ?1386次閱讀
    RT-Thread睿擎<b class='flag-5'>開發者</b>網站重磅<b class='flag-5'>升級</b> | 產品動態

    2025開放原子開發者大會11月啟幕

    開發者年度盛會即將登場!2025開放原子開發者大會將于11月21-22日,在北京北人亦創國際會展中心盛大召開。大會以“一切為了開發者”為主題,匯聚全球開源智慧——國內外優秀開發者、學術
    的頭像 發表于 10-24 14:05 ?956次閱讀

    華為云與開發者共贏AI未來

    ,與開發者共贏”主題演講,詳細闡述了華為云生態的最新進展,并宣布華為開發者空間全面升級,全新集成多種AI原生應用開發能力。
    的頭像 發表于 09-20 15:58 ?1652次閱讀

    NVIDIA DRIVE AGX Thor開發者套件重磅發布

    這款由 NVIDIA DriveOS 7 驅動的開發者套件能夠幫助開發者們打造出更安全的智能汽車和交通解決方案。
    的頭像 發表于 09-04 11:20 ?1373次閱讀

    曙光網絡SugonRI開發者社區正式上線

    在人工智能與工業深度融合的大潮中,工業軟件正在成為推動產業升級的關鍵引擎。為了讓更多開發者快速掌握工業級編程技術、共享行業實踐成果,曙光網絡正式推出開發者社區——曙睿(SugonRI)開發者
    的頭像 發表于 09-04 09:58 ?953次閱讀

    技術筆記 | Ubuntu 系統 OTA 升級全流程詳解

    開啟、命令使用到實戰案例與問題排查,為開發者提供一套可直接落地的操作指南一、recovery配置updateEngine支持因OTA升級過程中需要進入到recov
    的頭像 發表于 07-31 08:32 ?1194次閱讀
    技術筆記 | Ubuntu 系統 <b class='flag-5'>OTA</b> <b class='flag-5'>升級</b>全流程詳解

    矽速科技正式入駐 RuyiSDK 開發者社區,共建 RISC-V 開發者生態!

    近日,深圳矽速科技正式入駐RuyiSDK開發者社區,攜手社區共同推動RISC-V技術的發展與廣泛應用,為開發者提供一個更加便捷高效的開發環境。關于RuyiSDKRuyiSDK是中國科學院軟件研究所
    的頭像 發表于 07-10 11:00 ?1167次閱讀
    矽速科技正式入駐 RuyiSDK <b class='flag-5'>開發者</b>社區,共建 RISC-V <b class='flag-5'>開發者</b>生態!

    HDC 2025開發者主題演講精彩回顧

    開發者解決方案升級等內容,同時多位生態伙伴分享基于HarmonyOS的最新開發實踐,為開發者提供切實可行的創新思路,進一步推動鴻蒙生態的繁榮發展。會上還舉行了HarmonyOS極客馬拉
    的頭像 發表于 07-09 11:20 ?1309次閱讀

    開發者分享】開源硬核玩家集結:這些MCU板子泰酷了!

    前言本篇文章內容主要收錄了由開發者基于先楫半導體高性能MCU開發的各類DIY開源硬件項目,涵蓋不同應用方向與創意實踐。部分項目代碼可直接在本倉庫下載,部分則由開發者托管于其個人代碼倉庫
    的頭像 發表于 05-26 17:31 ?1628次閱讀
    【<b class='flag-5'>開發者</b>分享】開源硬核玩家集結:這些<b class='flag-5'>MCU</b>板子泰酷了!

    瑞薩電子MCU無感OTA升級功能介紹

    “零感知”的升級體驗。本文以RX26T為例,拆解無感OTA實現思路、代碼框架與實測情況,幫助開發者在自家項目中快速落地。
    的頭像 發表于 05-15 14:36 ?1731次閱讀
    瑞薩電子<b class='flag-5'>MCU</b>無感<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>功能介紹

    有沒有大神使用cubeMX生成初始代碼開發實現通過USB(HID)進行OTA升級功能的?

    求助,有沒有大神使用cubeMX生成初始代碼開發實現通過USB(HID)進行OTA升級功能的
    發表于 04-22 13:35