久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

 xpxys99 2020-06-05

STM32F4xx包含16個(gè)32位核心(整數(shù))寄存器,。它們被標(biāo)記為R0-R15,。寄存器名可以在匯編語(yǔ)言中以大寫或小寫形式出現(xiàn),。當(dāng)寄存器在過(guò)程調(diào)用標(biāo)準(zhǔn)中具有固定角色時(shí),使用大寫,。STM32F4xx支持的核心寄存器如下圖:

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

程序計(jì)數(shù)器(PC)是寄存器R15,。它包含當(dāng)前程序地址。處理器復(fù)位時(shí),,處理器用復(fù)位向量的值加載PC,,該值位于0x00000004。編寫匯編時(shí)需要遵循ABI規(guī)范,,該規(guī)范規(guī)定了寄存器的相關(guān)用法,,函數(shù)調(diào)用規(guī)范如下:

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

前四個(gè)寄存器r0-r3(a1-a4)用于將參數(shù)值傳遞給子程序,并從函數(shù)返回結(jié)果值。它們還可用于在例程中保存中間值(但通常僅在子例程調(diào)用之間),。在一些變體中,,r11(FP)可以用作幀指針。通常寄存器r4-r8,、r10和r11(v1-v5,、v7和v8)用于保存例程局部變量的值。

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

向量表包含復(fù)位時(shí)堆棧指針的值,、復(fù)位起始地址以及所有異常處理程序入口地址,。在系統(tǒng)復(fù)位時(shí),向量表固定在地址0x00000000,。特權(quán)軟件可以寫入VTOR寄存器以將矢量表的起始地址重新定位到不同的內(nèi)存位置,,在范圍0x00000080到0x3FFFFF80。

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

通過(guò)上述的鏈接腳本指isr_vector段即定向量表的地址位于代碼起始處,,其libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\gcc\startup_stm32f407xx.s啟動(dòng)代碼中的下圖代碼表明向量表的布局,,與向量表圖吻合,其處理器的執(zhí)行的第一條指令為Reset_Handler函數(shù)的第一條指令,。

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

Reset_Handler函數(shù)主要負(fù)責(zé)把數(shù)據(jù)段搬移到SRAM和BSS段清零操作,,然后跳轉(zhuǎn)到SystemInit函數(shù)設(shè)置微控制器系統(tǒng),初始化FPU設(shè)置,、矢量表位置和外部存儲(chǔ)器配置,,最后調(diào)用entry函數(shù)進(jìn)入RT-Thread內(nèi)核初始化。其數(shù)據(jù)段和BSS段的起始地址和結(jié)束地址由鏈接腳本指定,,其數(shù)據(jù)段的起始地址和結(jié)束地址變量為_sdata和_edata,。BSS段的起始地址和結(jié)束地址為_sbss和_ebss。其初始化流程如下:

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

系統(tǒng)采用SysTick timer (STK)做為系統(tǒng)時(shí)鐘,,默認(rèn)配置每秒鐘1000次tick,其定時(shí)器處理函數(shù)為SysTick_Handler,。SysTick異常是系統(tǒng)計(jì)時(shí)器在計(jì)數(shù)達(dá)到零時(shí)產(chǎn)生,,SysTick異常位于15號(hào)中斷向量。

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

0x8000000-0x80FFFFF為FLASH空間,,0x20000000-0x2001BFFF為SRAM空間,,其內(nèi)存模型如下:

RT-Thread操作系統(tǒng)及STM32F4xx體系結(jié)構(gòu)詳解

片內(nèi)FALSH不適合運(yùn)行文件系統(tǒng),每個(gè)扇區(qū)空間太大,,一般前面扇區(qū)作為存儲(chǔ)程序使用,,后面扇區(qū)作為文件系統(tǒng),但是每個(gè)扇區(qū)128KB太大(一般SPI FLASH的扇區(qū)大小為512字節(jié)),導(dǎo)致只有幾個(gè)扇區(qū),,文件創(chuàng)建都是以扇區(qū)為單位,,沒(méi)有意義。可通過(guò)調(diào)用fal_blk_device_create注冊(cè)一個(gè)塊設(shè)備,,然后可以通過(guò)open函數(shù)打開設(shè)備,,進(jìn)行FLASH的相關(guān)讀寫。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多