嵌入式Linux: uClinux操作系统移植
hift){ unsignedintsize; /*onlytextisprofiled*/ prof_len=(unsignedlong)_etext-(unsignedlong)_stext; prof_len>>=prof_shift; size=prof_len*sizeof(unsignedint)+PAGE_SIZE-1; prof_buffer=(unsignedint*)alloc_bootmem(size); } kmem_cache_init(); sti(); calibrate_delay(); #ifdefCONFIG_BLK_DEV_INITRD if(initrd_start!initrd_below_start_ok initrd_start printk(KERN_CRITinitrdoverwritten(0x%08lx0x%08lx)- disablingit.n,initrd_start,min_low_pfn 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); #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相关代码。此代码位于uClinuxlinux-2.4.xarcharmnommubootcompressed目录下名为head.s的文件中。此处程序用汇编语言实现,需要修改的地方主要是设置memorymap的代码,与memorycontroller的硬件实现相关。 (2)UART相关代码。UART相关代码位于uClinuxlinux-2.4.xdriverschar目录下的serial.c (3)定时器相关代码。uClinux中有如下函数调用star_kernel()->time_init()->setup_timer(),需要修改setup_timer()函数中的相关代码。 (4)中断控制器相关。uClinuxlinux-2.4.xarcharmnommuirq.c 除了上述的代码,还有其他多处需要修改。在修改源代码时,可按照uclinux启动和执行顺序依次修改整个平台。熟悉linux内核源码结构对操作系统移植有很大帮助。
移植 操作系统 uClinux Linux 嵌入式 相关文章:
- 嵌入式Linux内核移植相关代码分析(04-21)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 蓝牙无线耳机设计及VxWorks移植方法(07-21)
- U-Boot的编译与移植到QT-S3C44B0X开发板上(03-08)
- LPC2292的μC/OS-II硬件抽象层构建(04-26)
- μC/OS-Ⅱ在MSP430F149上的移植(03-01)