久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12290|回復: 4
收起左側

MCU在運行到main()之前都干了什么

[復制鏈接]
ID:51024 發表于 2014-8-10 22:15 | 顯示全部樓層 |閱讀模式
 很多ARM工程師想當然的以為,自己開發的應用程序,用AK100Pro仿真器下載進入調試,MCU的PC指針必定停留在main()函數的入口。但實際上,在運行到main()前,MCU還做了很多事情。這里以一個LPC1700的Keil工程為例說明。

  MCU上電復位后,通常會從一個固定的地址開始啟動,比如ARM7復位后的入口地址為0x00000000;或者類似Cortex-M內核從中斷向量表中取出入口地址,中斷向量表的地址必須是固定的。

  LPC1700為Cortex-M3內核,所以啟動時會從中斷向量表(地址0x00000000)處取出入口地址和堆棧指針,分別加載到PC和SP中。

  入口地址處通常放的是芯片相關的啟動代碼。這部分代碼要完成很多芯片初始化的動作,由于與特定型號芯片相關,所以不能隨隨便便地就用到別的型號芯片上。通常我們會使用官方提供的例程,然后以此為基礎進行必要的修改。以下是LPC1700的初始化代碼,所有硬件相關的初始化操作放在了SystemInit()函數中。


    SystemInit()完成的功能可以有:設置看門狗、外部存儲器接口、內核時鐘等等。當然,這些代碼有些是可以放到后面的main()函數中完成,但有些則必須放在運行到__main之前完成。

  芯片初始化完成后,接下來是執行C運行環境的初始化。C環境的初始化主要包含兩點:

  按照分散加載文件的配置,將相應的數據段和代碼段拷貝到相關位置,將ZI段清零。通過這個功能可以將C代碼中未指定初始化值的全局變量和靜態變量對應的內存清零,然后將指定初始化的全局變量和靜態變量對應的內存初始化。另外,如果有通過分散加載文件設置代碼存儲在Flash中,然后自動搬運到RAM中運行(該功能將在后續文章中細講),也會在該階段完成這個自動搬運工作。

  之后是初始化C庫,完成后才跳轉到main()。

  以下是LPC1700工程的一段初始化代碼,不同的工程配置,反匯編出來的結果略有不同。






  所以說,在main()運行前,MCU其實已經做了很多工作了。如果程序下載沒有出現問題,但是就是跑不到main(),有可能不是仿真器的問題。是否會是main()之前的初始化操作異常?

-------------------------------

后面繼續分享這種小的技術總結。如有不對,歡迎拍磚。

評分

參與人數 1黑幣 +5 收起 理由
zhangli019 + 5 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:100713 發表于 2015-12-29 14:23 | 顯示全部樓層
感謝感謝感謝感謝
回復

使用道具 舉報

ID:136037 發表于 2016-8-5 10:34 | 顯示全部樓層
樓主寫的好,我來幫你消滅孤單的回復。
回復

使用道具 舉報

ID:137764 發表于 2016-8-28 18:44 | 顯示全部樓層
后面繼續分享這種小的技術總結
回復

使用道具 舉報

ID:164507 發表于 2017-2-13 20:57 | 顯示全部樓層
單片機根據啟動模式以及BOOT的管腳電平進入每部固化好的程序
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费a v网站| 亚洲高清在线 | 99成人精品| 一级a性色生活片久久毛片波多野 | a中文在线视频 | av在线伊人 | 亚洲天天干 | 免费在线观看黄视频 | 成人在线a | 天天摸天天干 | 亚洲日本欧美日韩高观看 | 亚洲精品一区二区三区在线 | 九热在线 | 最新中文字幕 | 国产精品久久久爽爽爽麻豆色哟哟 | 久久精品国产一区二区三区不卡 | 天天射影院 | 国产精品久久久久久久久久三级 | jizjizjiz中国护士18 | 国产精品夜夜春夜夜爽久久电影 | 国产精品激情在线 | 免费黄色大片 | 成人久久| 免费视频一区 | 国产精品二区三区在线观看 | 人和拘一级毛片c | 欧美日韩一区二区视频在线观看 | 久久久免费| 日韩三级在线 | 污免费网站 | 91视视频在线观看入口直接观看 | 婷婷一级片 | 成人毛片视频在线播放 | 亚洲欧美日韩国产综合 | 亚洲在线久久 | 91精品国产乱码久久久久久久久 | 伊人伊人网 | 国产精品看片 | 91在线视频免费观看 | 国产精品69毛片高清亚洲 | 亚洲视频一区 |