国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

正點原子STM32MP157學(xué)習(xí)——1.開發(fā)環(huán)境及基本知識

這篇具有很好參考價值的文章主要介紹了正點原子STM32MP157學(xué)習(xí)——1.開發(fā)環(huán)境及基本知識。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、開發(fā)環(huán)境搭建

????????官方推薦使用VMWare15+Ubuntu18.04,之前自己做一些開發(fā)使用的VMWare+Ubuntu20.04,懶得重新安裝,后續(xù)踩坑再填。

? ? ? ? 在Windows下需要安裝STM32CubeMX、STM32CubeIDE(這兩個用來配置和編寫MCU代碼)和STM32Programmer(燒錄工具)。這三個軟件需要java環(huán)境,所以還需要安裝java。在此不做敘述。

二、U-Boot啟動原理

????????U-Boot類似于電腦的BIOS,入口是上電自動啟動,唯一出口是加載系統(tǒng)鏡像,在U-Boot內(nèi)還可以進行一些內(nèi)核的啟動配置,如啟動介質(zhì)參數(shù),網(wǎng)絡(luò)配置參數(shù)等。

? ? ? ? 通常在內(nèi)核中會固化一塊片內(nèi)ROM和一個SYSRAM,啟動時,片內(nèi)ROM的BL1(BootLoader1,第一階段啟動文件)部分先加載到核內(nèi)RAM中(也有設(shè)計將此部分燒寫在U-Boot的頭部位置),然后判斷自己在主存中還是啟動設(shè)備(靜態(tài)內(nèi)存)Booting Device中,如果是后者,就將整個U-Boot搬運到SDRAM中,之后跳轉(zhuǎn)到BL2中,加載驅(qū)動、命令行等。最后,將整個OS加載到SDRAM中,再跳轉(zhuǎn)到OS部分執(zhí)行。

正點原子STM32MP157學(xué)習(xí)——1.開發(fā)環(huán)境及基本知識

? ? ? ? ?在STM32MP157中,除了linux開發(fā)常見的三大板塊:U-Boot、Kernel & DTB、Rootfs以外,還有一個涉及到系統(tǒng)安全的TF-A部分,正點原子教程中對此部分僅涉及到了移植教程,對內(nèi)部的實現(xiàn)方式無額外解讀。此部分先略過。

三、涉及STM32MP157啟動的一些概念

【1】FSBL:

????????全稱為 First stage boot loader,也就是第一階段啟動文件。一般是 TF-A 鏡像,可以換成自己編寫的程序,SYSRAM的地址空間;0X2FFC0000~0X2FFFFFFF,F(xiàn)SBL起始地址:0X2FFC2400,但是前端會帶有256KB的頭部信息,所以替換成自己的程序時,起始地址為:0X2FFC2500,整個FSBL大小不能超過247KB。

【2】SSBL:第二階段啟動文件,一般是U-Boot,有的系統(tǒng)還會需要設(shè)備樹(.dtb)文件,此部分在片外的DDR中運行,所以不需要擔(dān)心空間問題。

【3】默認(rèn)外部晶振:

????????24MHz,在自己設(shè)計板子時用到,盡量不要更改。(ROM代碼自動檢測,可以為8,10,12,14,16,20,24,25,26,28,32,36,40,48,默認(rèn)為24)

【4】串口啟動:

????????使用UART燒寫系統(tǒng),只能使用串口2,3,4,5,6,7,8這幾個串口,自己畫板子的時候最好按照這樣設(shè)計,并使用推薦引腳。

【5】Flash設(shè)備啟動要求:

????????EMMC:

????????boot1、 boot2、 RPMB 這三個分區(qū)代銷是固定的,用戶不能修改, boot1、 boot2 分區(qū)存在的意義就是用于引導(dǎo)系統(tǒng)。

????????ST 會使用 EMMC 的 boot1 和 boot2 這兩個分區(qū)作為 FSBL,但是同一時間只有一個有效,
ROM 代碼會加載有效的哪個 FSBL。ROM 代碼使用單 bit 模式來操作 EMMC, 默認(rèn)情況下 ROM
代碼使用連接到 SDMMC2 上的 EMMC

正點原子STM32MP157學(xué)習(xí)——1.開發(fā)環(huán)境及基本知識

????????SD卡:

