新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式Linux: uClinux操作系统移植

嵌入式Linux: uClinux操作系统移植

作者:时间:2012-05-11来源:网络收藏

fork_init(mempages);

本文引用地址:http://www.eepw.com.cn/article/149092.htm

proc_caches_init();

vfs_caches_init(mempages);

buffer_init(mempages);

page_cache_init(mempages);

#ifdefined(CONFIG_ARCH_S390)

ccwcache_init();

#endif

signals_init();

#ifdefCONFIG_PROC_FS

proc_root_init();

#endif

#ifdefined(CONFIG_SYSVIPC)

ipc_init();

#endif

check_bugs();

printk(POSIXconformancetestingbyUNIFIXn);

/*

*Wecountontheinitialthreadgoingok

*Likeidlersinitisanunlockedkernelthread,whichwill

*makesyscalls(andthusbelocked)。

*/

smp_init();

rest_init();

}

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

5.系统源码的修改

一个到新的硬件平台,比较好的办法是寻找一个架构相近并且已经做好的硬件平台。然后,对原先的做一定修改。系统源码修改的工作量取决于自行设计的硬件平台与现有的硬件平台之间差异程度。此设计中的硬件平台与三星4510芯片较为接近,并且也可以下载到针对4510b的uclinux系统源码。所以可以从此源码入手,根据我们的硬件平台与4510b的不同之处,在源码中找到相应的文件并加以修改。下面介绍如何修改系统源码。

需要修改的系统源码主要有如下几处:

(1)bootloader相关代码。此代码位于linux-2.4.xarcharmnommubootcompressed目录下名为head.s的文件中。此处程序用汇编语言实现,需要修改的地方主要是设置memorymap的代码,与memorycontroller的硬件实现相关。

(2)UART相关代码。UART相关代码位于linux-2.4.xdriverschar目录下的serial.c

(3)定时器相关代码。中有如下函数调用star_kernel()->time_init()->setup_timer(),需要修改setup_timer()函数中的相关代码。

(4)中断控制器相关。uClinuxlinux-2.4.xarcharmnommuirq.c

除了上述的代码,还有其他多处需要修改。在修改源代码时,可按照uclinux启动和执行顺序依次修改整个平台。熟悉linux内核源码结构对操作系统有很大帮助。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