|
任何單片機(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ī)型號的道理之一)
而用匯編寫程序的人,也必須知道CPU復(fù)位后是從何處開始運(yùn)行的,程序也從這里開始寫。 |
|