<address id="pbhjb"><nobr id="pbhjb"><menuitem id="pbhjb"></menuitem></nobr></address>

    <address id="pbhjb"></address>

      <address id="pbhjb"><listing id="pbhjb"><meter id="pbhjb"></meter></listing></address>

      電子發燒友網 > 控制/MCU > 正文

      STM32的backtrace深度講解(cortex-m的棧布局與棧回溯的原理和方案)

      2020年10月22日 15:13 ? 次閱讀

      STM32上的backtrace原理與分析

      • 1.說明

      • 2.cortex-m上的棧布局

        • 2.1cortex-m上的寄存器

        • 2.2cortex-m上的自動壓棧

        • 2.3cortex-m上的函數執行流程

      • 3.cmbacktrace原理分析

        • 3.1問題分析

      • 4.實際應用

      • 5.總結

      1.說明

      對于一個嵌入式產品的開發流程來說,一般都需要經過如下幾個階段:

      1.方案預研

      2.產品功能設計

      3.開發調試

      4.工廠測試

      5.產品上線售后

      一般來說,1,2,3板子都是在開發者手上,一旦遇到bug,只要可以復現,基本上都可以排查出來,然后修復或者規避。但一旦進入到4,5階段,產品已經成型之后,再想排查BUG就比較麻煩了。例如工廠測試階段,有可能連續運行好幾天或者好幾個星期才能復現的問題,排查起來就十分的復雜。對于這種情況,backtrace是十分必要的。可以在離線的狀態下分析系統的關鍵信息,通過函數的棧回溯,從而找到出錯的對應的執行函數,然后結合程序設計,基本上大部分的bug基本上也可以找到。我之前寫過一篇文章arm上backtrace的分析與實現原理。分析了在cortex-a上的分析情況。但是對于cortex-m來說,問題就會復雜許多,因為cortex-m對于固件的體積的限制以及特殊的架構,讓backtrack的方案占用了過大的flash。這是設計者所不能接受的,而且更加難受的是cortex-m并沒有棧回溯指針。這就讓棧的深度的計算變的十分復雜。本文主要分析cortex-m的棧布局以及一些棧回溯的底層原理和方案。

      2.cortex-m上的棧布局

      在cortex-m上弄清楚棧的布局,就必須理解cortex-m上的壓棧入棧的機制和原理。下面從該體系架構上說說cortex-m上比較重要的細節。

      2.1cortex-m上的寄存器

      一旦涉及到C語言函數,必須要考慮到的問題就是函數的入棧出棧的問題,也就是SP指針的增加或者減少。下面還是來復習一下armcortex-m上的寄存器。

      按照armcortex-m的設計,一共有32個寄存器。

      • 13個通用寄存器,r0-r12
      • 2個不同模式下使用的SP,PSP(SP_process)和MSP(SP_main)
      • 1個鏈接寄存器LR(r14)
      • 1個程序計數器(PC)
      • 1個程序狀態寄存器(xPSR)

      在不同的模式下,R0-R12、SP、LR是各有一份的,所以這樣算下來,總共是32個寄存器,但是在不同的模式下,并不能完全看到這32個寄存器的狀態,只能看到其中的一部分。

      通用寄存器R0-R12

      上圖將通用寄存器分為lowregister和highregisters就是根據指令集來說的,對于thumb指令,是16位的,只能訪問到lowregister,也就是R0-R7,而對于32位的arm指令,是所有的指令都可以訪問到。所以有這樣的劃分。

      棧指針SP

      一旦涉及到參數的壓棧與入棧,或者函數的執行返回的時候,必須會涉及到棧指針的變化。在cortex-m由于涉及到兩種不同的sp的切換,所以在使用SP的時候要格外的小心。

      程序鏈接寄存器LR

      程序的鏈接寄存器在函數返回的時候會被使用到,比如一個函數A中執行的另外一個函數B,如下

      voidfun_A(){fun_B()}

      那么當執行到fun_B的時候,首先編譯器編譯的匯編代碼會將func_A的地址自動存放LR壓棧,然后壓入其他的參數。待func_B執行完成之后,會彈出LR到PC,此時就會返回到fun_A函數去執行了。

      程序計數寄存器

      該寄存器會自動指向當前指向的程序地址。

      2.2cortex-m上的自動壓棧

      不同于其他的處理器架構,cortex-m的定位一開始就是為實時性、小體積容量的設計考慮的,所以在中斷處理這一塊,也做了一個十分有意思的設計--自動壓棧處理。

      一般的CPU進入中斷后都會去進行壓棧操作,因為棧就是函數的現場,保護了棧內容,中斷退出的時候只需要恢復棧數據就可以恢復到程序執行的狀態了。以往這個階段都是通過人工操作寫程序完成的,在cortex-m上,將部分棧由硬件自動壓入。其壓入棧的順序一般如下:

      xPSR->PC(返回地址)->LR->R12->R3->R2->R1->R0

      這些寄存器硬件自動壓入,效率上應該有較大的提升。另外的一些寄存器可以手動處理。

      2.3cortex-m上的函數執行流程

      在分析函數的執行的時候,主要是想弄清楚底層的硬件寄存器做了哪些操作,這就需要進行匯編翻譯進行。此處我們用armgcc編譯出cortex-m的elf固件,通過objdump隨便看一個函數體的執行。

      對于一個arm函數的匯編代碼,基本上都是上面的執行邏輯。根據指令機器碼,得到對應的指令。

      我們知道,在函數執行的時候,保存在內存上的都是機器碼,只有在通過objdump工具的時候,才會將這些機器碼變成程序。也就是說,在程序執行時,如果此時查看0x8004794這個地址,看到的數據是80b584b0這樣的內容。那么這些又該如何進行翻譯呢?該函數的sp指針到底該如何計算。

      PUSH指令分析

      PUSH指令所對應的機器碼如下:

      1011010Rrrrrrrrr--PUSHreg_list

      按照解析,R表示的是LR寄存器,后面的是R0-R7寄存器的列表。所以解釋起來機器碼b580翻譯成二進制b1011010110000000。對應的實際含義就是壓入LR與R7寄存器,當執行PUSH后,SP指針會自動減去兩個寄存器的大小,也就是8個字節。

      SUB指令分析

      SUB指令對應的機器碼如下:

      101100001vvvvvvv--SUBSp,#immed_7*4

      根據含義,v表示分別乘以4。也就是最低位為4,第二位是8,第三位是16,第四位為32,以此類推,得到其偏移的立即數。目前的機器碼為b084翻譯成二進制為b1011000010000100,所以表示的立即數為16.

      兩者結合,得到當前函數會使得sp指針的值減少16+8=24。

      3.cmbacktrace原理分析

      在做cortex-m上的backtrace的時候,查閱了一些資料,其中發現一個CmBacktrace。

      https://github.com/armink/CmBacktrace

      設計的目的:針對ARMCortex-M系列MCU的錯誤代碼自動追蹤、定位,錯誤原因自動分析的開源庫。

      其實現的機理是利用cortex-m的壓棧特性所決定的。當指定好棧地址后,sp指針就會在自己的棧空間內進行偏移。函數入棧的時候,會壓入參數,也會壓入lr寄存器,利用lr寄存器的值就可以找到是誰調用該函數的。

      對于裸機情況,棧地址指向一個

      當程序出現異常的時候,只需知道當前的棧頂以及當前的sp的偏移量,這些在程序中是很好得到的。然后開始便利棧中的數據,每四個字節遍歷一次得到地址,該地址不一定是函數地址,有可能是參數的地址,人工去審閱這些地址的時候,只要細心一點是可以找到線索的。在CmBacktrace上通過判斷地址的前面2個字節的thumb指令的機器碼是否為BL或者bLx來進行判斷該地址是否為函數。這樣也是可以的。

      如果在cortex-m上使用了操作系統,原理上基本上是類似的,由于每個線程都會有自己的線程棧,所以會有多個線程棧的情況。要想得到當前運行的線程棧的backtrack,原理上是和裸機一樣。但是如果想要分析其他的線程的棧的backtrace,則需要注意操作系統的壓棧問題。

      例如在rt-thread中,進行線程切換的時候,會調用pendsv進行自動壓棧一次,然后在手動壓棧其他的寄存器。如果要做解析,首先去掉前面操作系統壓棧的部分。rt-thread操作系統前面壓棧的數據

      #xPSR->PC->LR->R12->R3->R2->R1->R0#R11R10R9R8R7R6R5R4FLAG

      一共壓了16個寄存器,如果不做處理,解析到的PC為rt_hw_interrupt_enable,解析到的LR為rt_schedule。

      3.1問題分析

      在對棧的解析過程中,我們往往會涉及到一些臟數據來破壞我們的分析。比如,參數中傳遞東西是函數的地址,這是讀到的可能會誤以為這是LR,這樣分析起來會有一定的風險,雖然說在大多數情況下CmBacktrace的解析可以做的很好,但是遇到參數是函數地址的時候,就很難去做分析了,此時可能會借助人工來做分析。需要一定的工作量。那么有沒有比較想的辦法,不需要便利,直接跳轉到下一個LR去執行呢?

      根據在《2.3cortex-m上的函數執行流程》的分析,我們基本上可以算出來一個函數的棧數據偏移,這樣就可以順利的解決這個問題了。每次都會跳轉到固定的函數中,結合當前的數據棧的內容,從而得到想要的結果。

      4.實際應用

      上述的分析是有實際應用的價值的,在每次出錯的情況下,我們可以保存棧的數據到掉電非易失性存儲介質的某個特定的地址處,因為棧的大小并不會很大,一般512字節或者1k或者2k等等數據量,問題出現后,取出棧里面的內容,然后通過外部工具例如python腳本進行分析,與對應的elf文件結合起來,就能很準確的定位函數的backtrace了。然后對于問題的查詢也會變得有跡可循,大大減少后期調試工作的復雜性。

      5.總結

      未雨綢繆是設計中必須考慮的問題,做出的產品都不能保證一點問題都不會出現,當出現問題的時候,也不用怕,因為有了分析的手段和數據。這樣也能夠減少產品設計的風險,做出更好用的嵌入式產品。


      原文標題:STM32上的backtrace原理與分析

      文章出處:【微信公眾號:嵌入式IoT】歡迎添加關注!文章轉載請注明出處。


      下載發燒友APP

      打造屬于您的人脈電子圈

      關注電子發燒友微信

      有趣有料的資訊及技術干貨

      關注發燒友課堂

      鎖定最新課程活動及技術直播

      電子發燒友觀察

      一線報道 · 深度觀察 · 最新資訊
      收藏 人收藏
      分享:

      評論

      相關推薦

      零基礎Python入門教程二

      隨著新技術的不斷推進,在未來無論你要進入網頁開發、數據分析、機器學習、人工智能還是無人車等領域,Python 都是必不可
      發燒友學院發表于 2019-04-09 00:00? 0次閱讀
      零基礎Python入門教程二

      華虹半導體助力大容量 MCU 解決方案,多方面縮...

      華虹半導體最新推出90nm 超低漏電嵌入式閃存工藝平臺,助力大容量MCU解決方案 全球領先的特色工藝....
      發表于 2020-10-22 16:46? 77次閱讀
      華虹半導體助力大容量 MCU 解決方案,多方面縮...

      嵌入式學習方法步驟是什么?

      嵌入式學習方法步驟是什么?我看一些初學者問的很多,分享一下。 1.Linux基礎及C語言高級 學習Linux基礎及C...
      發表于 2020-10-22 15:23? 0次閱讀
      嵌入式學習方法步驟是什么?

      在freeRTOS環境下,如何用STM32配合C...

      1. 摘要 本篇筆記主要介紹,在freeRTOS環境下,以STM32為例介紹如何快速獲取CPU利用率....
      發表于 2020-10-22 14:04? 39次閱讀
      在freeRTOS環境下,如何用STM32配合C...

      STM32系統bootloader的應用有哪些

      嵌入式開發中,經常需要bootloader進行程序固件升級和系統維護,所以bootloader是必不....
      發表于 2020-10-22 12:19? 125次閱讀
      STM32系統bootloader的應用有哪些

      HarmonyOS社區之星--孟瑞生:從事嵌入式行業需要自我沉淀

      嘉賓介紹:孟瑞生(論壇賬號:),曾在汽車電子、環保電子等行業從事產品研發,10年以上嵌入式產品研發經驗。本人熱...
      發表于 2020-10-22 11:55? 101次閱讀
      HarmonyOS社區之星--孟瑞生:從事嵌入式行業需要自我沉淀

      基于層次型有限狀態機模型實現自動售貨機的控制系統...

      售貨機上除基本自動售貨功能外,增加了諸多功能,如GPRS短信模塊以加強安全監控,在售貨機上播放視頻廣....
      發表于 2020-10-22 10:07? 84次閱讀
      基于層次型有限狀態機模型實現自動售貨機的控制系統...

      第18屆CCF全國嵌入式系統大會在四川召開

      萬物智聯時代正在加速到來,伴隨著嵌入式系統的不斷智能化創新,智能化的嵌入式系統已滲透到物聯網+產業的....
      發表于 2020-10-22 05:57? 151次閱讀
      第18屆CCF全國嵌入式系統大會在四川召開

      STM32F103單片機控制四位共陰數碼管顯示數字,proteus仿真

      STM32F103單片機控制四位共陰數碼管顯示數字,proteus仿真顯示如圖,仿真電路圖如下圖,請問該如何解決,比較急,...
      發表于 2020-10-21 20:25? 19次閱讀
      STM32F103單片機控制四位共陰數碼管顯示數字,proteus仿真

      飛凌嵌入式RK3399開發板試用體驗(傳感器數據...

      作者:飛揚的青春 拿到開發板日子也過半了,體驗也逐漸深入,自己也想著用這款開發板做下QT小項目,所以....
      發表于 2020-10-21 15:24? 110次閱讀
      飛凌嵌入式RK3399開發板試用體驗(傳感器數據...

      基于飛凌嵌入式RK3399開發板的開箱測評

      在使用QT實現了三個自定義控件后,我又查找了QT環境下實現可視化圖表的一些優秀開源方案,發現QCus....
      發表于 2020-10-21 15:15? 39次閱讀
      基于飛凌嵌入式RK3399開發板的開箱測評

      飛凌嵌入式RK3399開發板試用體驗(QT案例來...

      作者:飛揚的青春 在拿到開發板之后,已經體驗了Android操作系統,接下來就是體驗Linux下的開....
      發表于 2020-10-21 14:45? 112次閱讀
      飛凌嵌入式RK3399開發板試用體驗(QT案例來...

      飛凌嵌入式OK3399-C開發板跑分體驗

      飛凌這次推出開發板免費試用活動,有幸申請到一塊OK3399-C,先說說這塊cpu吧,RK3399是瑞....
      發表于 2020-10-21 14:42? 122次閱讀
      飛凌嵌入式OK3399-C開發板跑分體驗

      在ARM中計算機技術和知識的分享

      1.相關資料的分享,c/c++語言面試寶典,從面試的角度看待編程語言應該如何學習 2.計算機基礎和操作系統資料分享,在應...
      發表于 2020-10-21 14:27? 101次閱讀
      在ARM中計算機技術和知識的分享

      飛凌嵌入式RK3399開發板試用體驗分享(一)

      作者:飛揚的青春 在開發者比賽中,申請了OK3399板卡作為體驗對象,主要是其可以跑安卓,性能要好一....
      發表于 2020-10-21 13:41? 58次閱讀
      飛凌嵌入式RK3399開發板試用體驗分享(一)

      如何使用ECP5FPGA解決網絡邊緣應用設計挑戰

             引言         隨著傳感器、低成本攝像頭和顯示屏在當今嵌...
      發表于 2020-10-21 11:53? 0次閱讀
      如何使用ECP5FPGA解決網絡邊緣應用設計挑戰

      Linux資源下載專題

      Linux資源下載專題:匯集Linux開發的相關資料,方便用戶查找下載,為開發者免去了大量的搜索時間。資料內容包括:開...
      發表于 2020-10-21 11:27? 0次閱讀
      Linux資源下載專題

      嵌入式開發的設計思路分享

             寫程序不難,但是程序怎么樣才能寫的好,寫的快,那是需要點經驗積累的。結構化模塊化的程...
      發表于 2020-10-21 09:52? 0次閱讀
      嵌入式開發的設計思路分享

      STM32外部中斷解決方法

      01 單片機外部中斷簡介 所謂外部中斷,就是通過外部信號所引起的中斷,如單片機引腳上的電平變化(高電....
      發表于 2020-10-20 17:43? 130次閱讀
      STM32外部中斷解決方法

      stm32位帶基本操作詳解

      支持了位帶操作后,可以使用普通的加載/存儲指令來對單一的比特進行讀寫。在 CM3 中,有兩個區中實現了位帶。其中一...
      發表于 2020-10-20 17:33? 0次閱讀
      stm32位帶基本操作詳解

      推薦一個活躍度高的討論群好嗎

      嵌入式 交流學習
      發表于 2020-10-20 16:07? 21次閱讀
      推薦一個活躍度高的討論群好嗎

      LORA的RSSI值很不穩是怎么回事

      。 我想用TDOA+RSSI實現LORA的定位。LORA用的是SX1280,兩個設備就在我桌子上離得很近,但是近距...
      發表于 2020-10-20 15:42? 63次閱讀
      LORA的RSSI值很不穩是怎么回事

      關于飛凌嵌入式 OK3399-C 開發板的試用體...

      在使用QT實現了三個自定義控件后,我又查找了QT環境下實現可視化圖表的一些優秀開源方案,發現QCus....
      發表于 2020-10-20 15:07? 31次閱讀
      關于飛凌嵌入式 OK3399-C 開發板的試用體...

      飛凌嵌入式基于NXP i.MX8MMini 的O...

      Tengine 是 OPEN AI LAB 一款輕量級神經網絡推理引擎,它針對 Arm嵌入式平臺進行....
      發表于 2020-10-20 15:03? 47次閱讀
      飛凌嵌入式基于NXP i.MX8MMini 的O...

      基于NXP i.MX8MM多核應用處理器設計的智...

      隨著近幾年信息技術的不斷發展,智能化的概念逐漸滲透到各行各業以及我們的生活里,智能化、自助設備隨處可....
      發表于 2020-10-20 14:56? 126次閱讀
      基于NXP i.MX8MM多核應用處理器設計的智...

      高性能多媒體處理器—飛凌OKMX8MM-C開發板...

      NXPi.MX 8M Mini應用處理器內置高性能、高能效的14 FinFET技術。在快速發展的智能....
      發表于 2020-10-20 14:47? 41次閱讀
      高性能多媒體處理器—飛凌OKMX8MM-C開發板...

      C語言高效編程與代碼優化

      翻譯作者:碼農網 gunner 在本篇文章中,我收集了很多經驗和方法。應用這些經驗和方法,可以幫助我....
      發表于 2020-10-19 17:04? 75次閱讀
      C語言高效編程與代碼優化

      單片機C語言中的串口通信協議

      現實生活中, 我們總是要與人打交道,互通有無。單片機也一樣,需要跟各種設備交互。例如汽車的顯示儀表需....
      發表于 2020-10-19 15:32? 183次閱讀
      單片機C語言中的串口通信協議

      詳談C語言內存錯誤的六條相關例子及解決對策

      定義了指針變量,但是沒有為指針分配內存,即指針沒有指向一塊合法的內存。淺顯的例子就不舉了,這里舉幾個....
      發表于 2020-10-19 11:55? 202次閱讀
      詳談C語言內存錯誤的六條相關例子及解決對策

      2020年10月編程語言排行榜:Python即將...

      來源:菜鳥教程 TIOBE 2020 年 10 月份的編程語言排行榜已經公布,官方的標題是:Pyth....
      發表于 2020-10-19 11:37? 208次閱讀
      2020年10月編程語言排行榜:Python即將...

      江波龍李中政:技術是制勝所在

      ELEXCON電子展依托深圳產業與區域核心的雙重優勢,推動本土電子行業品牌化、國際化發展。2020 ....
      發表于 2020-10-19 11:01? 289次閱讀
      江波龍李中政:技術是制勝所在

      睿賽德與華南理工大學、蘭州大學、哈爾濱信息工程學...

      01 近日,RT-Thread與華南理工大學、蘭州大學、哈爾濱信息工程學院成立聯合實驗室!睿賽德科技....
      發表于 2020-10-19 10:00? 394次閱讀
      睿賽德與華南理工大學、蘭州大學、哈爾濱信息工程學...

      STM32WB:多協議+安全SoC的開路先鋒

      自2018年第一顆無線MCU系列STM32WB問世,STM32便邁入無線進擊路。ST不斷推出一系列具....
      發表于 2020-10-19 09:45? 287次閱讀
      STM32WB:多協議+安全SoC的開路先鋒

      多核處理器和虛擬化在工業領域安全性和可靠性中的應...

      在嵌入式市場,一些顛覆性的技術正在影響著發展趨勢,并且為設備制造商帶來前所未有的機遇,對其產品和業務....
      發表于 2020-10-18 10:06? 647次閱讀
      多核處理器和虛擬化在工業領域安全性和可靠性中的應...

      慕尼黑華南電子展將于11月4日舉辦國際嵌入式系統...

      慕尼黑華南電子展將于11月4日舉辦國際嵌入式系統創新論壇,匯聚眾多頭部企業如英特爾、ST意法半導體、....
      發表于 2020-10-17 11:11? 290次閱讀
      慕尼黑華南電子展將于11月4日舉辦國際嵌入式系統...

      C語言的進階操作實例講解

      看來這波操作可行,似乎還省去了.h文件,之前bug菌說過,分析.h文件的時候直接把.h文件在對應的.....
      發表于 2020-10-17 11:00? 603次閱讀
      C語言的進階操作實例講解

      今天,已經到MCU開發人員拿起C語言利器的時候了

      將C向MCU(俗稱單片機)8051上的移植始于80年代的中后期。客觀上講,C向8051 MCU移植的....
      發表于 2020-10-17 10:59? 404次閱讀
      今天,已經到MCU開發人員拿起C語言利器的時候了

      C基礎:交換a、b值較好的方法?

      交換a、b的值在C語言的學習中是很常見的問題。最常用的方法就是引入一個中間變量當做中間介質來交換a、....
      發表于 2020-10-16 11:18? 212次閱讀
      C基礎:交換a、b值較好的方法?

      基于FPGA技術實現安全封裝雙向認證方案的設計

      在深入分析基于FPGA的安全封裝結構的基礎上,針對其實際應用中身份認證的安全性要求,重點研究并設計了....
      發表于 2020-10-16 10:18? 167次閱讀
      基于FPGA技術實現安全封裝雙向認證方案的設計

      嵌入式系統設計開發大全!

      整理 | 付斌 公眾號 | 嵌入式ARM 01 嵌入式系統設計方法變化的背景 嵌入式系統設計方法的演....
      發表于 2020-10-16 10:12? 359次閱讀
      嵌入式系統設計開發大全!

      單片機編程魔法之三權分立

      在單片機編程中,有很多人會因為一些貌似簡單的處理而把問題弄得亂七八糟,如林中蛛網一樣,錯綜復雜。 而....
      發表于 2020-10-16 10:06? 825次閱讀
      單片機編程魔法之三權分立

      英國政府正準備干預并在必要時阻止NVIDIA與A...

      英國特別關注此次收購對英國經濟和主權的影響。作為一家總部位于英國的公司,Arm自然是該國珍貴的財產之....
      發表于 2020-10-16 09:37? 470次閱讀
      英國政府正準備干預并在必要時阻止NVIDIA與A...

      ST廣泛的差異化解決方案瞄準快速增長的亞洲自動化...

      在不久前,意法半導體亞太區功率分立和模擬產品部區域營銷和應用副總裁Francesco Muggeri....
      發表于 2020-10-15 16:58? 1267次閱讀
      ST廣泛的差異化解決方案瞄準快速增長的亞洲自動化...

      C語言的main函數有幾種寫法?

      從學習C語言開始就一直寫個一個函數,那么你知道它的標準寫法什么什么樣嗎? main函數,又稱主函數,....
      發表于 2020-10-15 11:04? 237次閱讀
      C語言的main函數有幾種寫法?

      C語言中局部變量和全局變量

      全局變量也稱為外部變量,它是在函數外部定義的變量。它不屬于哪一個函數,它屬于一個源程序文件。其作用域....
      發表于 2020-10-15 10:48? 162次閱讀
      C語言中局部變量和全局變量

      計算機學習經歷的分享

      作者:明哥 今天分享下一個朋友【明哥】的計算機學習經歷,以及他分享的零基礎該如何學習計算機、推薦一些....
      發表于 2020-10-15 10:13? 253次閱讀
      計算機學習經歷的分享

      STM32H7各產品應用定位

      STM32可以列出很多關鍵詞,跨界通用、全面覆蓋、完整生態、超低功耗、多種應用。而高性價比是最受用戶....
      發表于 2020-10-14 18:22? 287次閱讀
      STM32H7各產品應用定位

      這里有一份RT-Thread物聯網操作系統人才培...

      前言 隨著物聯網和智能系統的快速發展,嵌入式成為當前最熱門最有發展前途的IT應用領域之一。在移動通訊....
      發表于 2020-10-14 17:57? 519次閱讀
      這里有一份RT-Thread物聯網操作系統人才培...

      華為方舟編譯器正式支持C語言,將繼續完全開源

      2019年8月底,華為方舟編譯器(OpenArkCompiler)正式開源,邁出了跨越性的一步。一年....
      發表于 2020-10-14 17:38? 281次閱讀
      華為方舟編譯器正式支持C語言,將繼續完全開源

      HarmonyOS社區之星--韋東山:為您解開H...

      嘉賓介紹:韋東山( 論壇 賬號:韋東山),畢業于中國科學技術大學, 物理軟件雙學位,暢銷書作者《 嵌....
      發表于 2020-10-14 17:30? 378次閱讀
      HarmonyOS社區之星--韋東山:為您解開H...

      MM32F031C8T6可兼容STM32F030...

      隨著國內市場MCU需求的快速增長,國內MCU產業已經引發了更多的關注。通用MCU表面看似簡單,實則是....
      發表于 2020-10-14 15:58? 188次閱讀
      MM32F031C8T6可兼容STM32F030...

      利用嵌入式AI算法可提高數據質量和系統可靠性

      工業4.0應用產生大量的復雜數據——大數據。傳感器和可用數據源越來越多,通常要求機器、系統和流程的虛....
      發表于 2020-10-14 14:28? 356次閱讀
      利用嵌入式AI算法可提高數據質量和系統可靠性
      暖暖视频在线观看日本