代码拉取完成,页面将自动刷新
有时候打开文件太多, 关了之后,又发现某些要查看的函数文件不见了, 又要从头找起 ,好麻烦
提个小建议:
能否增加个索引文件, 如图----> 把启动流程, 重要的函数声明集中在一起, 这样浏览时能快速跳转,找到某些函数
再比如文件系统, 可以把某些重要函数声明分类集中在一起 , 方便阅读, 指引阅读
比如下面这些,图中的 , 只有有定义, 都可以直接跳转
#include "los_config.h"
#include "gic_common.h"
#include "los_arch_mmu.h"
#include "los_atomic.h"
#include "los_init_pri.h"
#include "los_printf.h"
#include "los_process_pri.h"
#include "los_sched_pri.h"
#include "los_swtmr_pri.h"
#include "los_task_pri.h"
extern INT32 OsMain(VOID);
extern VOID OsSchedStart(VOID);
//核间中断==================================================================
extern VOID OsMpWakeHandler(VOID) ;// 唤醒CPU
extern VOID OsMpScheduleHandler(VOID) ;// 调度CPU
extern VOID OsMpScheduleHandler(VOID) ;// 停止CPU 让当前Cpu停止工作
//系统滴答中断
extern VOID OsTickHandler(VOID) ;// 系统滴答中断
extern INLINE BOOL OsSchedScanTimerList(VOID);
extern VOID OsSwtmrScan(VOID);
//内核初始化顺序===============================================================
extern UINT32 EarliestInit(VOID);
#define LOS_INIT_LEVEL_EARLIEST 0 //最早级
extern UINT32 OsTraceInit(void);
extern UINT32 OsLkLoggerInit(VOID);
extern UINT32 OsDmesgInit(VOID); //开机信息
extern UINT32 ArchEarlyInit(VOID); //中断相关
extern VOID OsHwiInit(VOID);
extern VOID OsExcInit(VOID); //异常接管
extern UINT32 OsTickInit(UINT32 systemClock, UINT32 tickPerSecond); //内核定时器 系统滴答
#define LOS_INIT_LEVEL_ARCH_EARLY 1 //架构早期
extern UINT32 PlatformEarlyInit(VOID); //串口中断
extern void uart_init(void);
#define LOS_INIT_LEVEL_PLATFORM_EARLY 2 //平台早期
extern VOID OsSystemInfo(VOID); //cpu软件和硬件信息
extern UINT32 OsTaskInit(VOID); //任务池 调度器 cpu私有变量
#define LOS_INIT_LEVEL_KMOD_PREVM 3 //内存模块即将开始
extern UINT32 OsSysMemInit(VOID);//内存初始化
#define LOS_INIT_LEVEL_VM_COMPLETE 4 //内存模块完成
extern UINT32 ShmInit(VOID);
extern UINT32 OsIpcInit(VOID);
extern UINT32 OsSystemProcessCreate(VOID);//进程池
extern UINT32 ArchInit(VOID);
#define LOS_INIT_LEVEL_ARCH 5 //架构级
extern int OsBBoxDriverInit(void);
extern UINT32 PlatformInit(VOID);
#define LOS_INIT_LEVEL_PLATFORM 6 //平台级
extern int OsBBoxSystemAdapterInit(void);
extern UINT32 KModInit(VOID);
extern UINT32 OsSwtmrInit(VOID);
#define LOS_INIT_LEVEL_KMOD_BASIC 7 //基础级
extern VOID los_vfs_init(VOID); //虚拟文件系统 根文件系统
#define LOS_INIT_LEVEL_KMOD_EXTENDED 8 //扩展级
extern void ProcFsInit(void);
extern int mkdir(const char );
extern UINT32 OsFutexInit(VOID);
extern int OsHiLogDriverInit(VOID);
extern int OsHiDumperDriverInit(void);
extern UINT32 OsCpupInit(VOID);
extern UINT32 OsLiteIpcInit(VOID);
extern UINT32 OsPmInit(VOID);
extern UINT32 OsVdsoInit(VOID);
extern VOID OsSyscallHandleInit(VOID);
extern VOID release_secondary_cores(VOID);
#define LOS_INIT_LEVEL_KMOD_TASK 9 //任务级
extern UINT32 OsResourceFreeTaskCreate(VOID);
extern UINT32 OsMpInit(VOID);
extern UINT32 OomTaskInit(VOID);
extern UINT32 OsCpupGuardCreator(VOID);
extern UINT32 OsSystemInit(VOID);
extern mem_dev_register();
extern net_init();
extern DeviceMannagerStart();
extern INT32 OsMountRootfs(VOID);; //挂载根文件系统
extern int VnodeLookup(const char *path, struct Vnode **vnode, uint32_t flags);
extern INT32 add_mtd_partition(const CHAR *type, UINT32 startAddr, UINT32 length, UINT32 partitionNum) ;
extern static INT32 BlockDriverRegisterOperate(mtd_partition *newNode, const partition_param *param, UINT32 partitionNum);
extern int register_blockdriver(const char *path,const struct block_operations *bops,mode_t mode, void *priv);
extern static INT32 CharDriverRegisterOperate(mtd_partition *newNode,const partition_param *param, UINT32 partitionNum);
extern int register_driver(const char *path,const struct file_operations_vfs *fops, mode_t mode,void *priv);
extern INT32 virtual_serial_init(const CHAR *deviceName);
extern system_console_init(const CHAR *deviceName);
extern UINT32 OsUserInitProcess(VOID); //启动第一个应用程序
extern VOID OsUserInit(VOID *args); //根据 ld 地址地址 拷贝后启动
sys_call3(__NR_execve, (UINTPTR)g_initPath, 0, 0);
//触发软中断
_osExceptSwiHdl(); // R7 保持系统调用号 = __NR_execve R0 R1 R2 依次保持后面三个参数
extern VOID OsArmA32SyscallHandle(TaskContext *regs) ;
extern int SysExecve(regs->R0, regs->R1, regs->R2);
extern INT32 LOS_DoExecveFile(const CHAR *fileName, CHAR * const *argv, CHAR * const *envp)
extern STATIC CHAR *g_initPath = "/bin/init" //由Init_lite在编译后,生成
#define LOS_INIT_LEVEL_FINISH 10