第一篇:嵌入式畢業(yè)實(shí)習(xí)報(bào)告
嵌入式系統(tǒng) 畢業(yè)實(shí)習(xí)報(bào)告
學(xué)
院: 電子與電氣工程學(xué)院 專
業(yè): 電子信息工程 班
級(jí): 電子11201 學(xué)
號(hào): 1203251024 姓
名:
徐賢暢
嵌入式系統(tǒng)開發(fā)與應(yīng)用概述
在今日,嵌入式ARM 技術(shù)已經(jīng)成為了一門比較熱門的學(xué)科,無(wú)論是在電子類的什么領(lǐng)域,你都可以看到嵌入式ARM 的影子。如果你還停留在單片機(jī)級(jí)別的學(xué)習(xí),那么實(shí)際上你已經(jīng)落下時(shí)代腳步了,ARM 嵌入式技術(shù)正以幾何的倍數(shù)高速發(fā)展,它幾乎滲透到了幾乎你所想到的領(lǐng)域。由于嵌入式系統(tǒng)具有體積小、性能強(qiáng)、功耗低、可靠性高以及面向行業(yè)具體應(yīng)用等突出特征,目前已經(jīng)廣泛地應(yīng)用于軍事國(guó)防、消費(fèi)電子、信息家電、網(wǎng)絡(luò)通信、工業(yè)控制等各個(gè)領(lǐng)域。嵌入式的廣泛應(yīng)用可以說(shuō)是無(wú)所不在。linux系統(tǒng)
linux系統(tǒng)主要是由用戶空間和內(nèi)核空間再加上外部的硬件平臺(tái)構(gòu)成,用戶空間就是用戶應(yīng)用程序的運(yùn)行空間,主要包括兩方面的內(nèi)容:用戶應(yīng)用程序和GNU C Library(glibc)。而內(nèi)核空間有三方面的內(nèi)容,一是系統(tǒng)調(diào)用接口,它作為用戶空間和內(nèi)核空間相互轉(zhuǎn)移的一種方式,二是內(nèi)核空間,三是體系相關(guān)內(nèi)核代碼,在linux內(nèi)核代碼中,可以看到arch目錄下有許多子目錄,其中每一個(gè)子目錄代表一種硬件平臺(tái)。
而為什么要把linux系統(tǒng)劃分為用戶空間和內(nèi)核空間呢?主要是一旦用戶空間和內(nèi)核空間沒(méi)有分開,那用戶將擁有很大的權(quán)限去操控內(nèi)核或用戶應(yīng)用程序的崩潰將會(huì)造成系統(tǒng)的崩潰,而linux系統(tǒng)是利用cpu的模式分級(jí)來(lái)分別運(yùn)行用戶空間和內(nèi)核空間,這樣就可以使操作系統(tǒng)得到充分的保護(hù)。而現(xiàn)代的cpu通常實(shí)現(xiàn)了不同的工作模式,以ARM處理器為例實(shí)現(xiàn)了7種運(yùn)行模式,分別為:
1)用戶模式(usr):ARM微處理器正常程序執(zhí)行模式 2)系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù) 3)中斷模式(irq):用于通用的中斷處理
4)外部中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理
5)數(shù)據(jù)訪問(wèn)終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)
6)管理模式(svc):操作系統(tǒng)使用的保護(hù)模式
7)未定義指令中止模式(und):當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真
ARM微處理器的運(yùn)行模式可以通過(guò)軟件改變,也可以通過(guò)外部中斷或異常處理改變,除用戶模式外,其他模式都是非用戶模式或特權(quán)模式,除用戶模式和系統(tǒng)模式外,其他模式都是異常模式,常用于處理異常或中斷,以及需要訪問(wèn)受保護(hù)的系統(tǒng)資源等情況。
同時(shí)用戶空間和內(nèi)核空間是程序執(zhí)行的兩種不同狀態(tài),通過(guò)系統(tǒng)調(diào)用和硬件中斷去實(shí)現(xiàn)用戶空間到內(nèi)核空間的轉(zhuǎn)移,系統(tǒng)調(diào)用是主動(dòng)的,硬件中斷是被動(dòng)的,比如鍵盤按下或者串口中斷。
接下來(lái)說(shuō)說(shuō)linux的內(nèi)核架構(gòu),它主要是包含7大組成部分
1.內(nèi)存管理 內(nèi)存管理的主要作用是使多個(gè)進(jìn)程能安全高效的共享內(nèi)存區(qū)域,通常使用以下兩個(gè)手段:
①內(nèi)存映射:將物理內(nèi)存映射到虛擬內(nèi)存中,變有限為無(wú)限 ②有效管理:使用各種內(nèi)存管理算法(如伙伴算法),減少內(nèi)存浪費(fèi)
2.虛擬文件系統(tǒng) vfs隱藏了各種文件系統(tǒng)的具體細(xì)節(jié),為文件操作提供統(tǒng)一的接口
3.網(wǎng)絡(luò)協(xié)議棧 它為linux提供了完善豐富的網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)
4.進(jìn)程管理 進(jìn)程管理的重點(diǎn)是創(chuàng)建進(jìn)程、停止進(jìn)程,并控制它們之間的通信。進(jìn)程管理還包括控制活動(dòng)進(jìn)程如何共享cpu,即進(jìn)程調(diào)度。
5.設(shè)備驅(qū)動(dòng) 設(shè)備驅(qū)動(dòng)也是內(nèi)核的一部分,它不同于內(nèi)核的其他部件,并且獨(dú)立于內(nèi)核的其他部件,同時(shí)它是與設(shè)備交互的唯一模塊,通常由第三方廠商開發(fā),一個(gè)驅(qū)動(dòng)程序不與其他驅(qū)動(dòng)程序交互;內(nèi)核與驅(qū)動(dòng)程序之間也僅通過(guò)一個(gè)嚴(yán)格定義的接口交互。
6.系統(tǒng)調(diào)用接口 SCI層為用戶空間提供了一套標(biāo)準(zhǔn)的系統(tǒng)調(diào)用函數(shù)來(lái)訪問(wèn)Linux內(nèi)核,搭起了用戶空間到內(nèi)核空間的橋梁。
7.體系相關(guān)部分
Linux內(nèi)核源代碼采用樹形結(jié)構(gòu)進(jìn)行組織,非常合理地把功能相關(guān)的文件都放在同一個(gè)子目錄下,使得程序更具可讀性。下面介紹下這些目錄的組成 arch目錄
arch是architecture的縮寫。內(nèi)核所支持的每種CPU體系,在該目錄下都有對(duì)應(yīng)的子目錄。每個(gè)CPU的子目錄,又進(jìn)一步分解為boot,mm,kernel等子目錄,分別包含控制系統(tǒng)引導(dǎo),內(nèi)存管理,系統(tǒng)調(diào)用等。其下子目錄有
|--x86 /*英特爾cpu及與之相兼容體系結(jié)構(gòu)的子目錄*/ | |--boot /*引導(dǎo)程序*/
| | |--compressed /*內(nèi)核解壓縮*/ | |--tools /*生成壓縮內(nèi)核映像的程序*/
| |--kernel /*相關(guān)內(nèi)核特性實(shí)現(xiàn)方式,如信號(hào)處理、時(shí)鐘處理*/ | |--lib /*硬件相關(guān)工具函數(shù)*/ block目錄
部分塊設(shè)備驅(qū)動(dòng)程序 crypto目錄
加密、壓縮、CRC校驗(yàn)算法 documentation
內(nèi)核的文檔 drivers目錄(重點(diǎn))
設(shè)備驅(qū)動(dòng)程序 fs目錄
存放各種文件系統(tǒng)的實(shí)現(xiàn)代碼。每個(gè)子目錄對(duì)應(yīng)一種文件系統(tǒng)的實(shí)現(xiàn),公用的源程序用于實(shí)現(xiàn)虛擬文件系統(tǒng)vfs。| |--devpts /* /dev/pts虛擬文件系統(tǒng)*/ | |--ext2 /*第二擴(kuò)展文件系統(tǒng)*/ | |--fat /*MS的fat32文件系統(tǒng)*/
| |--isofs /*ISO9660光盤cd-rom上的文件系統(tǒng)*/ include目錄
內(nèi)核所需要的頭文件。與平臺(tái)無(wú)關(guān)的頭文件在include/linux
子目錄下,與平臺(tái)相關(guān)的頭文件則放在相應(yīng)的子目錄中。init目錄
內(nèi)核初始化代碼 ipc目錄
進(jìn)程間通信的實(shí)現(xiàn)代碼 kernel目錄
Linux大多數(shù)關(guān)鍵的核心功能都是在這個(gè)目錄實(shí)現(xiàn)。(調(diào)度程序,進(jìn)程控制,模塊化)
lib目錄
庫(kù)文件代碼 mm目錄
mm目錄中的文件用于實(shí)現(xiàn)內(nèi)存管理中與體系結(jié)構(gòu)無(wú)關(guān)的部分(與體系結(jié)構(gòu)相關(guān)的部分在哪里實(shí)現(xiàn)?arch)
net目錄
網(wǎng)絡(luò)協(xié)議的實(shí)現(xiàn)代碼
| |--802 /*802無(wú)線通訊協(xié)議核心支持代碼*/ | |--appletalk /*與蘋果系統(tǒng)連網(wǎng)的協(xié)議*/ | |--ax25 /*AX25無(wú)線INTERNET協(xié)議*/ | |--bridge /*橋接設(shè)備*/
| |--ipv4 /*IP協(xié)議族V4版32位尋址模式*/ | |--ipv6 /*IP協(xié)議族V6版*/ samples
一些內(nèi)核編程的范例 scripts
配置內(nèi)核的腳本 security
SElinux的模塊 sound
音頻設(shè)備的驅(qū)動(dòng)程序 usr
cpio命令實(shí)現(xiàn) virt
內(nèi)核虛擬機(jī)
Linux內(nèi)核的配置與編譯
Linux內(nèi)核具有可定制的優(yōu)點(diǎn),配置內(nèi)核的目的是裁剪掉不必要的文件和目錄,獲得一個(gè)最簡(jiǎn)單的又能滿足用戶開發(fā)的操作系統(tǒng),以解除嵌入式開發(fā)過(guò)程中所遇到的存儲(chǔ)空間有限的困擾。內(nèi)核配置與編譯的具體步驟如下: 1.清除臨時(shí)文件、中間文件和配置文件
1)make clean
Remove most generated files but keep the config即清除大部分生成的文件但保留配置文件
2)make mrproper
Remove all generated files + config files即清除所有生成的文件還有配置文件
3)make distclean
Mrproper + remove editor backup and patch files即實(shí)現(xiàn)make mrproper命令的同時(shí)刪除編輯器備份文件和補(bǔ)丁文件
2.確定目標(biāo)系統(tǒng)的軟硬件配置情況,比如cpu類型,網(wǎng)卡型號(hào),所需支持的網(wǎng)絡(luò)協(xié)議等。
3.使用如下命令之一配置內(nèi)核:
1)make config:基于文本模式的交互式配置
2)make menuconfig:基于文本模式的菜單型配置
3)make oldconfig:使用已有的配置文件(.config),但是會(huì)詢問(wèn)新增的配置選項(xiàng)
4)make xconfig:圖形化的配置(需安裝圖形化系統(tǒng))
Make menuconfig是最為常用的內(nèi)核配置方式 如果一個(gè).config文件已經(jīng)存在,它將使用該文件設(shè)置那些默認(rèn)的值 4.編譯內(nèi)核
編譯內(nèi)核通常也需要幾個(gè)步驟,一是清除以前編譯通過(guò)的殘留文件;二是編譯內(nèi)核image文件和可加載模塊;三是安裝模塊。下面是編譯內(nèi)核的具體步驟。
①make dep 命令用在內(nèi)核2.4或之前,用于建立源文件之間的依賴關(guān)系,在執(zhí)行內(nèi)核配置命令之后使用,不過(guò)在2.6內(nèi)核中已經(jīng)取消該命令,該功能由內(nèi)核配置命令實(shí)現(xiàn)。
②make clean 命令用于刪除前面留下來(lái)的中間文件,該命令不會(huì)刪除.config等配置文件。這個(gè)步驟是可選的,它的目的是清除原先編譯過(guò)而殘留的.com和.o(obj文件)。如果是剛下載的源代碼,那么這一步就可以省略了,但是如果已經(jīng)編譯多次內(nèi)核,這一步是必要的,不然后面可能會(huì)出現(xiàn)很多莫名其妙的小問(wèn)題。③make zImage命令用于編譯生成壓縮形式的內(nèi)核鏡像,當(dāng)編譯成功后,就會(huì)在archarmboot目錄下生成zImage文件,大小一般為幾百KB。對(duì)于嵌入式Linux內(nèi)核而言,直接將生成的zImage下載到嵌入式目標(biāo)板的flash中即可。對(duì)于較大的內(nèi)核,如果用make zImage編譯,系統(tǒng)會(huì)提示使用make bzImage命令來(lái)編譯,bzImage是big zImage的縮寫,可用于生成較大的壓縮內(nèi)核,比如桌面Linux系統(tǒng)內(nèi)核。
④在配置菜單的過(guò)程中,有些選項(xiàng)被選擇為模塊的,即選項(xiàng)前為[M],并且在回答Enable loadable module support(CONFIG_MODULES)時(shí)選了Yes的,則接下來(lái)就還要用命令make modules 來(lái)編譯這些可加載模塊,并用make modules_install將make modules生成的模塊文件復(fù)制到相應(yīng)目錄,桌面Linux內(nèi)核一般是在/lib/modules目錄下。⑤制作init ramdisk
mkinitrd initrd-$version $version 例:
mkinitrd initrd-2.6.29 2.6.29
$version 可以通過(guò)查詢/lib/modules下的目錄得到
Ramdisk是將一部分固定大小的內(nèi)存當(dāng)做分區(qū)來(lái)使用。它并非一個(gè)實(shí)際的文件系統(tǒng),二是一種將實(shí)際的文件系統(tǒng)裝入內(nèi)存的機(jī)制,并且可以作為根文件系統(tǒng)。將一些經(jīng)常被訪問(wèn)而又不會(huì)更改的文件(如只讀的根文件系統(tǒng))通過(guò)ramdisk放在內(nèi)存中,可以明顯的提高系統(tǒng)的性能。在linux的啟動(dòng)階段,initrd提供了一套機(jī)制,可以將內(nèi)核映像和根文件系統(tǒng)一起載入內(nèi)存。⑥cp arch/x86/boot/bzImage /boot/vmlinuz-$version
$version 為所編譯的內(nèi)核版本號(hào)
(拷貝initrd-2.6.29到/boot下,將arch/x86/boot/bzImage更名為vmlinuz-2.6.29移動(dòng)到/boot下)
⑦修改/etc/grub.conf 或者/etc/lilo.conf(GNU GRUB(簡(jiǎn)稱 GRUB)是一個(gè)來(lái)自GNU項(xiàng)目的多操作系統(tǒng)啟動(dòng)程序。GRUB是多啟動(dòng)規(guī)范的實(shí)現(xiàn),它允許用戶可以在計(jì)算機(jī)內(nèi)同時(shí)擁有多個(gè)操作系統(tǒng),并在計(jì)算機(jī)啟動(dòng)時(shí)選擇希望運(yùn)行的操作系統(tǒng)。GRUB可用于選擇操作系統(tǒng)分區(qū)上的不同內(nèi)核,也可用于向這些內(nèi)核傳遞啟動(dòng)參數(shù)。)這時(shí)重啟Linux操作系統(tǒng),在進(jìn)入內(nèi)核時(shí)按下回車鍵進(jìn)入內(nèi)核選擇界面,選擇自己編譯的內(nèi)核,即可進(jìn)入自己編譯的內(nèi)核的操作系統(tǒng),用uname-r 可以查看當(dāng)前內(nèi)核版本。
嵌入式linux文件系統(tǒng)的制作與移植
文件系統(tǒng)包含兩個(gè)層次的含義: 1.按照固定格式組織的目錄與文件
2.在特定的存儲(chǔ)介質(zhì)上管理這些目錄和文件需要的數(shù)據(jù)
當(dāng)我們?cè)趌inux下輸入ls / 的時(shí)候,見(jiàn)到的目錄結(jié)構(gòu)以及這些目錄下的內(nèi)容都大同小異,這是因?yàn)樗械膌inux發(fā)行版在對(duì)根文件系統(tǒng)的布局上都遵循FHS(Filesystem Hierarchy Standard)標(biāo)準(zhǔn)的建議規(guī)定。
各個(gè)目錄名稱及其存放的內(nèi)容:
/bin 必備的用戶命令,例如ls、cp等
/sbin 必備的系統(tǒng)管理員命令,例如ifconfig、reboot等 /dev 設(shè)備文件,例如mtdblock0、tty1等
/etc 系統(tǒng)配置文件,包括啟動(dòng)文件,例如inittab等 /lib 必要的鏈接庫(kù),例如C鏈接庫(kù)、內(nèi)核模塊 /home 普通用戶主目錄 /root root用戶主目錄
/usr/bin 非必備的用戶程序,例如find、du等
/usr/sbin 非必備的管理員程序,例如chroot、inetd等 /usr/lib 庫(kù)文件
/var 守護(hù)程序和工具程序所存放的可變,例如日志文件
/proc 用來(lái)提供內(nèi)核與進(jìn)程信息的虛擬文件系統(tǒng),由內(nèi)核自動(dòng)生成目錄下的內(nèi)容
/sys 用來(lái)提供內(nèi)核與設(shè)備信息的虛擬文件系統(tǒng),由內(nèi)核自動(dòng)生成目錄下的內(nèi)容
/mnt 文件系統(tǒng)掛接點(diǎn),用于臨時(shí)安裝文件系統(tǒng)
/tmp 臨時(shí)性的文件,重啟后將自動(dòng)清除
根文件系統(tǒng)是Linux啟動(dòng)時(shí)使用的第一個(gè)文件系統(tǒng)。沒(méi)有根文件系統(tǒng),Linux將無(wú)法正常啟動(dòng)。根文件系統(tǒng)由一系列目錄組成,目錄中包含了應(yīng)用程序、C庫(kù)、以及相關(guān)的配置文件。
那如何制作一個(gè)根文件系統(tǒng)呢?主要包括以下步驟:
1、創(chuàng)建根文件系統(tǒng)的目錄
如:mkdir bin sbin lib etc dev proc sys usr mnt tmp var
2、創(chuàng)建設(shè)備文件
cd dev
mknod-m 666 console c 5 1 mknod-m 666 null c 1 3 cd..3、安裝/etc
tar-xzvf etc.tar.gz /xxx/rootfs/etc
4、配置busybox
進(jìn)入busybox目錄執(zhí)行 make menuconfig
進(jìn)入 Busybox Settings build Options->
選中 “Build busybox as a static binary”, 靜態(tài)鏈接 Cross Compiler prefix(arm-linux-)
Installation Options->
選中 “Don‘t use /usr”, 選中該項(xiàng)可以避免busybox被安裝到宿主系統(tǒng)的/usr目錄下,破壞宿主系統(tǒng)
Busybox Installation Prefix(/nfsroot/rootfs)該選項(xiàng)表明編譯后的busybox的安裝位置
7、編譯、安裝busybox
make ARCH=arm CROSS_COMPILE=arm-linux-
make install
前提是系統(tǒng)中安裝好了交叉編譯工具arm-linux-gcc
至此一個(gè)粗略的根文件系統(tǒng)制作完成,下面就需要移植到開發(fā)板中。我們知道ARM嵌入式系統(tǒng)的組成為: 1)bootloader 引導(dǎo)加載器 2)kernel 操作系統(tǒng)內(nèi)核
3)rootfs 根文件系統(tǒng)(帶GUI,QTopia)
在系統(tǒng)加載完內(nèi)核后就會(huì)去啟動(dòng)根文件系統(tǒng),而啟動(dòng)根文件系統(tǒng)這個(gè)過(guò)程被bootargs這個(gè)參數(shù)控制,所以我們需要修改這個(gè)參數(shù)以使系統(tǒng)運(yùn)行我們的根文件系統(tǒng),但這之前我們需要在宿主機(jī)上將根文件系統(tǒng)共享出來(lái)。我們先在linux系統(tǒng)中配置好nfs服務(wù)器,并且在設(shè)置配置文件exports將根文件系統(tǒng)所在路徑共享出來(lái),接下來(lái)在ARM開發(fā)板啟動(dòng)時(shí)控制超級(jí)終端進(jìn)入shell界面,在這里輸入命令print會(huì)顯示開發(fā)板啟動(dòng)的配置信息,通過(guò)set命令我們可以設(shè)置bootargs 參數(shù)為: console=ttySAC0 root=/dev/nfs
nfsroot=192.168.0.113:/mynfs/rootfs ip=192.168.0.1:192.168.0.113:192.168.0.1:255.255.255.0:mini6410.arm9.net:eth0:off
設(shè)置完成后用save命令保存設(shè)置,輸入reset復(fù)位命令,ARM系統(tǒng)重啟,重啟完成后我們看到ARM系統(tǒng)的根文件系統(tǒng)就是我們自己制作的根文件系統(tǒng)。
實(shí)習(xí)體會(huì)
在嵌入式系統(tǒng)中,除了課本上的基礎(chǔ)知識(shí)外,還學(xué)會(huì)了軟件編程的基本思路,掌握了液晶屏的使用及其電路設(shè)計(jì)方法;掌握有關(guān)音頻處理的基礎(chǔ)知識(shí);掌握液晶顯示文本及圖形的方法與程序設(shè)計(jì)。
通過(guò)這次設(shè)計(jì),掌握了液晶顯示實(shí)驗(yàn)、μC/OS-II移植、μC/OS-IILCD顯示的工作原理及串口通信實(shí)驗(yàn)的工作過(guò)程,學(xué)會(huì)了使用仿真軟件Embest EduKit-IV實(shí)驗(yàn)平臺(tái)及ULINK2仿真器套件,并學(xué)會(huì)通過(guò)應(yīng)用軟件仿真來(lái)實(shí)現(xiàn)各種通信系統(tǒng)的設(shè)計(jì),對(duì)以后的學(xué)習(xí)和工作都起到了一定的作用,加強(qiáng)了動(dòng)手能力和學(xué)業(yè)技能。雖然花了很長(zhǎng)時(shí)間編寫軟件程序設(shè)計(jì),但這一切還是理論上的。希望學(xué)校能提供機(jī)會(huì)和條件,讓我們能夠去真正地將理論和實(shí)踐相結(jié)合。通過(guò)這次程序,感覺(jué)自己所掌握的知識(shí)是那么的有限,還有許多需要改進(jìn)和不足的地方,同時(shí)也幫助了我怎樣學(xué)好這門課程,增加了我對(duì)這門學(xué)科的興趣??傮w來(lái)說(shuō),這次實(shí)習(xí)我受益匪淺。在摸索該如何設(shè)計(jì)電路使之實(shí)現(xiàn)所需功能的過(guò)程中特別有趣,培養(yǎng)了我的設(shè)計(jì)思維,增加了實(shí)際操作能力。在讓我體會(huì)到了設(shè)計(jì)電路的艱辛的同時(shí),更讓我體會(huì)到成功的喜悅和快樂(lè)。通過(guò)這次實(shí)習(xí)通信系統(tǒng)的設(shè)計(jì),使我更加清楚以后的發(fā)展及學(xué)習(xí)的方向。
第二篇:11嵌入式畢業(yè)實(shí)習(xí)分組
2014屆畢業(yè)生畢業(yè)實(shí)習(xí)分組
(嵌入式技術(shù)與應(yīng)用專業(yè))
一、實(shí)習(xí)分組
1.實(shí)習(xí)班級(jí):11嵌入式(第一組人數(shù):14)
指導(dǎo)教師: ***
聯(lián)系方式: ***
E-mail: ***
QQ:***
組長(zhǎng):***
組員:***
2.實(shí)習(xí)班級(jí):11嵌入式(第二組人數(shù):13)
指導(dǎo)教師: ***
聯(lián)系方式: ***
E-mail:******
QQ:***
組長(zhǎng): ***
組員:***
二、實(shí)習(xí)期間需完成的實(shí)習(xí)報(bào)告
根據(jù)專業(yè)教學(xué)計(jì)劃,學(xué)生在實(shí)習(xí)過(guò)程中必須針對(duì)以下課程提交具有專題內(nèi)容的實(shí)習(xí)報(bào)告。
⒈課程
(1)必修課程1門
嵌入式軟件開發(fā)項(xiàng)目。
(2)二選一課程
嵌入式系統(tǒng)設(shè)計(jì)項(xiàng)目、嵌入式應(yīng)用開發(fā)項(xiàng)目(選取其中一門)。
2.要求
學(xué)生應(yīng)在崗位實(shí)踐過(guò)程中,注意關(guān)注與各課程相關(guān)的專業(yè)知識(shí)、典型技術(shù)應(yīng)用模式與典型工作項(xiàng)目,認(rèn)真搜集、整理資料文檔,注意與指導(dǎo)教師保持聯(lián)系,嚴(yán)格按具體實(shí)習(xí)安排,完成課程實(shí)訓(xùn)報(bào)告。
注:相關(guān)指導(dǎo)文檔隨后下發(fā)。
三、畢業(yè)設(shè)計(jì)
畢業(yè)設(shè)計(jì)安排及具體要求將在畢業(yè)設(shè)計(jì)前下發(fā),屆時(shí)本院指導(dǎo)教師與基地指導(dǎo)教師配合完成畢業(yè)設(shè)計(jì)指導(dǎo)工作。
第三篇:暑假嵌入式實(shí)習(xí)報(bào)告
一、嵌入式的概述:
隨著信息化技術(shù)的發(fā)展和數(shù)字化產(chǎn)品的普及,以計(jì)算機(jī)技術(shù)、芯片技術(shù)和軟件技術(shù)為核心的嵌入式系統(tǒng)再度成為當(dāng)前研究和應(yīng)用的熱點(diǎn),通信、計(jì)算機(jī)、消費(fèi)電子技術(shù)(3C)合一的趨勢(shì)正在逐步形成,無(wú)所不在的網(wǎng)絡(luò)和無(wú)所不在的計(jì)算(everything connecting, everywhere computing)正在將人類帶入一個(gè)嶄新的信息社會(huì)。
二、實(shí)習(xí)目的學(xué)習(xí)和了解了嵌入式在生活中的重要作用和發(fā)展過(guò)程,熟練掌握ARM硬件體系結(jié)構(gòu),熟悉linux下的嵌入式編程流程,積累自己的軟件編寫經(jīng)驗(yàn),能夠參與并實(shí)現(xiàn)一個(gè)真實(shí)和完整的嵌入式項(xiàng)目,為今后的學(xué)習(xí)和將從事的技術(shù)工作打下堅(jiān)實(shí)的基礎(chǔ)
三、實(shí)習(xí)設(shè)備:
1、硬件:Embest EduKit-IV平臺(tái),ULINK2仿真器套件,PC機(jī);
2、軟件:μVision IDE for ARM集成開發(fā)環(huán)境,Windows 98/2000/NT/XP。
四、實(shí)習(xí)內(nèi)容
第一階段Linux操作和編程基礎(chǔ)
主要介紹Linux的基本命令和基礎(chǔ)編程知識(shí),包括Linux的文件操作和目錄操作命令,VI編輯器,GCC編譯器,GDB調(diào)試器和Make項(xiàng)目管理工具等知識(shí)。
第二階段 嵌入式C語(yǔ)言編程基礎(chǔ)
主要介紹在嵌入式開發(fā)編程中C語(yǔ)言的重要概念和編程技巧中的重點(diǎn)難點(diǎn),以復(fù)習(xí)串講和實(shí)例分析的形式,重點(diǎn)介紹包括函數(shù)與程序結(jié)構(gòu),指針、數(shù)組和鏈表,庫(kù)函數(shù)的使用等知識(shí)。
第三階段Linux上C強(qiáng)化編程訓(xùn)練
主要包括整數(shù)算法訓(xùn)練,遞歸和棧編程訓(xùn)練,位操作訓(xùn)練,指針訓(xùn)練,字符串訓(xùn)練和常用C庫(kù)函數(shù)編程接口實(shí)踐,強(qiáng)化學(xué)員對(duì)Linux下基本編程開發(fā)的理解和編碼調(diào)試的能力。
第四階段 Linux環(huán)境高級(jí)編程及項(xiàng)目開發(fā)編程實(shí)踐主要包括系統(tǒng)編程(信號(hào)/系統(tǒng)調(diào)用/管道/FIFO/消息隊(duì)列/共享內(nèi)存等),文件I/O編程(文件描述符/文件讀寫接口/原子操作/阻塞與非阻塞IO等),多任務(wù)和多線程編程(進(jìn)程標(biāo)識(shí)/ 用戶標(biāo)識(shí)/fork與vfork/多線程概念/線程同步等),網(wǎng)絡(luò)編程(網(wǎng)絡(luò)基本概念/套接口編程/網(wǎng)絡(luò)字節(jié)次序/Client/Server結(jié)構(gòu)/UDP編程);掌握Linux下Socket編程的開發(fā)流程,熟悉網(wǎng)絡(luò)編程的調(diào)用接口函數(shù)和相關(guān)數(shù)據(jù)結(jié)構(gòu),使學(xué)員初步具備在Linux上進(jìn)行系統(tǒng)編程開發(fā)的能力。同時(shí)綜合之前所學(xué)內(nèi)容和編程技術(shù),以小組為單位進(jìn)行一個(gè)團(tuán)隊(duì)合作項(xiàng)目的開發(fā),考核內(nèi)容包括文件I/O編程,多線程編程,網(wǎng)絡(luò)編程和項(xiàng)目文檔編寫。
第五階段嵌入式處理器體系結(jié)構(gòu)及編程實(shí)踐
主要介紹ARM體系結(jié)構(gòu)及其基本編程知識(shí),包括指令分類,尋址方式、指令集、存儲(chǔ)系統(tǒng)、異常中斷處理、匯編語(yǔ)言以及CC++和匯編語(yǔ)言的混合編程等知識(shí)。同時(shí)結(jié)合ARM嵌入式開發(fā)板硬件設(shè)計(jì)原理和基本硬件設(shè)計(jì)流程,分析各種外設(shè)的工作原理和驅(qū)動(dòng)機(jī)制,并自己動(dòng)手實(shí)踐完成一個(gè)ARM開發(fā)板上的編程大作業(yè)。
第六階段嵌入式Linux開發(fā)基礎(chǔ)及高級(jí)應(yīng)用
主要介紹嵌入式Linux開發(fā)應(yīng)用程序的基本流程和知識(shí),包括嵌入式Linux基本概念和開發(fā)流程、Bootloader工作原理、內(nèi)核裁減配置和交叉編譯、根文件系統(tǒng)制作、網(wǎng)絡(luò)編程以及圖形界面和數(shù)據(jù)庫(kù)開發(fā)等知識(shí)。同時(shí)獨(dú)立完成一個(gè)基于嵌入式Linux GUI的應(yīng)用編程大作業(yè)。
第七階段嵌入式 Linux驅(qū)動(dòng)理論及驅(qū)動(dòng)程序開發(fā)實(shí)踐
主要介紹嵌入式Linux上驅(qū)動(dòng)程序開發(fā)規(guī)范,包括設(shè)備驅(qū)動(dòng)程序概念、字符設(shè)備驅(qū)動(dòng)程序、塊設(shè)備與網(wǎng)絡(luò)設(shè)備、網(wǎng)卡驅(qū)動(dòng)以及常用嵌入式設(shè)備驅(qū)動(dòng)開發(fā)等知識(shí)。同時(shí)獨(dú)立實(shí)現(xiàn)兩種嵌入式設(shè)備驅(qū)動(dòng)程序的編寫,包括驅(qū)動(dòng)模塊的調(diào)試和加載以及完整的項(xiàng)目開發(fā)文檔的編寫。
第八階段嵌入式Linux項(xiàng)目團(tuán)隊(duì)開發(fā)實(shí)踐鍛煉主要包括設(shè)計(jì)并實(shí)現(xiàn)一個(gè)真實(shí)和完整的嵌入式項(xiàng)目的開發(fā)流程,涉及到數(shù)據(jù)采集、網(wǎng)絡(luò)通訊、圖形用戶界面顯示以及嵌入式數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)等多種嵌入式Linux編程技術(shù)。要求學(xué)員建立起團(tuán)隊(duì)開發(fā)和協(xié)同工作的企業(yè)項(xiàng)目開發(fā)模式的概念和流程,強(qiáng)化學(xué)員對(duì)編寫項(xiàng)目概要設(shè)計(jì)文檔和詳細(xì)設(shè)計(jì)文檔的理解,為就業(yè)前的職業(yè)技能和素質(zhì)訓(xùn)練做好充分準(zhǔn)備。
五、實(shí)習(xí)心得:
通過(guò)本次實(shí)習(xí)對(duì)ARM9嵌入式系統(tǒng)設(shè)計(jì)有了更深一步的了解,知道了如何使用uc/os軟件進(jìn)行編程編譯,并下載到實(shí)驗(yàn)箱中,使圖像、聲音、文字得以顯示,學(xué)會(huì)了轉(zhuǎn)換IIS聲音文件的工具:ProcBmp.exe和轉(zhuǎn)換bmp圖片文件的工具:Image2Lcd,使其能夠在程序中運(yùn)行。更重要的是學(xué)會(huì)了如何解決在實(shí)習(xí)中遇到的各種問(wèn)題并很好的解決,為以后使用該軟件進(jìn)行編程打下了堅(jiān)實(shí)的基礎(chǔ),也培養(yǎng)了自己對(duì)該軟件的興趣,大四的學(xué)生正面臨找工作的壓力,通過(guò)這次實(shí)習(xí)積累了經(jīng)驗(yàn),對(duì)找工作也起到了輔助的作用,希望能夠有機(jī)會(huì)對(duì)該軟件進(jìn)行進(jìn)一步的學(xué)習(xí)研究。最后感謝指導(dǎo)老師和同學(xué)們的細(xì)心幫助。
第四篇:嵌入式系統(tǒng)實(shí)習(xí)報(bào)告
一、嵌入式系統(tǒng)開發(fā)與應(yīng)用概述
在今日,嵌入式ARM 技術(shù)已經(jīng)成為了一門比較熱門的學(xué)科,無(wú)論是在電子類的什么領(lǐng)域,你都可以看到嵌入式ARM 的影子。如果你還停留在單片機(jī)級(jí)別的學(xué)習(xí),那么實(shí)際上你已經(jīng)落下時(shí)代腳步了,ARM 嵌入式技術(shù)正以幾何的倍數(shù)高速發(fā)展,它幾乎滲透到了幾乎你所想到的領(lǐng)域。本章節(jié)就是將你領(lǐng)入ARM 的學(xué)習(xí)大門,開始嵌入式開發(fā)之旅。以嵌入式計(jì)算機(jī)為技術(shù)核心的嵌入式系統(tǒng)是繼網(wǎng)絡(luò)技術(shù)之后,又一個(gè)IT領(lǐng)域新的技術(shù)發(fā)展方向。由于嵌入式系統(tǒng)具有體積小、性能強(qiáng)、功耗低、可靠性高以及面向行業(yè)具體應(yīng)用等突出特征,目前已經(jīng)廣泛地應(yīng)用于軍事國(guó)防、消費(fèi)電子、信息家電、網(wǎng)絡(luò)通信、工業(yè)控制等各個(gè)領(lǐng)域。嵌入式的廣泛應(yīng)用可以說(shuō)是無(wú)所不在。
嵌入式微處理器技術(shù)的基礎(chǔ)是通用計(jì)算機(jī)技術(shù)?,F(xiàn)在許多嵌入式處理器也是從早期的pC 機(jī)的應(yīng)用發(fā)展演化過(guò)來(lái)的,如早期pC 諸如TRS-80、Apple II 和所用的Z80 和6502 處理器,至今仍為低 端的嵌入式應(yīng)用。在應(yīng)用中,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優(yōu)點(diǎn)。嵌入式處理器目前主要有Am186/88、386EX、SC-400、power pC、68000、MIpS、ARM 等系列。
在早期實(shí)際的嵌入式應(yīng)用中,芯片選擇時(shí)往往以某一種微處理器內(nèi)核為核心,在芯片內(nèi)部集成必要的ROM/EpROM/Flash/EEpROM、SRAM、接口總線及總線控制邏輯、定時(shí)/計(jì)數(shù)器、WatchDog、I/O、串行口、脈寬調(diào)制輸出、A/D、D/A 等各種必要的功能和外設(shè)。
二、實(shí)習(xí)設(shè)備
硬件:Embest EduKit-IV實(shí)驗(yàn)平臺(tái)、ULINK2仿真器套件、pC機(jī)
軟件:μVision IDE for ARM集成開發(fā)環(huán)境、Windows 98/2000/NT/Xp
三、實(shí)習(xí)目的1.初步掌握液晶屏的使用及其電路設(shè)計(jì)方法;掌握S3C2410X處理器的LCD控制器的使用;掌握通過(guò)任務(wù)調(diào)用的方法把液晶顯示函數(shù)添加到uC/OS-II中;通過(guò)實(shí)驗(yàn)掌握液晶顯示文本及圖形的方法與程序設(shè)計(jì)。
2.了解S3C2410X處理器UART相關(guān)控制寄存器的使用; 熟悉ARM處理器系統(tǒng)硬件電路中UART接口的設(shè)計(jì)方法:掌握ARM處理器串行通信的軟件編程方法。
3.掌握有關(guān)音頻處理的基礎(chǔ)知識(shí);通過(guò)實(shí)驗(yàn)了解IIS音頻接口的工作原理;通過(guò)實(shí)驗(yàn)掌握對(duì)處理器S3C2410X中IIS模塊電路的控制方法;通過(guò)實(shí)驗(yàn)掌握對(duì)常用IIS接口音頻芯片的控制方法。
4.了解μC/OS-II移植條件和內(nèi)核基本結(jié)構(gòu);掌握將μC/OS-II內(nèi)核移植到ARM9處理器上的方法和步驟。
四、實(shí)習(xí)要求
通過(guò)對(duì)μC/OS-II移植實(shí)驗(yàn)、μC/OS-II LCD顯示實(shí)驗(yàn)、串口通信實(shí)驗(yàn)、IIS音頻實(shí)驗(yàn)、液晶顯示實(shí)驗(yàn)的學(xué)習(xí),并將各部分內(nèi)容合并,最終得出實(shí)習(xí)結(jié)果,實(shí)習(xí)要求在鍵盤上輸入學(xué)號(hào),在液晶顯示屏上顯示相應(yīng)的學(xué)生信息。學(xué)生信息包括顯示每個(gè)人的照片和姓名系別等,并用鍵控設(shè)置學(xué)生輸出的順序,輸入學(xué)號(hào)就顯示那個(gè)學(xué)生的信息,然后過(guò)一段時(shí)間就順序循環(huán)播放。
移植μC/OS-II內(nèi)核到ARM處理器S3C2410,在IDE中觀察其運(yùn)行狀況編寫S3C2410X處理器的串口通信程序;監(jiān)視串行口UART1動(dòng)作;將從UART1接收到的字符串回送顯示。將從UART1接收到的字符串回送顯示。
通過(guò)使用Embest EduKit-IV實(shí)驗(yàn)板的彩色液晶屏(800*480)進(jìn)行電路設(shè)計(jì),掌握液晶屏作為人機(jī)接口界面的設(shè)計(jì)方法,并編寫任務(wù)函數(shù)在uC/OS-II系統(tǒng)中實(shí)現(xiàn)位圖顯示。在uC/OS-II中建立五個(gè)任務(wù)Tast1和Tast2,其中Tast1順序熄滅四個(gè)LED,延遲一會(huì)在順序點(diǎn)亮四個(gè)LED。Tast2在LCD屏幕上循環(huán)顯示三幅圖片,并打印一些文字信息和背景音樂(lè)。過(guò)使用Embest EduKit-III實(shí)驗(yàn)板的256 色彩色液晶屏(320x240)進(jìn)行電路設(shè)計(jì),掌握液晶屏作為人機(jī)接口界面的設(shè)計(jì)方法,并編寫程序?qū)崿F(xiàn):畫出多個(gè)矩形框;顯示ASCII字符;顯示漢字字符;顯示彩色位圖。
五、實(shí)習(xí)步驟
1.準(zhǔn)備實(shí)驗(yàn)環(huán)境
使用ULINK2仿真器連接Embest EduKit-IV實(shí)驗(yàn)平臺(tái)的主板JTAG接口;使用Embest EduKit-IV實(shí)驗(yàn)平臺(tái)附帶的交叉串口線,連接實(shí)驗(yàn)平臺(tái)主板上的COM2和pC機(jī)的串口(一般pC只有一個(gè)串口,如果有多個(gè)請(qǐng)自行選擇,筆記本沒(méi)有串口設(shè)備的可購(gòu)買USB轉(zhuǎn)串口適配器擴(kuò)充);使用Embest EduKit-IV實(shí)驗(yàn)平臺(tái)附帶的電源適配器,連接實(shí)驗(yàn)平臺(tái)主板上的電源接口。
2.串口接收設(shè)置
在pC機(jī)上運(yùn)行windows自帶的超級(jí)終端串口通信程序,或者使用實(shí)驗(yàn)平臺(tái)附帶光盤內(nèi)設(shè)置好了的超級(jí)終端,設(shè)置超級(jí)終端:波特率115200、1位停止位、無(wú)校驗(yàn)位、無(wú)硬件流控制,或者使用其它串口通信程序。(注:超級(jí)終端串口的選擇根據(jù)用戶的pC串口硬件不同,請(qǐng)自行選擇,如果pC機(jī)只有一個(gè)串口,一般是COM1)
3.打開實(shí)驗(yàn)例程
1)打開實(shí)驗(yàn)程序
2)運(yùn)行μVision IDE for ARM軟件
3)默認(rèn)打開的工程在源碼編輯窗口會(huì)顯示實(shí)驗(yàn)例程的說(shuō)明文件readme.txt,詳細(xì)閱讀并理解實(shí)驗(yàn)內(nèi)容。
4)工程提供了兩種運(yùn)行方式:一是下載到SDRAM中調(diào)試運(yùn)行,二是固化到Nor Flash中運(yùn)行。用戶可以在工具欄Select Target下拉框中選擇在RAM中調(diào)試運(yùn)行還是固化Flash中運(yùn)行。下面實(shí)驗(yàn)將介紹下載到SDRAM中調(diào)試運(yùn)行,所以我們?cè)赟elect Target下拉框中選擇UART_Test IN RAM。
5)接下來(lái)開始編譯鏈接工程,在菜單欄“projiet”選擇“Build target”或者“Rebuild all target files”編譯整個(gè)工程。
6編譯完成后,在輸出窗口可以看到編譯提示信息,比如““.SDRAMUART_Test.axf”-0 Error(s), 1 Warning(s).”,如果顯示“0 Error(s)”即表示編譯成功。
7)撥動(dòng)實(shí)驗(yàn)平臺(tái)電源開關(guān),給實(shí)驗(yàn)平臺(tái)上電,單擊菜單欄Debug->Start/Stop Debug Session項(xiàng)將編譯出來(lái)的映像文件下載到SDRAM中,或者單擊工具欄“”按鈕來(lái)下載。
8)下載完成后,單擊菜單欄Debug->Run項(xiàng)運(yùn)行程序,或者單擊工具欄“”按鈕來(lái)全速運(yùn)行程序。用戶也可以使用進(jìn)行單步調(diào)試程序。
9)全速運(yùn)行后,用戶可以在超級(jí)終端看到程序運(yùn)行的信息。
10)用戶可以Stop程序運(yùn)行,使用μVision IDE for ARM的一些調(diào)試窗口跟蹤查看程序運(yùn)行的信息。注:如果在第4)步用戶選擇在Flash中運(yùn)行,則編譯鏈接成功后,單擊菜單欄Flash->Download項(xiàng)將程序固化到NorFlash中,從實(shí)驗(yàn)平臺(tái)的主板拔出JTAG線,給實(shí)驗(yàn)平臺(tái)重新上電,程序?qū)⒆詣?dòng)運(yùn)行。
部分程序圖:
串口通信實(shí)驗(yàn):
IIS音頻實(shí)驗(yàn):
六、實(shí)習(xí)體會(huì)
在嵌入式系統(tǒng)中,除了課本上的基礎(chǔ)知識(shí)外,還學(xué)會(huì)了軟件編程的基本思路,掌握了液晶屏的使用及其電路設(shè)計(jì)方法;掌握有關(guān)音頻處理的基礎(chǔ)知識(shí);掌握液晶顯示文本及圖形的方法與程序設(shè)計(jì)。
通過(guò)這次設(shè)計(jì),掌握了液晶顯示實(shí)驗(yàn)、μC/OS-II移植、μC/OS-IILCD顯示的工作原理及串口通信實(shí)驗(yàn)的工作過(guò)程,學(xué)會(huì)了使用仿真軟件Embest EduKit-IV實(shí)驗(yàn)平臺(tái)及ULINK2仿真器套件,并學(xué)會(huì)通過(guò)應(yīng)用軟件仿真來(lái)實(shí)現(xiàn)各種通信系統(tǒng)的設(shè)計(jì),對(duì)以后的學(xué)習(xí)和工作都起到了一定的作用,加強(qiáng)了動(dòng)手能力和學(xué)業(yè)技能。雖然花了很長(zhǎng)時(shí)間編寫軟件程序設(shè)計(jì),但這一切還是理論上的。希望學(xué)校能提供機(jī)會(huì)和條件,讓我們能夠去真正地將理論和實(shí)踐相結(jié)合。通過(guò)這次程序,感覺(jué)自己所掌握的知識(shí)是那么的有限,還有許多需要改進(jìn)和不足的地方,同時(shí)也幫助了我怎樣學(xué)好這門課程,增加了我對(duì)這門學(xué)科的興趣。總體來(lái)說(shuō),這次實(shí)習(xí)我受益匪淺。在摸索該如何設(shè)計(jì)電路使之實(shí)現(xiàn)所需功能的過(guò)程中特別有趣,培養(yǎng)了我的設(shè)計(jì)思維,增加了實(shí)際操作能力。在讓我體會(huì)到了設(shè)計(jì)電路的艱辛的同時(shí),更讓我體會(huì)到成功的喜悅和快樂(lè)。通過(guò)這次實(shí)習(xí)通信系統(tǒng)的設(shè)計(jì),使我更加清楚以后的發(fā)展及學(xué)習(xí)的方向。
最后感謝老師這個(gè)學(xué)期的指導(dǎo)和幫助!
七、參考文獻(xiàn)
《ARM9嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)應(yīng)用》熊茂華、楊震倫編著 清華大學(xué)出版社
《ARM9嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)教程》于明編著 電子工業(yè)出版社
《Linux嵌入式系統(tǒng)教程》馬忠梅 北京航空航天大學(xué)出版社
第五篇:嵌入式培訓(xùn)實(shí)習(xí)報(bào)告
第一天:
今天是我到杰普軟件科技有限公司實(shí)習(xí)的第一天,也是我第一次接觸到linux系統(tǒng)。雖然我以前就知道這個(gè)系統(tǒng),但以前從沒(méi)見(jiàn)過(guò),現(xiàn)在第一次用感覺(jué)還不錯(cuò)。
老師在上課的時(shí)候還介紹了很多于linux的發(fā)展歷史和強(qiáng)大的功能,所以對(duì)那個(gè)以后要一直用到的系統(tǒng)充滿了期待。老師也講了一些linux系統(tǒng)的組成,些簡(jiǎn)單的操作,linux分為內(nèi)核,文件系統(tǒng),和shell,shell是用來(lái)提供與內(nèi)核交互界面的東西,所以以后的對(duì)inux的操作也就是在終端上輸入shell命令來(lái)操作系統(tǒng)。
第二天:
今天主要講了一些基本的操作命令,比如說(shuō)在終端上輸入pwd,就能顯示當(dāng)前的文件目錄,輸入ls,能顯示當(dāng)前目錄的所有文件和目錄,后面加些后綴就能顯示更多的關(guān)于文件的信息,還有就是用touch命令來(lái)建立文件,用cp命令來(lái)復(fù)制文件和目錄,mkdir命令來(lái)建立目錄等等。用命令來(lái)操作看起來(lái)有點(diǎn)像DOS系統(tǒng),不過(guò)比DOS操作起來(lái)更簡(jiǎn)單,并且功能比DOS強(qiáng)大太多了??偟膩?lái)說(shuō)今天收獲還蠻大的。
第三天:
今天是講基本操作命令的最后一天,這幾天學(xué)下來(lái)感覺(jué)有點(diǎn)吃力了,因?yàn)檫@命令太多了,還有很多命令還有后綴,還有一些命令可以相互組合,而且學(xué)習(xí)中間還涉及到很多以前沒(méi)有聽過(guò)過(guò)的計(jì)算機(jī)術(shù)語(yǔ),更是加大了學(xué)習(xí)的難度,不過(guò)在同學(xué)的相互幫助下克服了種種困難。
經(jīng)過(guò)這一段時(shí)間的學(xué)習(xí)我們對(duì)linux的操作有了很大的提高,并且知道了很多計(jì)算機(jī)方面的知識(shí),這對(duì)以后的進(jìn)一步學(xué)習(xí)有很大的幫助。
第四天:
經(jīng)過(guò)幾天的學(xué)習(xí),終于把linux的所有命令學(xué)完了。但是第一天老師提到過(guò)的shell還是沒(méi)怎么理解是怎么回事,所以今天老師就重點(diǎn)講了shell。Shell俗稱殼(用來(lái)區(qū)別于核),是指“提供使用者使用界面的”軟件“(命令解析器)。它類似于DOS下的command.com。它接收用戶命令,然后調(diào)用相應(yīng)的應(yīng)用程序。同時(shí)它又是一種程序設(shè)計(jì)語(yǔ)言。Shell有好多種類型,其中比較常見(jiàn)的shell有Bourne shell,C shell,Kornv shell和 Bourne Again Shell,其中我們現(xiàn)在用的就是Bourne Again shell。
第五天:
前幾天學(xué)習(xí)的命令太多,但一條命令只能讓計(jì)算機(jī)做一件事,并
且每次要用的時(shí)候一次只能輸一條語(yǔ)句,用起來(lái)很不方便。為了能讓這些命令做更多事,并且提高執(zhí)行效率,所以我們把一些命令寫在腳本上,我們把這些叫shell腳本,shell腳本與Windows/Dos下的批處理相似,也就是用各類命令預(yù)先放入到一個(gè)文件中,方便一次性執(zhí)行的一個(gè)程序文件,主要是方便管理員進(jìn)行設(shè)置或者管理用的。在寫shell腳本的時(shí)候可以再里面加入判斷,循環(huán)等語(yǔ)句,所以能把linux的操作效率大大的提高,功能也變得更強(qiáng)大。
第六天:
新的一年到了,我們也開始新的東西了,前幾天學(xué)的只是操作,但是今天開始就要學(xué)習(xí)嵌入式開發(fā)的核心內(nèi)容,那就是我們以前都學(xué)習(xí)過(guò)的c語(yǔ)言,不過(guò)以前學(xué)習(xí)的都忘得差不多了。最先學(xué)習(xí)的還是在linux平臺(tái)下的編譯環(huán)境,這里我們要用到種個(gè)叫VI的編譯環(huán)境,他跟我們以前用的window環(huán)境下的vc++6.0有很大不同,用vi進(jìn)行編譯時(shí)候比vc++6.0復(fù)雜多了,要編譯時(shí)候要輸好幾行命令,剛開始用的時(shí)候很不習(xí)慣,但用了幾次以后就好多了。
第七天:
今天就要開始正式學(xué)習(xí)c語(yǔ)言了,C語(yǔ)言是嵌入式開發(fā)的基礎(chǔ),所以一定要把c語(yǔ)言給學(xué)好。雖然以前學(xué)習(xí)過(guò)c,但是學(xué)了跟沒(méi)學(xué)差不多,所以一切都要重頭開始學(xué)起,今天老師只講了一些基本的,所以今天只講了數(shù)據(jù)結(jié)構(gòu),不過(guò)比以前老師講的更深入一些。這里講課更以前學(xué)校里最大區(qū)別就是這里老師每講一個(gè)程序,我們都要跟著動(dòng)手敲出來(lái)。有一句話叫熟能生巧,所以只要我們肯動(dòng)手,多動(dòng)手就能把這東西學(xué)好。
第八天:
今天是年前學(xué)習(xí)的最后一天了,明天就要回家了,雖然回家的心情有點(diǎn)急切,但還是要把課給上完,今天還是在講的是指針,指針是c語(yǔ)言的精華,但也是c語(yǔ)言中最難的,特別是指針跟數(shù)組,字符數(shù)組什么的結(jié)合在一起,弄得頭都有點(diǎn)大了。所以老師講了好幾天,但是還有好多聽不懂的,看來(lái)還是要加把勁?;氐郊依镞€是要多看一點(diǎn)書,多學(xué)一點(diǎn)是一點(diǎn),盡量吧那些不懂得弄懂。
實(shí)習(xí)總結(jié):
回想起這么多天的培訓(xùn)實(shí)習(xí),感覺(jué)收獲挺多的,學(xué)到了很多關(guān)于計(jì)算機(jī)的知識(shí),還有一些以前在在課堂上學(xué)不到的一些東西??偟膩?lái)說(shuō)本次實(shí)習(xí)使我第一次親身感受了所學(xué)知識(shí)與實(shí)際的應(yīng)
用,理論與實(shí)際的相結(jié)合,讓我們大開眼界,也算是對(duì)以前所學(xué)知識(shí)的一個(gè)初審吧!這次生產(chǎn)實(shí)習(xí)對(duì)于我們以后學(xué)習(xí)、找工作也真是受益菲淺。在這段時(shí)間里讓我們初步讓理性回到感性的重新認(rèn)識(shí),也讓我們初步的認(rèn)識(shí)了這個(gè)社會(huì),對(duì)于以后做人所應(yīng)把握的方向也有所啟發(fā)。