C語言,相對于匯編有更好的可讀性,便于維護(hù)等優(yōu)點(diǎn)。下面實(shí)驗(yàn)將使用C語言實(shí)現(xiàn)點(diǎn)亮LED燈。C語言與硬件是緊密連在一起的,結(jié)合芯片中的flash和sram,簡單了解C語言。
步驟:
- FLASH,就是存放.bin文件的地方。SRAM,用于存放程序的堆棧,全局變量。
- MEMORY,用于定義存儲器范圍。
- _data_start / _data_end,用于說明data段在flash中的位置,方便程序?qū)ata段從flash中復(fù)制到sram中。
- _ram_data_start,表示data段將復(fù)制到sram中的什么位置。
- ADDR(),表示獲得SECTION的運(yùn)行地址vma,當(dāng)程序被下載到flash后,程序開始運(yùn)行時首先要將data段移動到sram中0x20000400地址處,這樣程序運(yùn)行時才不會出錯。
- LOADADDR(),表示獲得SECTION的加載地址lma。
- SIZEOF(),用于求SECTION的大小
- 整個SECTIONS,可以看做是程序在flash中的布局,其中.bss不占用flash空間,它是由程序中開始運(yùn)行時,在sram中開辟空間并初始化為0。
- 各個SECTION,如.vectors\.text\.rodata\.data\.bss,分別存放不同類型的數(shù)據(jù)。
本質(zhì)就是C語言中的指針操作,volatile作用是確保本條指令不會因編譯器的優(yōu)化而省略。如代碼“RCC_APB2ENR |= 0x00000010;”,表示向寄存器的第4位(從0位開始計(jì)數(shù))寫1。
文章整合自:CSDN
編輯:ymf
-
led
+關(guān)注
關(guān)注
242文章
23843瀏覽量
674047 -
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
364876 -
C語言
+關(guān)注
關(guān)注
180文章
7632瀏覽量
141722
發(fā)布評論請先 登錄
鴻道Intewell操作系統(tǒng):人形機(jī)器人底層操作系統(tǒng)
KaihongOS操作系統(tǒng):ArkTS語言基礎(chǔ)
模型原生操作系統(tǒng):機(jī)遇、挑戰(zhàn)與展望 CCCF精選

鴻道Intewell操作系統(tǒng)的Linux實(shí)時拓展方案

國產(chǎn)銀河麒麟操作系統(tǒng)V10和星光麒麟V1.0操作系統(tǒng)如何選擇?

普華車用操作系統(tǒng)與黑芝麻智能武當(dāng)C1200家族芯片完成適配

deepin操作系統(tǒng)介紹

如何在windows上emulate不同操作系統(tǒng)
基于無操作系統(tǒng)的STM32單片機(jī)開發(fā)附源碼
linux是實(shí)時系統(tǒng)還是分時操作系統(tǒng)
linux操作系統(tǒng)安裝步驟 linux操作系統(tǒng)的特點(diǎn)及組成
工控機(jī)支持什么操作系統(tǒng)
簡單認(rèn)識RTOS實(shí)時操作系統(tǒng)
Windows操作系統(tǒng)是什么?它有哪些特點(diǎn)?
Windows操作系統(tǒng)中的常用命令

評論