更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
los_config.h 文件参考

浏览源代码.

类型定义

typedef VOID(* log_read_write_fn) (UINT32 startAddr, UINT32 space, UINT32 rwFlag, CHAR *buf)
 define the type of functions for reading or writing exception information. 更多...
 
typedef VOID(* SystemRebootFunc) (VOID)
 

函数

VOID LOS_ExcInfoRegHook (UINT32 startAddr, UINT32 space, CHAR *buf, log_read_write_fn hook)
 Register recording exception information function. 更多...
 
UINT32 OsMain (VOID)
 由汇编调用,鸿蒙C语言层级的入口点 更多...
 
VOID OsSetRebootHook (SystemRebootFunc func)
 设置系统重启钩子函数 更多...
 
SystemRebootFunc OsGetRebootHook (VOID)
 获取系统重启钩子函数 更多...
 

变量

CHAR __int_stack_start
 运行系统函数栈的开始地址 值来自于 liteos.ld中的 __int_stack_start = .; 更多...
 
CHAR __rodata_start
 ROM开始地址 只读 更多...
 
CHAR __rodata_end
 ROM结束地址 更多...
 
CHAR __bss_start
 bss开始地址 attribute((section(".__bss_start"))); 更多...
 
CHAR __bss_end
 bss结束地址 attribute((section(".__bss_end"))); 更多...
 
CHAR __text_start
 代码区开始地址 更多...
 
CHAR __text_end
 代码区结束地址 更多...
 
CHAR __ram_data_start
 RAM开始地址 可读可写 更多...
 
CHAR __ram_data_end
 RAM结束地址 更多...
 
UINT32 __heap_start
 堆区开始地址 更多...
 
UINT32 __heap_end
 堆区结束地址 更多...
 

类型定义说明

◆ SystemRebootFunc

typedef VOID(* SystemRebootFunc) (VOID)

在文件 los_config.h475 行定义.

函数说明

◆ OsGetRebootHook()

SystemRebootFunc OsGetRebootHook ( VOID  )

获取系统重启钩子函数

在文件 los_config.c63 行定义.

64{
65 return g_rebootHook;
66}
STATIC SystemRebootFunc g_rebootHook
Definition: los_config.c:56
这是这个函数的调用关系图:

◆ OsMain()

UINT32 OsMain ( VOID  )

由汇编调用,鸿蒙C语言层级的入口点

在文件 los_config.c186 行定义.

