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

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

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

STM32操作系統(tǒng)系列使用C語言的教程

汽車玩家 ? 來源:CSDN ? 作者:CSDN ? 2021-08-10 23:26 ? 次閱讀

C語言,相對于匯編有更好的可讀性,便于維護等優(yōu)點。下面實驗將使用C語言實現(xiàn)點亮LED燈。C語言與硬件是緊密連在一起的,結(jié)合芯片中的flash和sram,簡單了解C語言。

步驟:

  • FLASH,就是存放.bin文件的地方。SRAM,用于存放程序的堆棧,全局變量。


  • MEMORY,用于定義存儲器范圍。


  • AT>rom,表示將對應的SECTION放置到rom中,即Flash中。


  • _data_start / _data_end,用于說明data段在flash中的位置,方便程序?qū)ata段從flash中復制到sram中。


  • _ram_data_start,表示data段將復制到sram中的什么位置。


  • ADDR(),表示獲得SECTION的運行地址vma,當程序被下載到flash后,程序開始運行時首先要將data段移動到sram中0x20000400地址處,這樣程序運行時才不會出錯。


  • LOADADDR(),表示獲得SECTION的加載地址lma。


  • SIZEOF(),用于求SECTION的大小


  • 整個SECTIONS,可以看做是程序在flash中的布局,其中.bss不占用flash空間,它是由程序中開始運行時,在sram中開辟空間并初始化為0。


  • 各個SECTION,如.vectors\.text\.rodata\.data\.bss,分別存放不同類型的數(shù)據(jù)。


本質(zhì)就是C語言中的指針操作,volatile作用是確保本條指令不會因編譯器的優(yōu)化而省略。如代碼“RCC_APB2ENR |= 0x00000010;”,表示向寄存器的第4位(從0位開始計數(shù))寫1。

文章整合自:CSDN

