找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4233|回復: 1
收起左側

stm32程序是怎么進入入口地址的?

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

使用道具 舉報

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

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

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

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表