嵌入式系統流程 注意事項:由於各個實習之間有相依性關係,所以必須從400開始全部安裝才能正常編譯 序順依序為 400 401 406 405 404 全程使用ROOT模式 ------------------------------------------------------------------------------------------ 400實習開始 ------------------------------------------------------------------------------------------ 1.下載檔案 將RM-033-04-400、RM-033-04-401、RM-033-04-406、RM-033-04-405、RM-033-04-404全部下載到student目錄下 2.解壓縮 先解壓縮400,一次完成一個實習的安裝 SHELL>tar -zxvf RM-04-400.... 解壓縮檔案 3.編譯檔案 SHELL>cd /home/student/microtime/package/RM-process SHELL>make SHELL>cd /home/student/microtime/package/RM-pthread SHELL>make SHELL>cd /home/student/microtime/package/RM-pipe-fifo SHELL>make SHELL>cd /home/student/microtime/package/RM-mq-sem SHELL>make 做完以上4步,便可在RM-process、RM-pthread、RM-pipe-fifo、RM-mq-sem各個目錄下找到相對應的程式執行檔 4.編輯Root Filesystem 將400裡面的5個檔案都放到/home/student/microtime/build-linux底下 注意:是5個檔案,不是400那個資料夾 執行 SHELL>cd /home/student/microtime/build-linux SHELL>cat pxa270_rootfs.dat | ./mt-copy_from_data.sh 便完成400的安裝步驟 ------------------------------------------------------------------------------------------ 401實習--Part1 ------------------------------------------------------------------------------------------ 將下載下來的microtime檔案放進/root/bin裡面及/home/student/bin中 /home/student/tar -zxvf RM-04-401.... 解壓縮檔案 開啟 /home/student/microtime/linux/drivers/char/Kconfig檔 在 config TELCLOCK 後加入 config CREATOR_PXA270_CHAR tristate "Creator-pxa270 CHAR" depends on MACH_CREATOR_PXA270 default n 除了第一行之前不用空格之外,其餘三行要空一個tab的空格! 開啟 /home/student/microtime/linux/drivers/char/Makefile檔 在 clean-files := consolemap_deftbl.c defkeymap.c qtronixmap.c 後加入 obj-$(CONFIG_CREATOR_PXA270_CHAR)+=creator-pxa270-char.o 開啟 /home/student/microtime/package/RM-char-app/microtime_configure 將內容修改為 export LINUXDIR=/home/student/microtime/pro/devkit/lsp/creator-pxa270/linux-2.6.15.3 export CROSS_COMPILE=arm-unknown-linux-gnu-gcc make ------------------------------------------------------------------------------------------ 406、405、404 實驗 --part1 ------------------------------------------------------------------------------------------ 1. /home/student/> tar -zxvf RM-04-406.... /home/student/> tar -zxvf RT-953-033-15.... /home/student/> tar -zxvf RT-953-033-24.... 2. /home/student/> tar -zxvf RM-04-405.... /home/student/> tar -zxvf RT-953-033-16.... /home/student/> tar -zxvf RT-953-033-24.... 3. /home/student/> tar -zxvf RM-04-406.... /home/student/> tar -zxvf RT-953-033-14.... /home/student/> tar -zxvf RT-953-033-24.... ------------------------------------------------------------------------------------------ 核心編譯及MENUCONFIG設定 ------------------------------------------------------------------------------------------ 1.進入MENUCONFIG SHELL>cd /home/student/microtime/linux SHELL>make mrproper SHELL>make menuconfig 接著會進入kernel選單中,先選擇倒數第二項的 Load an Alternate Configuration File 清空後輸入 arch/arm/configs/creator_pxa270_defconfig 再到Device Driver裡面的Character devices裡的 Creator-pxa270 CHAR Creator-pxa270 LCD Creator-pxa270 CMOS Creator-pxa270 Codec 這四項都設為 再到 Boot Option,在第三行按Enter,並清空內容後輸入 console=ttyS0,9600n8 root=/dev/nfs rw nfsroot=yyy.yyy.yyy.yyy:/home/student/microtime/rootfs,v3 ip=xxx.xxx.xxx.xxx:yyy.yyy.yyy.yyy:ggg.192.168.0.1:255.255.255.0::eth0:off mem=64M ether=aa:11:22:33:44:55 xxx.xxx.xxx.xxx 代表的是板子的IP yyy.yyy.yyy.yyy 代表的是主機上的網路卡設的IP 一直選擇 Exit,直到出現詢問是否存入新的kernel設定時選擇 Yes SHELL> make clean SHELL> make SHELL> make modules_install SHELL> mkdir -p /home/student/microtime/build-linux/output/nfs_boot SHELL> cp ./arch/arm/boot/zImage /usr/src/microtime/build-linux/output/nfs_boot SHELL> cd /home/student/microtime SHELL> arm-unknown-linux-gnu-objcopy -O binary -R .note -R .comment –S linux/arch/arm/boot/compressed/vmlinux linux.bin SHELL> rm linux.bin.gz SHELL> gzip -9 linux.bin SHELL> ./build-linux/mkimage -A arm -O linux -T kernel -C gzip -a 0xa0008000 -e 0xa0008000 -n "2.6.15.3 kernel for Creator-PXA270" -d linux.bin.gz /home/student/microtime/build-linux/output/nfs_boot/uImage SHELL> cp /home/student//microtime/build-linux/output/nfs_boot/uImage /tftpboot ------------------------------------------------------------------------------------------ 401實習--Part2 ------------------------------------------------------------------------------------------ 編譯 RM-char-app User application SHELL> cd /student/microtime/package/RM-char-app SHELL> ./microtime_configure 此時 RM-char-app 的執行檔 RM-char-app 產生在 /student/microtime/package/RM-char-app 路徑下。 將下載下來的401_scripts.zip解壓縮到 /home/student/microtime/build-linux/ 並覆蓋原有的檔案 /home/student/microtime/build-linux/> cat pxa270_rootfs.dat | ./mt-copy_from_data.sh 將 /student/microtime/ 下的rootfs資料夾整個刪除 /home/student/> tar -zxvf rootfs.tar.gz /home/student/microtime/> cp ./setup-rootfs/RM-033-04-401-setup-rootfs.tar.gz ./rootfs /home/student/microtime/rootfs> tar -zxvf RM-033-04-401-setup-rootfs.tar.gz /home/student/microtime/package/RM-char-app/> cp ./RM-char-app /home/student/microtime/rootfs/opt/microtime/RM-char-app/ /home/student/microtime/> cp /linux/drivers/char/creator-pxa270-char.ko /home/student/microtime/rootfs/lib/modules/2.6.15.3/ ------------------------------------------------------------------------------------------ 將核心燒入板子上 ------------------------------------------------------------------------------------------ SHELL> minicom 在倒數完前按下Enter UBoot> setenv ipaddr xxx.xxx.xxx.xxx 板子的IP UBoot> setenv serverip yyy.yyy.yyy.yyy 主機的網卡IP UBoot> setenv bootargs console=ttyS0,9600n8 root=/dev/nfs rw nfsroot=yyy.yyy.yyy.yyy:/usr/src/microtime/rootfs,v3 ip=xxx.xxx.xxx.xxx:yyy.yyy.yyy.yyy:192.168.0.1:255.255.255.0:: eth0:off mem=64M ether=aa:11:22:33:44:55 UBoot> setenv bootcmd run linux UBoot> saveenv UBoot> tftp a1100000 uImage UBoot> protect off 100000 47FFFF UBoot> erase 100000 47FFFF UBoot> cp.b a1100000 100000 200000 ------------------------------------------------------------------------------------------ 401實習 --驗証 ------------------------------------------------------------------------------------------ 核心燒入完成後按板上的Reset鍵,並進入linux... Creator/> cd /lib/modules/2.6.15.3/ Creator/> insmod creator-pxa270-char.ko Creator/> /opt/microtime/RM-char-app/RM-char-app 會出現四行字: Entry drv_char_open() Entry drv_char_ioctl() ...char ON... Entry drv_char_ioctl() ...char OFF... Entry drv_char_release() 則代表成功 ------------------------------------------------------------------------------------------ 406、405、404 實驗 --part2 ------------------------------------------------------------------------------------------ 離開minicom後 SHELL> cd /home/student/microtime/package/creator-pxa270-demo-1.0 SHELL> ./microtime_configure 此時 Creator PXA270 Demo 的執行檔 creator-pxa270-demo 產生在 /home/student/microtime/package/creator-pxa270-demo-1.0下 將下載下來的404_scripts.zip解壓縮到 /home/student/microtime/build-linux/ 並覆蓋原有的檔案 /home/student/microtime/build-linux/> cat pxa270_rootfs.dat | ./mt-copy_from_data.sh 將 /student/microtime/ 下的rootfs資料夾整個刪除 /home/student/> tar -zxvf rootfs.tar.gz /home/student/microtime/> cp ./setup-rootfs/RM-033-04-404-setup-rootfs.tar.gz ./rootfs /home/student/microtime/rootfs> tar -zxvf RM-033-04-404-setup-rootfs.tar.gz /home/student/microtime/> cp /linux/drivers/char/creator-pxa270-char.ko /home/student/microtime/rootfs/lib/modules/2.6.15.3/ /home/student/microtime/> cp /linux/drivers/char/creator-pxa270-lcd.ko /home/student/microtime/rootfs/lib/modules/2.6.15.3/ /home/student/microtime/> cp /linux/drivers/char/creator-pxa270-codec.ko /home/student/microtime/rootfs/lib/modules/2.6.15.3/ /home/student/microtime/> cp /linux/drivers/char/creator-pxa270-cmos.ko /home/student/microtime/rootfs/lib/modules/2.6.15.3/ /home/student/microtime/> cp /package/creator-pxa270-demo-1.0/creator-pxa270-demo /rootfs/opt/microtime/creator-pxa270-demo/ ------------------------------------------------------------------------------------------ 406、405、404 實驗 --驗証 ------------------------------------------------------------------------------------------ SHELL> minicom 在倒數完前按下Enter Creator/> cd /lib/modules/2.6.15.3/ Creator/> insmod creator-pxa270-lcd.ko Creator/> /opt/microtime/creator-pxa270-demo/creator-pxa270-demo –i xxx.xxx.xxx.xxx 板子的IP 若執行成功,則板上的LCD會出現選單可按,即代表成功 LCD上的選單如下: Test Prog V1.0 0:LED/DIP_SW 1:CCM-(Image) 2:CODEC Quit Test‘#’ Input Test Num :