本篇基于AT91SAM9261,使用官方bsp,wince5,bsp使用src版本,内容会不断增加和更新
一.eboot代码分析
1.代码架构
入口点
PLATFORM/AT91SAM9261EK/SRC/BOOTLOADER/EBOOT/startup.s
第一个c入口
main()
PLATFORM/COMMON/SRC/ARM/ATMEL/AT91SAM926x/BOOTLOADER/GenericEBOOT/main.c
几个调用的实现
EBOOT_LowLevelInit() 时钟串口等初始化,后边还有初始化的
PLATFORM/AT91SAM9261EK/SRC/BOOTLOADER/EBOOT/init_at91sam9261.c
BootloaderMain() 此函数最为关键
PLATFORM/COMMON/SRC/COMMON/BOOT/BLCOMMON/blcommon.c
BootloaderMain()调用函数的实现
OEMDebugInit()
PLATFORM/COMMON/SRC/ARM/ATMEL/AT91SAM926x/BOOTLOADER/GenericEBOOT/main.c
OEMInitDebugSerial()
PLATFORM/COMMON/SRC/ARM/ATMEL/AT91SAM9261/KERNEL/DEBUGSERIAL/debugSerial.c
OEMPlatformInit() 此函数也很关键
PLATFORM/COMMON/SRC/ARM/ATMEL/AT91SAM926x/BOOTLOADER/GenericEBOOT/main.c
EBOOT_SetDefaultEBootCFG() 初始化参数,用处很大
PLATFORM/COMMON/SRC/ARM/ATMEL/AT91SAM926x/BOOTLOADER/GenericEBOOT/eboot_cfg.c
EBOOT_DisplayMenu 你看到的菜单了,都在这
PLATFORM/COMMON/SRC/ARM/ATMEL/AT91SAM926x/BOOTLOADER/GenericEBOOT/menu.c
OEMLaunch 执行内核哦
PLATFORM/COMMON/SRC/COMMON/BOOT/BLCOMMON/blcommon.c
用个source insight全部索引下就好了,eboot代码全部在platform下的,没有public和private下的
二.NK代码分析
1.代码框架
入口点
PLATFORM/COMMON/SRC/ARM/ATMEL/AT91SAM926x/KERNEL/STARTUP/startup.s
接着
PRIVATE/WINCEOS/COREOS/NK/KERNEL/ARM/armtrap.s
其调用了若干c函数,source insight即可