187{
188 UINT32 ret;
189#ifdef LOS_INIT_STATISTICS
190 UINT64 startNsec, endNsec, durationUsec;
191#endif
192
193 ret = EarliestInit();//鸿蒙初开,天地混沌
194 if (ret != LOS_OK) {
195 return ret;
196 }
197 OsInitCall(LOS_INIT_LEVEL_EARLIEST);
198
199 ret = ArchEarlyInit(); //架构级初始化,包括硬中断
200 if (ret != LOS_OK) {
201 return ret;
202 }
203 OsInitCall(LOS_INIT_LEVEL_ARCH_EARLY);
204
205 ret = PlatformEarlyInit();//平台级初始化
206 if (ret != LOS_OK) {
207 return ret;
208 }
209 OsInitCall(LOS_INIT_LEVEL_PLATFORM_EARLY);
210
211 /* system and chip info */
212 OsSystemInfo();
213
214 PRINT_RELEASE("\nmain core booting up...\n");
215
216#ifdef LOS_INIT_STATISTICS
217 startNsec = LOS_CurrNanosec();
218#endif
219
220 ret = OsTaskInit();//任务池初始化
221 if (ret != LOS_OK) {
222 return ret;
223 }
224
225 OsInitCall(LOS_INIT_LEVEL_KMOD_PREVM);
226
227 ret = OsSysMemInit();//系统内存初始化
228 if (ret != LOS_OK) {
229 return ret;
230 }
231
232 OsInitCall(LOS_INIT_LEVEL_VM_COMPLETE);
233
234 ret = OsIpcInit();//进程间通讯模块初始化
235 if (ret != LOS_OK) {
236 return ret;
237 }
238
239 ret = OsSystemProcessCreate();//创建系统进程
240 if (ret != LOS_OK) {
241 return ret;
242 }
243
244 ret = ArchInit(); //MMU架构初始化
245 if (ret != LOS_OK) {
246 return ret;
247 }
248 OsInitCall(LOS_INIT_LEVEL_ARCH);
249
250 ret = PlatformInit();
251 if (ret != LOS_OK) {
252 return ret;
253 }
254 OsInitCall(LOS_INIT_LEVEL_PLATFORM);
255
256 ret = KModInit();
257 if (ret != LOS_OK) {
258 return ret;
259 }
260
261 OsInitCall(LOS_INIT_LEVEL_KMOD_BASIC);
262
263 OsInitCall(LOS_INIT_LEVEL_KMOD_EXTENDED);
264
265#ifdef LOSCFG_KERNEL_SMP
266 OsSmpInit();
267#endif
268
269 OsInitCall(LOS_INIT_LEVEL_KMOD_TASK);
270
271#ifdef LOS_INIT_STATISTICS
272 endNsec = LOS_CurrNanosec();
273 durationUsec = (endNsec - startNsec) / OS_SYS_NS_PER_US;
274 PRINTK("The main core takes %lluus to start.\n", durationUsec);
275#endif
276
277 return LOS_OK;
278}
LITE_OS_SEC_TEXT_MINOR UINT64 LOS_CurrNanosec(VOID)
获取自系统启动以来的纳秒数
Definition: los_hw_tick.c:62
LITE_OS_SEC_TEXT_INIT VOID OsSystemInfo(VOID)
Definition: los_config.c:157
LITE_OS_SEC_TEXT_INIT STATIC UINT32 ArchInit(VOID)
Definition: los_config.c:136
LITE_OS_SEC_TEXT_INIT STATIC UINT32 PlatformEarlyInit(VOID)
Definition: los_config.c:105
LITE_OS_SEC_TEXT_INIT STATIC UINT32 OsIpcInit(VOID)
Definition: los_config.c:114
LITE_OS_SEC_TEXT_INIT STATIC UINT32 KModInit(VOID)
Definition: los_config.c:149
LITE_OS_SEC_TEXT_INIT STATIC UINT32 PlatformInit(VOID)
Definition: los_config.c:144
LITE_OS_SEC_TEXT_INIT STATIC UINT32 ArchEarlyInit(VOID)
Definition: los_config.c:81
LITE_OS_SEC_TEXT_INIT STATIC UINT32 EarliestInit(VOID)
Definition: los_config.c:68
VOID OsInitCall(const UINT32 level)
初始化调用日志打印,这个函数的功能主要是为了记录某个步骤的耗时.在一个函数前后各调用一次就知道函数的执行情况. 这为开机调试提供了很重要的日志依据.
Definition: los_init.c:127
LITE_OS_SEC_TEXT_INIT UINT32 OsSystemProcessCreate(VOID)
Definition: los_process.c:896
VOID OsSmpInit(VOID)
Definition: los_smp.c:63
LITE_OS_SEC_TEXT_INIT UINT32 OsTaskInit(VOID)
Definition: los_task.c:259
long unsigned int UINT64
Definition: los_typedef.h:66
unsigned int UINT32
Definition: los_typedef.h:57
UINT32 OsSysMemInit(VOID)
整个系统内存初始化
Definition: los_vm_boot.c:65
函数调用图:
这是这个函数的调用关系图:

◆ OsSetRebootHook()

VOID OsSetRebootHook ( SystemRebootFunc  func)

设置系统重启钩子函数

在文件 los_config.c58 行定义.

59{
60 g_rebootHook = func;
61}

变量说明

◆ __bss_end

CHAR __bss_end
extern

bss结束地址 attribute((section(".__bss_end")));

◆ __bss_start

CHAR __bss_start
extern

bss开始地址 attribute((section(".__bss_start")));

◆ __heap_end

UINT32 __heap_end
extern

堆区结束地址

◆ __heap_start

UINT32 __heap_start
extern

堆区开始地址

◆ __ram_data_end

CHAR __ram_data_end
extern

RAM结束地址

◆ __ram_data_start

CHAR __ram_data_start
extern

RAM开始地址 可读可写

◆ __rodata_end

CHAR __rodata_end
extern

ROM结束地址

◆ __rodata_start

CHAR __rodata_start
extern

ROM开始地址 只读

◆ __text_end

CHAR __text_end
extern

代码区结束地址

◆ __text_start

CHAR __text_start
extern

代码区开始地址