????????SD 卡也包含兩個 FSBL,但是 SD 卡沒有 boot1 和 boot2 這樣的物理分區(qū)。 ROM 代碼默認(rèn)
嘗試加載第一個 FSBL,如果第一個 FSBL 加載失敗,那么 ROM 代碼就會加載第二個 FSBL。第一個 FSBL 的起始地址為0X4400,第二個 FSBL 的起始地址為 0X44400

【6】TF-A頭部信息:

????????TF-A 編譯生成二進制 bin 文件,需要在前面添加一段頭部信息,這段頭部信息也包含了鑒權(quán)內(nèi)容。這段信息在編譯 ST 官方提供的 TF-A 或者 Uboot 的時候會自動添加,編寫 A7 裸機的時候需要自己使用 stm32image 工具在 bin 文件前面添加頭部信息。STM32image工具為linux下運行,在使用前需要編譯,然后對指定文件添加。

正點原子STM32MP157學(xué)習(xí)——1.開發(fā)環(huán)境及基本知識

【7】整體的系統(tǒng)啟動流程:

正點原子STM32MP157學(xué)習(xí)——1.開發(fā)環(huán)境及基本知識文章來源地址http://www.zghlxwxcb.cn/news/detail-469490.html

到了這里,關(guān)于正點原子STM32MP157學(xué)習(xí)——1.開發(fā)環(huán)境及基本知識的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • STM32MP157驅(qū)動開發(fā)——按鍵驅(qū)動(工作隊列)

    STM32MP157驅(qū)動開發(fā)——按鍵驅(qū)動(工作隊列)

    定時器、下半部 tasklet,它們都是在中斷上下文中執(zhí)行,它們無法休眠。當(dāng)要處理更復(fù)雜的事情時,往往更耗時。這些更耗時的工作放在定時器或是下半部中,會使得系統(tǒng)很卡;并且循環(huán)等待某件事情完成也太浪費CPU 資源了。如果使用線程來處理這些耗時的工作,那就可以解

    2024年02月15日
    瀏覽(25)
  • STM32MP157驅(qū)動開發(fā)——按鍵驅(qū)動(POLL 機制)

    STM32MP157驅(qū)動開發(fā)——按鍵驅(qū)動(POLL 機制)

    使用休眠-喚醒的方式等待某個事件發(fā)生時,有一個缺點:等待的時間可能很久。我們可以加上一個超時時間,這時就可以使用 poll 機制。 ① APP 不知道驅(qū)動程序中是否有數(shù)據(jù),可以先調(diào)用 poll 函數(shù)查詢一下,poll 函數(shù)可以傳入超時時間; ② APP 進入內(nèi)核態(tài), 調(diào)用到驅(qū)動程序的

    2024年02月15日
    瀏覽(19)
  • STM32MP157驅(qū)動開發(fā)——LED驅(qū)動(原始架構(gòu))

    STM32MP157驅(qū)動開發(fā)——LED驅(qū)動(原始架構(gòu))

    LED 的驅(qū)動方式,常見的有四種。 ① 使用引腳輸出 3.3V 點亮 LED,輸出 0V 熄滅 LED。 ② 使用引腳拉低到 0V 點亮 LED,輸出 3.3V 熄滅 LED。 ③ 使用引腳輸出 1.2V 點亮 LED,輸出 0V 熄滅 LED。 ④ 使用引腳輸出 0V 點亮 LED,輸出 1.2V 熄滅 LED。 有的芯片為了省電等原因,其引腳驅(qū)動能力

    2024年02月03日
    瀏覽(28)
  • STM32MP157驅(qū)動開發(fā)——按鍵驅(qū)動(定時器)

    STM32MP157驅(qū)動開發(fā)——按鍵驅(qū)動(定時器)

    定時器涉及函數(shù)參考內(nèi)核源碼:includelinuxtimer.h 給定時器的各個參數(shù)賦值: 設(shè)置定時器 :主要是初始化 timer_list 結(jié)構(gòu)體,設(shè)置其中的函數(shù)、參數(shù)。 a) 向內(nèi)核添加定時器。timer-expires 表示超時時間。 b) 當(dāng)超時時間到達,內(nèi)核就會調(diào)用這個函數(shù):timer-function(timer-data)。 修改定時

    2024年02月15日
    瀏覽(23)
  • STM32MP157驅(qū)動開發(fā)——按鍵驅(qū)動(線程化處理)

    STM32MP157驅(qū)動開發(fā)——按鍵驅(qū)動(線程化處理)

    工作隊列是在內(nèi)核的線程的上下文中執(zhí)行的 工作隊列中有多個 work,前一個 work 沒處理完會影響后面的 work。解決方法有如下2種: 比如自己創(chuàng)建一個內(nèi)核線程,不跟別的 work 在一塊。例如存儲設(shè)備比如 SD/TF采用的就是單獨一個線程。 使用線程化的中斷處理。中斷的處理仍然

    2024年02月16日
    瀏覽(23)
  • STM32MP157驅(qū)動開發(fā)——按鍵驅(qū)動(休眠與喚醒)

    STM32MP157驅(qū)動開發(fā)——按鍵驅(qū)動(休眠與喚醒)

    當(dāng)應(yīng)用程序必須等待某個事件發(fā)生,比如必須等待按鍵被按下時,可以使用“休眠-喚醒”機制: ① APP 調(diào)用 read 等函數(shù)試圖讀取數(shù)據(jù),比如讀取按鍵; ② APP 進入內(nèi)核態(tài),也就是調(diào)用驅(qū)動中的對應(yīng)函數(shù),發(fā)現(xiàn)有數(shù)據(jù)則復(fù)制到用戶空間并馬上返回; ③ 如果 APP 在內(nèi)核態(tài),也就

    2024年02月16日
    瀏覽(52)
  • STM32MP157驅(qū)動開發(fā)——USB設(shè)備驅(qū)動

    STM32MP157驅(qū)動開發(fā)——USB設(shè)備驅(qū)動

    參考文章:【正點原子】I.MX6U嵌入式Linux驅(qū)動開發(fā)——Linux USB驅(qū)動 ??由于 USB 協(xié)議太過龐大和復(fù)雜,所以本節(jié)只對 STM32MP157 自帶的 USB 驅(qū)動進行使能和測試。詳細(xì)的 USB 接口和協(xié)議的介紹,可以參考原子哥的資料《USB2.0 協(xié)議中文版.pdf》和《USB3.0 協(xié)議中文版.pdf》。 ??USB 全

    2023年04月14日
    瀏覽(42)
  • 【正點原子STM32連載】 第十章 STM32CubeMX簡介 摘自【正點原子】STM32F103 戰(zhàn)艦開發(fā)指南V1.2

    【正點原子STM32連載】 第十章 STM32CubeMX簡介 摘自【正點原子】STM32F103 戰(zhàn)艦開發(fā)指南V1.2

    1)實驗平臺:正點原子stm32f103戰(zhàn)艦開發(fā)板V4 2)平臺購買地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套實驗源碼+手冊+視頻下載地址: http://www.openedv.com/thread-340252-1-1.html STM32CubeMX是由ST公司開發(fā)的圖形化代碼自動生成工具,能夠快速生成初始化代碼,如配置GPIO,時鐘樹

    2024年01月15日
    瀏覽(32)
  • STM32MP157驅(qū)動開發(fā)——Linux LCD驅(qū)動(上)

    STM32MP157驅(qū)動開發(fā)——Linux LCD驅(qū)動(上)

    ??LCD 是很常用的一個外設(shè),通過 LCD 可以顯示圖片、界面UI等,提高人機交互的效率。STM32MP1 提供了一個 LTDC 接口用于連接 RGB 接口的液晶屏。本節(jié)就來學(xué)習(xí)如何使用這個接口。 ??LCD 全稱是 Liquid Crystal Display,也就是液晶顯示器,是現(xiàn)在最常用到的顯示器。網(wǎng)上對于 LCD

    2024年02月08日
    瀏覽(19)
  • STM32 Linux開發(fā)板丨STM32MP157開發(fā)板資料手冊+實戰(zhàn)教程+視頻教程

    STM32 Linux開發(fā)板丨STM32MP157開發(fā)板資料手冊+實戰(zhàn)教程+視頻教程

    iTOP-STM32MP157開發(fā)板是基于意法半導(dǎo)體STARM雙Cortex-A7核加單Cortex-M4核的一款多核異構(gòu)處理器。Cortex-A7內(nèi)核提供對開源操作系統(tǒng)Linux的支持,借助Linux系統(tǒng)龐大而豐富的軟件組件處理復(fù)雜應(yīng)用。M4內(nèi)核上運行對于實時性要求嚴(yán)格的應(yīng)用。 開發(fā)板既有A7核,又有M4核,從學(xué)習(xí)者角度來看

    2024年02月12日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包