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

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

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

美信cortex-m3內(nèi)核芯片的啟動(dòng)過(guò)程及連接文件介紹

CHANBAEK ? 來(lái)源:硬件工程師干貨 ? 作者:硬件工程師干貨 ? 2023-03-01 11:39 ? 次閱讀

本文以美信cortex-m3內(nèi)核某型號(hào)芯片以及eclipse開(kāi)發(fā)環(huán)境介紹芯片啟動(dòng)過(guò)程以及連接文件。

啟動(dòng)過(guò)程介紹:

先看向量表,見(jiàn)下圖1區(qū)域向量表定義在nvic_section這個(gè)區(qū)域,啟動(dòng)時(shí),會(huì)拷貝到RAM中運(yùn)行,后面會(huì)介紹,重定向向量表不是必須的,拷貝到RAM中有個(gè)好處,修改向量表比較方便。

向量表的最開(kāi)始是棧指針,接下來(lái)是復(fù)位向量,見(jiàn)2區(qū)域。

pYYBAGP-x8qACQGLAAHaRcZFq5M073.png

下面就是復(fù)位函數(shù),前面說(shuō)了,復(fù)位函數(shù)地址放在了向量表的第二位。處理器上電后首先運(yùn)行這個(gè)函數(shù),進(jìn)行初始化。這個(gè)函數(shù)定義在了reset區(qū)域,這個(gè)區(qū)域在Flash的起始位置,因此首先運(yùn)行它,這個(gè)函數(shù)第一步就是初始化棧指針,然后調(diào)用start函數(shù)。

pYYBAGP-x9eAU-XzAAFJDeyFLvA584.png

關(guān)鍵的start函數(shù)來(lái)了:

1部分:這個(gè)函數(shù)首先從Flash拷貝數(shù)據(jù),這個(gè)過(guò)程就是給全局變量賦值,換句話說(shuō)就是給代碼中有初值的全局變量或者靜態(tài)局部變量賦值。因?yàn)槿肿兞亢挽o態(tài)局部變量初值是保存在Flash里面,會(huì)占用Flash空間,這一點(diǎn)要注意。

2部分:把需要清零的RAM區(qū)清空,包括沒(méi)有初值的全局變量。

3部分:拷貝向量表并重定向,上面已經(jīng)提過(guò),重定向不是必須的。

這個(gè)函數(shù)最后調(diào)用main函數(shù),就再也回不來(lái)了。

pYYBAGP-x-WAXlU4AAOMEd9jBwM109.png

連接文件介紹:

1區(qū)域:上面說(shuō)了__reset函數(shù)就在這區(qū)域,可以看出在Flash最上面,首先運(yùn)行它。

2區(qū)域:向量表,start函數(shù)中拷貝到RAM區(qū)了,這是初始位置,在Flash區(qū)。

poYBAGP-x_SAT2M2AAIJZagnxW0005.png

繼續(xù)往下看連接文件:

1區(qū)域:有初值常量,比如const類型,存放在Flash里

2部分:全局變量初值存放位置。剛才拷貝的就是它。

3區(qū)域:清零區(qū),就是上面循環(huán)清零的區(qū)域

4區(qū)域:棧區(qū)域,一般在RAM最后面,因?yàn)閏ortex-m3類處理器都是滿遞減棧。

poYBAGP-yBiAXe0QAANt-l4AtOA568.png

