最近看了傅琳琳的那篇OAL的点点滴滴(http://www.vckbase.com/document/viewdoc/?id=1379),他告诉我StartUp()函数是CE启动的第一个函数,可是我硬是没有搜索到那个什么鬼函数在哪里,在MSDN帮助文档里面也说: This function is the first function to be called when the OS is booted from either the boot loader or reset vector. void StartUp(void); ParametersNone. Return ValuesNone. RemarksThis function is the first function called during boot up. The function needs to initialize the CPU to a known state and then call one of the kernel initialization functions, either KernelInitialize or KernelStart. 可是我为什么找不到呢? 嘿嘿,在一阵子搜索之后,我放弃了,然后开始翻启动代码那段汇编语言,看到一个词语不认识:LEAF_ENTRY ,查看MSDN的帮助文档说, This macro declares the beginning of a routine that does not require any prolog code. LEAF_ENTRY Name[,
[Section=]SectionName] Parameters- Name
- Name is the routine name and is in the global name space.
- SectionName
- SectionName is the name of the section in which the entry will appear; it is optional and defaults to .text.
Return ValuesNone. RemarksA LEAF_ENTRY must have an associated ENTRY_END. Each supported microprocessor contains a definition for this macro in a microprocessor-specific header file. The following table shows the supported microprocessor families and the related header file that contains the macro definition for that family. Microprocessor family | Header file name |
---|
ARM | Kxarm.h | SH3, SH4 | Kxshx.h | MIPS | Kxmips.h |
嘿嘿,原来就是它定义了StartUp啊,但是有些地方仍然没有想通,比如这个例程调用了很多C的函数,但这个时候好像还没有初始化栈堆,哪位知道原因,烦请告诉我一声。
|