編輯:ymf

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

    關(guān)注

    240

    文章

    22907

    瀏覽量

    650141
  • STM32
    +關(guān)注

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352499
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134124
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式實時操作系統(tǒng):Intewell操作系統(tǒng)與VxWorks操作系統(tǒng)有啥區(qū)別

    Intewell操作系統(tǒng)和VxWorks操作系統(tǒng)都是工業(yè)領(lǐng)域常用的操作系統(tǒng),它們各有特點和優(yōu)勢。以下是它們之間的一些主要區(qū)別:
    的頭像 發(fā)表于 07-08 14:16 ?218次閱讀
    嵌入式實時<b class='flag-5'>操作系統(tǒng)</b>:Intewell<b class='flag-5'>操作系統(tǒng)</b>與VxWorks<b class='flag-5'>操作系統(tǒng)</b>有啥區(qū)別

    請問STM32上有跑RTOS實時操作系統(tǒng)的嗎?

    親們最近在鼓搗實時操作系統(tǒng),有什么好的經(jīng)驗請不吝賜教,嘿嘿。 我在摸索uT/OS。社區(qū)有在STM32幾款芯片上的移植。
    發(fā)表于 05-16 07:16

    帶你認識實時操作系統(tǒng)(rtos)

    實時操作系統(tǒng)(RTOS)是為嵌入式系統(tǒng)和實時應用提供一個穩(wěn)定、可預測和高效運行環(huán)境的操作系統(tǒng)。實時操作系統(tǒng)確保了系統(tǒng)能夠在嚴格的時間限制內(nèi)響
    的頭像 發(fā)表于 04-16 16:30 ?749次閱讀
    帶你認識實時<b class='flag-5'>操作系統(tǒng)</b>(rtos)

    C語言基礎(chǔ)-為什么要使用C?

    當今最流行的 Linux 操作系統(tǒng)和 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng)) MySQL 都是使用 C 語言編寫的
    發(fā)表于 03-25 11:20 ?293次閱讀

    c語言,c++,java,python區(qū)別

    操作系統(tǒng)、嵌入式系統(tǒng)等對性能要求較高的場景。C語言的語法相對簡單,學習曲線較平緩,也是學習其他高級語言的入門
    的頭像 發(fā)表于 02-05 14:11 ?1381次閱讀

    深度解析全球操作系統(tǒng)格局

    操作系統(tǒng)是負責協(xié)調(diào)、管理和控制計算機硬件與軟件資源的程序,是整個計算機的核心系統(tǒng)軟件。 按照操作系統(tǒng)面向的設(shè)備類型,通用操作系統(tǒng)主要包括桌面操作系統(tǒng)
    的頭像 發(fā)表于 01-18 15:00 ?718次閱讀
    深度解析全球<b class='flag-5'>操作系統(tǒng)</b>格局

    詳解實時操作系統(tǒng)和非實時操作系統(tǒng)

    實時操作系統(tǒng),當外界事件和數(shù)據(jù)產(chǎn)生時,系統(tǒng)能以足夠快的速度予以處理,其處理結(jié)果能在規(guī)定的時間內(nèi)控制生產(chǎn)結(jié)果或?qū)?b class='flag-5'>系統(tǒng)做出響應,并控制所有實時任務協(xié)調(diào)一致運行的操作系統(tǒng)。
    的頭像 發(fā)表于 12-26 09:54 ?3631次閱讀
    詳解實時<b class='flag-5'>操作系統(tǒng)</b>和非實時<b class='flag-5'>操作系統(tǒng)</b>

    C語言運行環(huán)境是什么

    計算等多個領(lǐng)域。為了能夠正確、有效地運行C語言程序,必須具備相應的運行環(huán)境。 C語言運行環(huán)境包括軟件運行環(huán)境和硬件運行環(huán)境兩個方面。下面將從這兩個方面詳細介紹
    的頭像 發(fā)表于 11-27 16:13 ?2858次閱讀

    如何選擇創(chuàng)建c語言c++

    ++ 的詳盡、詳實、細致的討論。 C 語言的特點和優(yōu)勢: C 語言是一種過程性的編程語言,它注重的是簡潔、高效、直接的編碼方式。以下是一些
    的頭像 發(fā)表于 11-27 15:58 ?458次閱讀

    嵌入式C語言的結(jié)構(gòu)特點

    嵌入式開發(fā)中既有底層硬件的開發(fā)又涉及上層應用的開發(fā),即涉及系統(tǒng)的硬件和軟件,C語言既具有匯編語言操作底層的優(yōu)勢,又具有高級
    的頭像 發(fā)表于 11-24 16:16 ?524次閱讀
    嵌入式<b class='flag-5'>C</b><b class='flag-5'>語言</b>的結(jié)構(gòu)特點

    如何判斷自己的應用需要上實時操作系統(tǒng)?

    無線,WIFI無線。主要是數(shù)據(jù)采集,多種通信規(guī)約轉(zhuǎn)換。 請問怎么判斷自己的設(shè)備需要上實時操作系統(tǒng);實時操作系統(tǒng)中,ucos、freertos、rt-thread在應用上,或者說是實時性響應上應該沒區(qū)別吧。
    發(fā)表于 10-28 08:12

    開源操作系統(tǒng)大全

    ,重啟后不會影響用戶數(shù)據(jù);KnightOS 內(nèi)核具有獨立特性,它采用類 Unix 的環(huán) 境,使用 Z80 的匯編語言編寫,開發(fā)者可以用它來編寫自己的操作系統(tǒng);需要較少的內(nèi)存,使用 31K 的內(nèi)存即可
    發(fā)表于 10-27 15:13

    匯編語言可以寫小型操作系統(tǒng)嗎?

    都說匯編晦澀難懂,難以移植,所以逐漸被C替代,那么匯編可以編寫操作系統(tǒng)么,實用性如何?
    發(fā)表于 10-18 07:25

    C語言的基礎(chǔ)知識

    C語言是一種高級編程語言,廣泛應用于操作系統(tǒng)、嵌入式系統(tǒng)、游戲開發(fā)等領(lǐng)域。它由貝爾實驗室的Dennis Ritchie在1972年開發(fā)而成,
    發(fā)表于 09-28 17:27 ?1363次閱讀

    STM32嵌入式操作系統(tǒng)介紹

    的分配、任務調(diào)度,控制、協(xié)調(diào)并發(fā)活動。? 目前在嵌入式領(lǐng)域廣泛使用的操作系統(tǒng)有:嵌入式實時操作系統(tǒng)FreeRTOS、μC/OS-II、RThread、WindowsCE、VxWorks 等等.
    發(fā)表于 09-28 06:59