了解開發板資源
1、找cpu,用什麼樣的架構的cpu,為了找到系統上電後,第一條執行的**,我們該放在**?
arm:異常向量表(reset) 0x0 0x90
2、0x0接的是什麼晶元,flash(nor-flash),rom
s5pv210:soc
soc = cpu + controler
2.1、datasheet block
3、這些位址都被晶元公司重新定義,去晶元公司的datasheet中去尋找memory map這樣的章節
片內資源:sfr
片外資源
找異常向量表中的reset向量的位址對應的是什麼東西
s5pv210:0x0–irom–code–jump to new addr
s3c2410:cpu arm – 0x0 –srom(bank0) —bank0 掛接的是什麼晶元
boot目的:
跳到c語言中:
關閉看門狗,中斷,mmu(帶作業系統),cache。
配置系統工作時鐘
配置sdram的控制器(行位址數,列位址數,多少塊,週期性的充電)
讓sp指向可讀可寫的裝置區間中,滿足遞減棧的規則sdram
—用哪些模式,就要初始化哪些模式下的sp
—每個模式值不能覆蓋其他模式
**搬移
—執行速度問題,把程式從儲存器 (nor-flash)搬移到快速的記憶體
—只把儲存器的一部分**執行出來,把儲存在其他位置上的**搬移到記憶體,—對應儲存器控制器的初始化
bl main
sp5v210
loader的目的:
執行應用邏輯,點燈,uart,load linux kernel
建立檔案
inc makefile mian.c
1 通用的makefile,支援sd卡啟動和在uboot下直接執行在ram
1)程式執行時的位址不同
- - - - ddr : 0x20000000
- - - - sd : 0x0
2) sd 16kb , 需要加乙個頭資訊,校驗
ram : 不需要加頭資訊
2、變數集合
target:dep
command
#design by rocky for s5pv210
#define var
target
:= led.bin
build
:= led
env ?= sd
sdtool
:= ./mk210
cobjs += start.o
cobjs += mian.o
cross_compile
:= arm-linux-
cc:= $(
cross_compile)gcc
ld:= $(
cross_compile)ld
objcopy
:= $(
cross_compile)objcopy
cflags += -wall
cflags += -i./inc
ifeq ($(
env),ram)
ldflags += -ttext= 0x0
else
ldflags += -ttext = 0x20000000
endif
#way
all :
$ (target)
ifeq ($(
env),ram)
$(target):
$(build)
$(objcopy) -o binary $^
$@else
$ (target) :
$(build)
$(objcopy) -o binary $^
$(sdtools) [email protected]
$@
endif
$(build) :
$(cobjs)
$(ld) $ (ldflags) -o) $@
$^
%.o : %.c
$(cc) $(
cflags) -c -o $@
$^%.o : %.s
$(cc) $(
cflags) -c -o $@
$^clean:
rm -f $(
target) $(
build) *.o *.tmp
嵌入式 Bootloader的作用
關於bootloader的作用,老師教我們把它當作pc的bios來理解,但其實不完全是這麼回事。文章參考 bootloader是系統加電後執行的第一段 一般它只在系統啟動時非常短的時間內執行。在pc中,整個bootloader由bios 主機板上固化的一段程式 位於硬碟mbr區的os loader一...
bootloader和bootstrap的區別
bootloader和bootstrap的區別 在 embedded linux primer 上看到的,其實還有一些分歧和不精確的地方,比如bootstrap 和bootstrap loader似乎在pc上還有區別,不過還是不影響理解了 又如redboot redhat embedded debu...
bootloader和bootstrap的區別
在 embedded linux primer 上看到的,其實還有一些分歧和不精確的地方,比如bootstrap 和bootstrap loader似乎在pc上還有區別,不過還是不影響理解了 又如redboot redhat embedded debug and bootstrap 本質是乙個boo...