首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 开发>Linux 嵌入式>文章内容
嵌入式Linux:uClinux操作系统移植讲解
来源:www.mnrc.com.cn 作者:riechelr_hl 发布时间:2007-06-06  

{

char * command_line;

unsigned long mempages;

extern char saved_command_line[];

 

/*

* Interrupts are still disabled. Do necessary setups, then

* enable them

*/

lock_kernel();

printk(linux_banner);

setup_arch(&command_line);

printk("Kernel command line: %s\n", saved_command_line);

parse_options(command_line);

trap_init();

init_IRQ();

sched_init();

softirq_init();

time_init();

 

/*

* HACK ALERT! This is early. We're enabling the console before

* we've done PCI setups etc, and console_init() must be aware of

* this. But we do want output early, in case something goes wrong.

*/

console_init();

#ifdef CONFIG_MODULES

init_modules();

#endif

if (prof_shift) {

unsigned int size;

/* only text is profiled */

prof_len = (unsigned long) &_etext - (unsigned long) &_stext;

prof_len >>= prof_shift;

 

size = prof_len * sizeof(unsigned int) + PAGE_SIZE-1;

prof_buffer = (unsigned int *) alloc_bootmem(size);

}

 

kmem_cache_init();

sti();

calibrate_delay();

#ifdef CONFIG_BLK_DEV_INITRD

if (initrd_start && !initrd_below_start_ok &&

initrd_start < min_low_pfn << PAGE_SHIFT) {

printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - "

"disabling it.\n",initrd_start,min_low_pfn << PAGE_SHIFT);

initrd_start = 0;

}

#endif

mem_init();

kmem_cache_sizes_init();

pgtable_cache_init();

 

mempages = num_physpages;

 

fork_init(mempages);

proc_caches_init();

vfs_caches_init(mempages);

buffer_init(mempages);

page_cache_init(mempages);

#if defined(CONFIG_ARCH_S390)

ccwcache_init();

#endif

signals_init();

#ifdef CONFIG_PROC_FS

proc_root_init();

#endif

#if defined(CONFIG_SYSVIPC)

ipc_init();

#endif

check_bugs();

printk("POSIX conformance testing by UNIFIX\n");

 

/*

* We count on the initial thread going ok

* Like idlers init is an unlocked kernel thread, which will

* make syscalls (and thus be locked).

*/

smp_init();

rest_init();

}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

 

5. 系统源码的修改

 

移植一个操作系统到新的硬件平台,比较好的办法是寻找一个架构相近并且已经做好操作系统移植的硬件平台。然后,对原先的操作系统做

共3页: 上一页 [1] 2 [3] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·嵌入式Linux系统下图形库讲解及
·Qt/Embedded在嵌入式Linux中的应
·嵌入式系统 Boot Loader 技术内
·嵌入式 用户图形接口uC/GUI的简
·基于GTK+和X的GUI在嵌入式Linux
·嵌入式Linux系统下的MiniGUI研究
·Linux串口上网的简单实现 (图解)
·在Ubuntu上建立Arm Linux的开发
·嵌入式Linux操作系统启动信息完
·Linux 2.6 内核的嵌入式系统应用
·嵌入式Linux在Blackfin处理器上
·嵌入式uClinux的内核结构和开发
  相关文章
·精华:学习嵌入式Linux的笔记和
·嵌入式Linux在Blackfin处理器上
·基于嵌入式Linux平台的多协议路
·Linux 2.6 内核的嵌入式系统应用
·嵌入式系统中的模块动态加载技术
·嵌入式Linux操作系统启动信息完
·嵌入式操作系统的两种远程调试方
·嵌入式Linux操作系统的网络存储
·RTOS设备驱动向嵌人式Linux的移
·在嵌入式Linux增加自己的设备驱
·嵌入式Linux系统的动态电源管理
·嵌入式程序员应知道的几个基本问

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!