高速电路PCB网,专注于嵌入式方案,信号完整性和电源完整性仿真分析,高速电路PCB设计,各种EDA工具(Cadence\Mentor\\AD\\CAM\ANSYS HFSS)交流学习。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
启动脚本 运行主程序 启动完成 统、调试信息,使内核尽可能地达到最小。比如可以去掉内核对键盘、鼠 标等硬件的支持,去掉RomFs、RamDisk 等文件系统的支持。内核中的 文件系统占了相当大的部分,因此应尽量去掉那些根本不需要文件系统。 3) 把内核中一些模块直接编译成模块的方式,而不是与内核编译在一起,在 内核启动之后再装载那些模块,这样也能减小内核体积。比如网卡驱动, USB 驱动,这些都不是内核启动所必需的模块,因此不必与内核编译一起, 而是编译成单独的模块,当内核启动之后再加载这些模块即可。 2. 为加快在内存中运行内核的速度,可以完全屏蔽掉printk 函数的输出,去掉了在 运行内核时的所有的调试输出信息,这样也能缩短解压并运行内核的时间。printk 函数的输出对启动时间影响很大,在项目刚开始时系统启动时间居然需要4 分钟 左右,后来把printk 的输出屏蔽掉之后启动时间就骤降到40 秒左右,所以printk 对系统的启动时间影响很大。 3. 为加快装载根文件系统和主应用程序到内存中可以采取以下措施: 1) 根文件系统的格式采用cramfs 格式。嵌入式系统中的文件系统有许多, 比如romfs,ramfs,jffs2,cramfs,yaffs 等,通过对各种文件系统进行 比较,最后确定使用cramfs 文件系统,该文件系统在从Flash 加载到内 存中的速度比较理想。 刚开始时我们采用的是jffs2 文件格式,且应用程序和根文件系统放在两 个不同的分区,此时的系统的启动时间是30 秒左右,一直无法降下去。 后来技术支持建议用cramfs 文件系统,且把根文件系统和应用程序放在 一直做成一个镜像文件一起加载,结果启动时间就降了五六秒左右。 2) 用动态库代替静态库来缩小主应用程序的体积,这样也能加快加载主应用 程序到内存的速度。 4. 为加快启动脚本的运行,可以把该启动脚本中的任务最大限度的删减,把所有无关 的任务都去掉;另外还把一些能并行启动的任务都做成并行执行,这样就加快了加 载系统中各任务的速度。 5. 在运行主程序这一步中,可以优化应用程序中各任务的启动时机,把播放电视节目 的任务尽可能的提前,这样用户开机之后就能很快看到电视节目,在开始播放电视 节目之后,才在后台对其它任务进行初始化。 通过以上各种方法的组合应用,我们项目把启动时间控制在了22 秒左右。 更多C语言 C++、JAVA、数电模电、51单片机、PIC stm32 ARM Linux驱动 嵌入式、安卓系统 FPGA、DSP Cortex-M3学习 请咨询周丽老师:腾讯QQ:3432116989 MOL: 18565657789 深圳南山、民治、西乡、广州,北京,郑州、南宁同步学习中! 理论与实践相结合 一线工程师项目经理教学 结合真实的产品案列 让你感受前所未有的电子产品的开发流程 2016给自己一个决心,只为自己!高薪就业不是梦,有想法你就来 IT达人等着你!!!
|