找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4312|回復(fù): 1
收起左側(cè)

stm32程序是怎么進(jìn)入入口地址的?

[復(fù)制鏈接]
ID:277125 發(fā)表于 2018-1-17 19:55 | 顯示全部樓層 |閱讀模式
keil自帶stm32的啟動(dòng)文件,但在程序又是如何執(zhí)行到啟動(dòng)文件的第一條匯編語句的呢?
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2018-1-18 21:34 | 顯示全部樓層
任何單片機(jī)的第一條取指地址,都是由硬件決定的。RESET的目的之一就是硬件強(qiáng)行到指定的地址去運(yùn)行。
常用的硬件方案有兩種(不限于此兩種):
1、從固定地址取指令執(zhí)行。如51系列,是從0000H開始取指令執(zhí)行。
2、從固定地址取出地址,再從這個(gè)地址處取指令執(zhí)行。例如6502芯片(任天堂游戲機(jī)),是從FFFEH和FFFFH這兩個(gè)地址中取出兩個(gè)字節(jié),假設(shè)這兩個(gè)字節(jié)是1234H,則再從1234H起取指令運(yùn)行。

stm32是從何處開始呢?不告訴你,請你查一下手冊(在關(guān)于RESET的地方應(yīng)當(dāng)有)。

C語言規(guī)定程序從MAIN開始,KELL在編譯MAIN時(shí),必須知道是用的什么單片機(jī)。否則它無法確定MAIN程序從什么地址開始存放。(這就是你仿真時(shí)為什么要先選擇單片機(jī)型號(hào)的道理之一)

而用匯編寫程序的人,也必須知道CPU復(fù)位后是從何處開始運(yùn)行的,程序也從這里開始寫。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表