摘要:Linux具有源代碼開放、效率高、可裁剪等優(yōu)點(diǎn),在嵌入式系統(tǒng)的開發(fā)中具有廣泛的應(yīng)用。文章介紹了嵌入式Linux操作系統(tǒng)、移植目標(biāo)平臺(tái)SBC2410及Linux內(nèi)核源代碼的目錄結(jié)構(gòu),分析了Linux移植到SBC2410平臺(tái)的實(shí)現(xiàn)過程,闡述了Linux內(nèi)核、u-boot的裁剪和編譯以及根文件系統(tǒng)的制作過程,最后在SBC2410平臺(tái)上成功移植了嵌入式Linux系統(tǒng)。
1.1.第1階段arch/arm/kernel/vmlinux.lds--------------------Makefile2.1 arch/arm/boot/compressed/start.S 解壓代碼2.2 arch/arm/kernel/head.S2.2.1 __lookup_machine_type 機(jī)器IDàMACH_STARTàmachine_desc //
1 由于工作需要原來(lái)的STM32F103R8T6需要升級(jí)到RCT6由此也需要把軟件系統(tǒng)移植到RCT6但是移植過來(lái)的時(shí)候由于r8的定時(shí)只有T1--T4 ,RC有6個(gè)定時(shí)器所以遇到自己認(rèn)為很奇怪的問題。問題1 代碼移植過來(lái)后發(fā)現(xiàn)有些定時(shí)器根本
1.啟動(dòng)內(nèi)核啟動(dòng)應(yīng)用程序/linuxrcbusyboxini.cinit_main設(shè)置信號(hào)處理函數(shù)初始化控制臺(tái)parse_inittab解析inittab1.1.解析inittabfile=open(INITTAB,“r”); //打開配置文件/etc/inittabnew_init_action//1創(chuàng)建一個(gè)init
1.Bootloader概念系統(tǒng)上電后,需要一段程序來(lái)初始化重要的硬件,有些程序是固化在固件firmwware上的,如PC的BIOS。然后是Bootloader,如PC上的GRUB。對(duì)于嵌入式系統(tǒng)來(lái)說,一般只有Bootloader,它負(fù)責(zé)初始化內(nèi)核運(yùn)行的
制作根文件系統(tǒng)1、創(chuàng)建目錄2、創(chuàng)建必要的設(shè)備文件3、安裝所需的共享庫(kù)4、安裝init文件、shell及各種linux命令,由busybox提供5、創(chuàng)建編輯配置1.1.創(chuàng)建目錄mkdirrootfscdrootfsmkdirbinsbindevlibetcrootusrprocmnttm