?

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

    關(guān)注

    3

    文章

    1360

    瀏覽量

    40185
  • Cortex
    +關(guān)注

    關(guān)注

    2

    文章

    202

    瀏覽量

    46415
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62321
  • 美信
    +關(guān)注

    關(guān)注

    5

    文章

    1335

    瀏覽量

    72408
  • Cortex-M3
    +關(guān)注

    關(guān)注

    9

    文章

    269

    瀏覽量

    59406
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM Cortex-M0 DesignStart系列--4啟動(dòng)過(guò)程分析

    書(shū)接上文《ARM_Cortex-M0 DesignStart系列--3rtl仿真過(guò)程的詳細(xì)分析》,本文基于hello這個(gè)case,對(duì)Cortex M
    的頭像 發(fā)表于 11-10 09:05 ?2736次閱讀
    ARM <b class='flag-5'>Cortex-M</b>0 DesignStart系列--4<b class='flag-5'>啟動(dòng)過(guò)程</b>分析

    cortex-m3的操作模式及特權(quán)級(jí)別

    STM32是cortex-m3內(nèi)核芯片,擁有cortex-m3的特性,以下介紹cortex-m3
    的頭像 發(fā)表于 03-01 11:00 ?5522次閱讀
    <b class='flag-5'>cortex-m3</b>的操作模式及特權(quán)級(jí)別

    ARM Cortex-M3內(nèi)核介紹

    STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門(mén)設(shè)計(jì)的ARM Cortex-M3內(nèi)核(ST's product portfolio contains a comprehensive
    發(fā)表于 08-05 06:15

    怎樣去使用Cortex-M3內(nèi)核

    Cortex-M3內(nèi)核是什么?怎樣去使用Cortex-M3內(nèi)核?
    發(fā)表于 09-24 07:19

    Cortex-M3簡(jiǎn)述

    低實(shí)時(shí)性好代碼密度得到很大改善使用更加方便低成本的整體解決方案開(kāi)發(fā)工具眾多:keil、Cube…二者之間的關(guān)系上圖是基于Cortex-M3內(nèi)核的MCU,Cortex-M3相當(dāng)于一個(gè)小CPU(中央處理器)。MCU就是我們看到的
    發(fā)表于 11-10 08:19

    Cortex-M3內(nèi)核_IAP升級(jí)的相關(guān)資料下載

    單片機(jī)啟動(dòng)方式首先上幾幅Cortex-M3內(nèi)核的參考手冊(cè)的圖:一般情況下我們用到的開(kāi)發(fā)板,例如帶一鍵下載功能的都是從系統(tǒng)存儲(chǔ)器開(kāi)始啟動(dòng)的。系統(tǒng)存儲(chǔ)器是一塊存儲(chǔ)空間,他里面的內(nèi)容就是Bo
    發(fā)表于 12-10 07:26

    Cortex-M3內(nèi)核浮點(diǎn)型運(yùn)算的研究與實(shí)現(xiàn)

    Cortex-M3內(nèi)核上實(shí)現(xiàn)浮點(diǎn)型運(yùn)算,可以達(dá)到所要求的精度,運(yùn)算速度較快,具有較高的實(shí)時(shí)性。本文提出的浮點(diǎn)型運(yùn)算的處理方法在基于Cortex-M3內(nèi)核的處理器上有著較高的應(yīng)用價(jià)值。
    發(fā)表于 03-11 11:04 ?1.2w次閱讀
    <b class='flag-5'>Cortex-M3</b><b class='flag-5'>內(nèi)核</b>浮點(diǎn)型運(yùn)算的研究與實(shí)現(xiàn)

    Cortex-M3權(quán)威指南介紹

    Cortex-M3處理器介紹基本的硬件構(gòu)架和指令系統(tǒng)待
    發(fā)表于 11-23 11:01 ?0次下載

    Cortex-m3內(nèi)核STM32芯片的硬件庫(kù)程序

    Cortex-m3內(nèi)核STM32芯片的硬件庫(kù)程序 有需要的下來(lái)看看
    發(fā)表于 12-29 13:41 ?3次下載

    TKScope仿真調(diào)試Cortex-M3內(nèi)核的高級(jí)手段

    TKScope仿真調(diào)試Cortex-M3內(nèi)核的高級(jí)手段
    發(fā)表于 10-09 09:34 ?12次下載
    TKScope仿真調(diào)試<b class='flag-5'>Cortex-M3</b><b class='flag-5'>內(nèi)核</b>的高級(jí)手段

    介紹STM32F4在Cortex-M4內(nèi)核Cortex-M3內(nèi)核方面的優(yōu)勢(shì)

    該視頻通過(guò)STM32F4 MCU展示了在音頻處理應(yīng)用方面Cortex-M4內(nèi)核Cortex-M3內(nèi)核的比較優(yōu)勢(shì)
    的頭像 發(fā)表于 07-03 04:19 ?1.4w次閱讀

    Cortex-M3處理器內(nèi)核與基于Cortex-M3的MCU關(guān)系

    低實(shí)時(shí)性好代碼密度得到很大改善使用更加方便低成本的整體解決方案開(kāi)發(fā)工具眾多:keil、Cube…二者之間的關(guān)系上圖是基于Cortex-M3內(nèi)核的MCU,Cortex-M3相當(dāng)于一個(gè)小CPU(中央處理器)。MCU就是我們看到的
    發(fā)表于 11-05 18:35 ?8次下載
    <b class='flag-5'>Cortex-M3</b>處理器<b class='flag-5'>內(nèi)核</b>與基于<b class='flag-5'>Cortex-M3</b>的MCU關(guān)系

    STM32啟動(dòng)過(guò)程--啟動(dòng)文件--分析

    、中斷向量安排等內(nèi)容,是非常值得玩味的?! TM32作為一款高端Cortex-M3系列單片機(jī),有必要了解它的啟動(dòng)文件。打好基礎(chǔ),為以后優(yōu)化程序,寫(xiě)出高質(zhì)量的代碼最準(zhǔn)備?! ”疚囊砸粋€(gè)實(shí)際...
    發(fā)表于 11-30 13:21 ?4次下載
    STM32<b class='flag-5'>啟動(dòng)過(guò)程</b>--<b class='flag-5'>啟動(dòng)</b><b class='flag-5'>文件</b>--分析

    分析ARM Cortex-M內(nèi)核復(fù)位啟動(dòng)過(guò)程

    ARM Cortex-M內(nèi)核的復(fù)位啟動(dòng)過(guò)程也被稱為復(fù)位序列(Reset sequence),下面就來(lái)簡(jiǎn)要總結(jié)分析下這一過(guò)程。
    的頭像 發(fā)表于 03-20 09:58 ?2215次閱讀

    Cortex-M3芯片有哪些

    Cortex-M3芯片是一款基于ARM架構(gòu)的低功耗、高性能的嵌入式處理器。目前市面上有眾多廠商生產(chǎn)了基于Cortex-M3內(nèi)核芯片,如意法
    的頭像 發(fā)表于 03-11 17:07 ?1488次閱讀