久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

嵌入式linux流程

時(shí)間:2019-05-14 23:02:48下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《嵌入式linux流程》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《嵌入式linux流程》。

第一篇:嵌入式linux流程

嵌入式Linux系統(tǒng)開發(fā)總結(jié)2 2011-02-20 12:54 嵌入式系統(tǒng)開發(fā)分為軟件開發(fā)部分和硬件開發(fā)部分。嵌入式系統(tǒng)在開發(fā)過(guò)程一般都采用如圖5-3所示的“宿主機(jī)/目標(biāo)板”開發(fā)模式,即利用宿主機(jī)(PC機(jī))上豐富的軟硬件資源及良好的開發(fā)環(huán)境和調(diào)試工具來(lái)開發(fā)目標(biāo)板上的軟件,然后通過(guò)交叉編譯環(huán)境生成目標(biāo)代碼和可執(zhí)行文件,通過(guò)串口/USB/以太網(wǎng)等方式下載到目標(biāo)板上,利用交叉調(diào)試器在監(jiān)控程序運(yùn)行,實(shí)時(shí)分析,最后,將程序下載固化到目標(biāo)機(jī)上,完成整個(gè)開發(fā)過(guò)程。

“宿主機(jī)/目標(biāo)板”開發(fā)模式

在軟件設(shè)計(jì)上,如圖5-4所示為結(jié)合ARM硬件環(huán)境及ADS軟件開發(fā)環(huán)境所設(shè)計(jì)的嵌入式系統(tǒng)開發(fā)流程圖。整個(gè)開發(fā)過(guò)程基本包括以下幾個(gè)步驟。

(1)源代碼編寫:編寫源C/C++及匯編程序;

(2)程序編譯:通過(guò)專用編譯器編譯程序;

(3)軟件仿真調(diào)試:在SDK中仿真軟件運(yùn)行情況;

(4)程序下載:通過(guò)JTAG、USB、UART方式下載到目標(biāo)板上;

(5)軟硬件測(cè)試、調(diào)試:通過(guò)JTAG等方式聯(lián)合調(diào)試程序;

(6)下載固化:程序無(wú)誤,下載到產(chǎn)品上生產(chǎn)。

嵌入式系統(tǒng)軟件開發(fā)流程

2.2 嵌入式系統(tǒng)開發(fā)流程

當(dāng)前,嵌入式開發(fā)已經(jīng)逐步規(guī)范化,在遵循一般工程開發(fā)流程的基礎(chǔ)上,嵌入式開發(fā)有其自身的一些特點(diǎn),如圖5-5所示為嵌入式系統(tǒng)開發(fā)的一般流程。主要包括系統(tǒng)需求分析(要求有嚴(yán)格規(guī)范的技術(shù)要求)、體系結(jié)構(gòu)設(shè)計(jì)、軟硬件及機(jī)械系統(tǒng)設(shè)計(jì)、系統(tǒng)集成、系統(tǒng)測(cè)試,最終得到最終產(chǎn)品。

嵌入式開發(fā)流程

(1)系統(tǒng)需求分析。確定設(shè)計(jì)任務(wù)和設(shè)計(jì)目標(biāo),并提煉出設(shè)計(jì)規(guī)格說(shuō)明書,作為正式設(shè)計(jì)指導(dǎo)和驗(yàn)收的標(biāo)準(zhǔn)。系統(tǒng)的需求一般分功能性需求和非功能性需求兩方面。功能性需求是系統(tǒng)的基本功能,如輸入輸出信號(hào)、操作方式等;非功能需求包括系統(tǒng)性能、成本、功耗、體積、重量等因素。

(2)體系結(jié)構(gòu)設(shè)計(jì)。描述系統(tǒng)如何實(shí)現(xiàn)所述的功能和非功能需求,包括對(duì)硬件、軟件和執(zhí)行裝置的功能劃分,以及系統(tǒng)的軟件、硬件選型等。一個(gè)好的體系結(jié)構(gòu)是設(shè)計(jì)成功與否的關(guān)鍵。

(3)硬件/軟件協(xié)同設(shè)計(jì)。基于體系結(jié)構(gòu),對(duì)系統(tǒng)的軟件、硬件進(jìn)行詳細(xì)設(shè)計(jì)。為了縮短產(chǎn)品開發(fā)周期,設(shè)計(jì)往往是并行的。嵌入式系統(tǒng)設(shè)計(jì)的工作大部分都集中在軟件設(shè)計(jì)上,采用面向?qū)ο蠹夹g(shù)、軟件組件技術(shù)、模塊化設(shè)計(jì)是現(xiàn)代軟件工程經(jīng)常采用的方法。

(4)系統(tǒng)集成。把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進(jìn)行調(diào)試,發(fā)現(xiàn)并改進(jìn)單元設(shè)計(jì)過(guò)程中的錯(cuò)誤。

(5)系統(tǒng)測(cè)試。對(duì)設(shè)計(jì)好的系統(tǒng)進(jìn)行測(cè)試,看其是否滿足規(guī)格說(shuō)明書中給定的功能要求。

嵌入式系統(tǒng)開發(fā)模式最大特點(diǎn)是軟件、硬件綜合開發(fā)。這是因?yàn)榍度胧疆a(chǎn)品是軟硬件的結(jié)合體,軟件針對(duì)硬件開發(fā)、固化、不可修改。

如果在一個(gè)嵌入式系統(tǒng)中使用Linux技術(shù)開發(fā),根據(jù)應(yīng)用需求的不同有不同的配置開發(fā)方法,但是,一般情況下都需要經(jīng)過(guò)如下的過(guò)程。

(1)建立開發(fā)環(huán)境,操作系統(tǒng)一般使用Redhat Linux,選擇定制安裝或全部安裝,通過(guò)網(wǎng)絡(luò)下載相應(yīng)的GCC交叉編譯器進(jìn)行安裝(比如,arm-1inux-gcc、arnl-uclibc-gcc),或者安裝產(chǎn)品廠家提供的相關(guān)交叉編譯器;

(2)配置開發(fā)主機(jī),配置MINICOM,一般的參數(shù)為波特率115200 Baud/s,數(shù)據(jù)位8位,停止位為1,9,無(wú)奇偶校驗(yàn),軟件硬件流控設(shè)為無(wú)。在Windows下的超級(jí)終端的配置也是這樣。MINICOM軟件的作用是作為調(diào)試嵌入式開發(fā)板的信息輸出的監(jiān)視器和鍵盤輸入的工具。配置網(wǎng)絡(luò)主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡(jiǎn)化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過(guò)程。

(3)建立引導(dǎo)裝載程序BOOTLOADER,從網(wǎng)絡(luò)上下載一些公開源代碼的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)具體芯片進(jìn)行移植修改。有些芯片沒有內(nèi)置引導(dǎo)裝載程序,比如,三星的ARV17、ARM9系列芯片,這樣就需要編寫開發(fā)板上FLASH的燒寫程序,讀者可以在網(wǎng)上下載相應(yīng)的燒寫程序,也有Linux下的公開源代碼的J-FLASH程序。如果不能燒寫自己的開發(fā)板,就需要根據(jù)自己的具體電路進(jìn)行源代碼修改。這是讓系統(tǒng)可以正常運(yùn)行的第一步。如果用戶購(gòu)買了廠家的仿真器比較容易燒寫FLASH,雖然無(wú)法了解其中的核心技術(shù),但對(duì)于需要迅速開發(fā)自己的應(yīng)用的人來(lái)說(shuō)可以極大提高開發(fā)速度。

(4)下載已經(jīng)移植好的Linux操作系統(tǒng),如MCLiunx、ARM-Linux、PPC-Linux等,如果有專門針對(duì)所使用的CPU移植好的Linux操作系統(tǒng)那是再好不過(guò),下載后再添加特定硬件的驅(qū)動(dòng)程序,然后進(jìn)行調(diào)試修改,對(duì)于帶MMU的CPU可以使用模塊方式調(diào)試驅(qū)動(dòng),而對(duì)于MCLiunx這樣的系統(tǒng)只能編譯內(nèi)核進(jìn)行調(diào)試。

(5)建立根文件系統(tǒng),可以從http://www.busy.box.net下載使用BUSYBOX軟件進(jìn)行功能裁減,產(chǎn)生一個(gè)最基本的根文件系統(tǒng),再根據(jù)自己的應(yīng)用需要添加其他的程序。由于默認(rèn)的啟動(dòng)腳本一般都不會(huì)符合應(yīng)用的需要,所以就要修改根文件系統(tǒng)中的啟動(dòng)腳本,它的存放位置位于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動(dòng)掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會(huì)隨系統(tǒng)不同而不同。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfs genromfs等工具產(chǎn)生燒寫映像文件。

(6)建立應(yīng)用程序的FLASH磁盤分區(qū),一般使用JFFS2或YAFFS文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動(dòng),有的系統(tǒng)使用一個(gè)線性FLASH(NOR型)512KB~32MB,有的系統(tǒng)使用非線性FLASH(NAND型)8MB~512MB,有的兩個(gè)同時(shí)使用,需要根據(jù)應(yīng)用規(guī)劃FLASH的分區(qū)方案。

(7)開發(fā)應(yīng)用程序,可以放入根文件系統(tǒng)中,也可以放入YAFFS、JFFS2文件系統(tǒng)中,有的應(yīng)用不使用根文件系統(tǒng),直接將應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起,這有點(diǎn)類似于μC/OS-II的方式。

(8)燒寫內(nèi)核、根文件系統(tǒng)和應(yīng)用程序,發(fā)布產(chǎn)品。

看完上面文章,想必廣大讀者都對(duì)嵌入式系統(tǒng)開發(fā)的模式與流程有了一定的了解,希望以后能對(duì)嵌入式linux系統(tǒng)開發(fā)有進(jìn)一步研究。

第二篇:嵌入式linu學(xué)習(xí)心得

嵌入式Linux學(xué)習(xí)心得

1、Linux命令

ls:查看目錄-l以列表方式查看;ls –l 與ll的功能一樣 pwd: 查看當(dāng)前的目錄

cd:改變當(dāng)前操作目錄cd /直接跳到根目錄 cd..回到上一級(jí)目錄 cat: 打印顯示當(dāng)前文件的內(nèi)容信息

mkdir:創(chuàng)建目錄

fdisk: 查看硬盤分區(qū)信息,-l以列表方式查看

->代表是鏈接文件,類似window下的快捷方式。

cp: 復(fù)制命令,例子cp 文件名 /home/dir/

mv: 移動(dòng)或改名,如mv sonf.confsonf.txt(改名)移動(dòng):mv sonf.conf / rm:刪除命令,如rm –f test.c;如刪除目錄rm –fr d

man:查看某個(gè)命令的幫助,man 命令

2、各系統(tǒng)目錄的功能

drw—r—w--:d代表是目錄,drw代表當(dāng)前用戶的權(quán)限,r代表組用戶的權(quán)限,w代表其它用戶的權(quán)限。x代表有執(zhí)行權(quán)限。

/boot/gruff.conf: 啟動(dòng)引導(dǎo)程序

/dev:brw—rw--:b代表是塊設(shè)備。Linux設(shè)備有三種,塊設(shè)備(b開頭)、字符設(shè)備(c開頭)、網(wǎng)絡(luò)設(shè)備。had代表第一個(gè)硬盤,hdb代表第二個(gè)硬盤。Hdb2代表第二塊硬盤的第二個(gè)分區(qū)。3,67代表主設(shè)備為3,從設(shè)備為67./etc:存放的是系統(tǒng)的配置文件。Inittab文件存放不同啟動(dòng)方式下必須啟動(dòng)的進(jìn)程。Inittab文件中有6個(gè)啟動(dòng)level,wait中對(duì)應(yīng)著6個(gè)level的目錄,respawn代表當(dāng)一個(gè)進(jìn)程被意外終止了,但會(huì)自動(dòng)啟動(dòng)的進(jìn)程,如守護(hù)進(jìn)程。rc.d目錄中存放了一個(gè)rc.sysinit文件,里面存放系統(tǒng)初始化配置信息。/etc還有一個(gè)vsftpd里面存放tcp、ftp的配置。

/home : 用戶目錄,存放用戶的文件,/lib:存放庫(kù)文件,后綴為so的文件代表動(dòng)態(tài)鏈接庫(kù)。

/lost+found:系統(tǒng)意外終止,存放一些可以找回的文件。

/mnt:掛載外部設(shè)備,如掛載光驅(qū):mount –t /dev/cdrom/mnt/cdrom,如

果在雙系統(tǒng)中,要查看windows中D盤的文件,首先應(yīng)該將D盤的文件映射過(guò)來(lái),mount –t /dev/hda2/mnt/windows/d

/opt:用戶安裝的應(yīng)用程序

/proc:是系統(tǒng)運(yùn)行的映射,比較重要。里面的文件數(shù)字代表進(jìn)程號(hào)。每個(gè)進(jìn)程號(hào)目錄下包含進(jìn)程的基本信息。還有其他信息,如cpuinfo等,內(nèi)核支持的文件系統(tǒng)filesystem等。系統(tǒng)支持的中斷interrupts,iomen代表內(nèi)存分配情況。ioport存放IO端口號(hào)。還有分區(qū)信息,modole信息,狀態(tài)信息,版本信息

對(duì)于Linux的設(shè)備驅(qū)動(dòng)程序,有兩種加載模式,一種是直接加載進(jìn)linux內(nèi)核,一種是以模塊的方式加載到內(nèi)核。

/sbin: 系統(tǒng)管理的一些工具。如poweroff關(guān)機(jī)工具。

/usr: 安裝系統(tǒng)時(shí)很多文件放在此目錄下面,包含一些更新等,include包含的頭文件,lib 是Linux的庫(kù)文件,src包含Linux2.4的內(nèi)核源碼

/var:存放是臨時(shí)變量

3、

第三篇:嵌入式Linux開發(fā)流程

嵌入式Linux開發(fā)流程

嵌入式 linux開發(fā),根據(jù)應(yīng)用需求的不同有不同的配置開發(fā)方法,但是一般都經(jīng)過(guò)以下過(guò)程:

建立開發(fā)環(huán)境。操作系統(tǒng)一般 REDHAT-LINUX,版本 7 到9 都可以,選擇定制安裝或全部安裝,通過(guò)網(wǎng)絡(luò)下載相應(yīng)的 GCC 交叉編譯器進(jìn)行安裝(比如 arm-linux-gcc、arm-uclibc-gcc),或者安裝產(chǎn)品廠家提供的交叉編譯器。

配置開發(fā)主機(jī)。配置 MINICOM,一般參數(shù)為115200,數(shù)據(jù)位 8位,停止位 1,無(wú)奇偶校驗(yàn),軟硬件控制流設(shè)為無(wú)。在 WINDOWS 下的超級(jí)終端的配置也是這樣。MINICOM軟件的作用是作為調(diào)試嵌入式開發(fā)板信息輸出的監(jiān)視器和鍵盤輸入的工具;配置網(wǎng)絡(luò),主要是配置 NFS 網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡(jiǎn)化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過(guò)程。

建立引導(dǎo)裝載程序BOOTLOADER,從網(wǎng)絡(luò)上下載一些公開源代碼的BOOTLOADER,如 U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)自己具體芯片進(jìn)行移植修改。有些芯片沒有內(nèi)置引導(dǎo)裝載程序,比如三星的 ARM7、ARM9 系列芯片,這樣就需要編寫燒寫開發(fā)板上 flash 的燒寫程序,網(wǎng)絡(luò)上有免費(fèi)下載的 WINDOWS 下通過(guò)JTAG并口簡(jiǎn)易仿真器燒寫 ARM 外圍 flash 芯片的程序。也有 LINUX 下公開源代碼的J-FLASH 程序。如果不能燒寫自己的開發(fā)板,就需要根據(jù)自己的具體電路進(jìn)行源代碼修改。這是讓系統(tǒng)可以正常運(yùn)行的第一步。如果你購(gòu)買了廠商提供的仿真器,當(dāng)然比較容易燒寫flash了,但是其中的核心技術(shù)是無(wú)法了解的。這對(duì)于需要迅速開發(fā)應(yīng)用的人來(lái)說(shuō)可以極大地提高開發(fā)速度。

下載別人已經(jīng)移植好的 LINUX 操作系統(tǒng),如 UCLINUX、ARM-LINUX、PPC-LINUX等,如果有專門針對(duì)你所使用的CPU移植好的 LINUX 操作系統(tǒng)那是再好不過(guò),下載后再添加自己的特定硬件的驅(qū)動(dòng)程序,進(jìn)行調(diào)試修改,對(duì)于帶 MMU的 CPU可以使用模塊方式調(diào)試驅(qū)動(dòng),對(duì)于 UCLINUX 這樣的系統(tǒng)好像只能編譯進(jìn)內(nèi)核進(jìn)行調(diào)試。

建立根文件系統(tǒng),從下載使用 BUSYBOX 軟件進(jìn)行功能裁減,產(chǎn)生一個(gè)最基本的根文件系統(tǒng),再根據(jù)自己的應(yīng)用需要添加其他的程序。默認(rèn)的啟動(dòng)腳本一般都不會(huì)符合應(yīng)用的需要,所以就要修改根文件系統(tǒng)中的啟動(dòng)腳本,它的存放位置位于 /etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile 等,自動(dòng)掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會(huì)隨系統(tǒng)不同而不同。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用 mkcramfs、genromfs 等工具產(chǎn)生燒寫映象文件。

建立應(yīng)用程序的 flash 磁盤分區(qū),一般使用JFFS2 或 YAFFS 文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動(dòng),有的系統(tǒng)使用一個(gè)線性 flash(NOR 型)512K-32M,有的系統(tǒng)使用非線性 flash(NAND型)8-512M,有的兩個(gè)同時(shí)使用,需要根據(jù)應(yīng)用規(guī)劃 flash的分區(qū)方案。

開發(fā)應(yīng)用程序,可以下載到根文件系統(tǒng)中,也可以放入 YAFFS、JFFS2 文件系統(tǒng)中,有的應(yīng)用程序不使用根文件系統(tǒng),而是直接將應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起,這有點(diǎn)類似于UCOS-II 的方式。

燒寫內(nèi)核、根文件系統(tǒng)、應(yīng)用程序。

發(fā)布產(chǎn)品。

第四篇:linux嵌入式學(xué)習(xí)流程及ARM學(xué)習(xí)大綱

課程大綱

● 第一階段 嵌入式Linux開發(fā)基礎(chǔ)

◆ 開學(xué)典禮、職業(yè)素養(yǎng):自我介紹;

◆ Linux基礎(chǔ)知識(shí)和系統(tǒng)安裝;

◆ Linux常用命令,文本編輯器vi,shell腳本編程;

◆ Linux開發(fā)環(huán)境基礎(chǔ):Gcc,Ddb,Maker和Makefile;

◆ 軟件版本管理;

◆ 嵌入式軟件開發(fā)環(huán)境搭建與使用

● 第二階段 嵌入式C語(yǔ)言編程

◆ 復(fù)習(xí)C語(yǔ)言基礎(chǔ)知識(shí),強(qiáng)化指針和數(shù)組概念,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和一些基本算法; ◆ 全面了解C語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供的功能;

◆ 深入介紹C程序在編譯時(shí)與運(yùn)行時(shí)的基本原理;

◆ GNU C的拓展知識(shí);

◆ 從宏觀和微觀的角度討論高質(zhì)量C語(yǔ)言編程;

◆ 詳細(xì)介紹嵌入式C的特性及應(yīng)用;

◆ 職業(yè)素養(yǎng):推銷自己。

● 第三階段 Linux系統(tǒng)程序設(shè)計(jì)

◆ 深入學(xué)習(xí)操作系統(tǒng)基礎(chǔ)知識(shí);

◆ Linux系統(tǒng)程序設(shè)計(jì):系統(tǒng)編程環(huán)境、常用調(diào)試工具,創(chuàng)建中止進(jìn)程,進(jìn)程間通訊;

◆ Linux網(wǎng)絡(luò)編程;

◆ 職業(yè)素養(yǎng):禮儀溝通、語(yǔ)言溝通;

● 第四階段 ARM原理與應(yīng)用

◆ 嵌入式系統(tǒng)基礎(chǔ):嵌入式系統(tǒng) 定義、發(fā)展,嵌入式實(shí)時(shí)操作系統(tǒng); ◆ ARM的基本概念及體系結(jié)構(gòu);

◆ ARM的編程模型;

◆ ADS集成開發(fā)環(huán)境;

◆ ARM匯編指令集;

◆ 嵌入式系統(tǒng)及接口設(shè)計(jì);

◆ ARM協(xié)處理器。

● 第五階段 u-boot和Linux移植

◆ Linux內(nèi)核基礎(chǔ);

◆ Kernel的定制和編譯;

◆ 內(nèi)核移植;

◆ 內(nèi)核調(diào)試。

歡迎下載該文檔

● 第六階段 嵌入式Linux驅(qū)動(dòng)開發(fā)

◆ 驅(qū)動(dòng)程序概述;

◆ 字符設(shè)備驅(qū)動(dòng)程序開發(fā); ◆ 設(shè)備驅(qū)動(dòng)總的重要概念和機(jī)制;

◆ 塊設(shè)備驅(qū)動(dòng)程序開發(fā); ◆ 塊設(shè)備驅(qū)動(dòng)程序開發(fā)實(shí)例; ◆ 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序開發(fā)及實(shí)例; ◆ 音頻和顯示設(shè)備驅(qū)動(dòng)程序開發(fā); ◆ 素質(zhì)培訓(xùn):如何寫簡(jiǎn)歷。

● 第七階段 項(xiàng)目實(shí)踐

◆ 學(xué)習(xí)工程項(xiàng)目開發(fā)流程:項(xiàng)目需求、項(xiàng)目設(shè)計(jì)、程序編碼、程序調(diào)試與測(cè)試、版本發(fā)布;

◆ 以團(tuán)隊(duì)方式分解項(xiàng)目,協(xié)作開發(fā)、各學(xué)員扮演不同角色; ◆ 項(xiàng)目開發(fā):個(gè)人移動(dòng)終端實(shí)時(shí)通訊圖形管理系統(tǒng); ◆ 素質(zhì)培訓(xùn):面試訓(xùn)練、職業(yè)前引導(dǎo)。

Arm學(xué)習(xí)

課程大綱

◆ 幫助學(xué)員了解ARM體系結(jié)構(gòu)及工作原理,掌握

第一天

ARM指令集,學(xué)會(huì)操作ARM處理器基本方法。◆ 課程實(shí)驗(yàn):

◆為提高系統(tǒng)的綜合性能,“ARM和Thumb交互”是工程師在實(shí)際編程常用的一種方式。通過(guò)本天課程的學(xué)習(xí),學(xué)員可以了解Thumb指令的特點(diǎn),掌握

第二天

ARM和Thumb指令交互方法。“異常”作為處理器的一種特殊工作方式在系統(tǒng)工作中扮演著重要的角色,本期課程也將幫助學(xué)員掌握ARM平臺(tái)異常產(chǎn)生的過(guò)程和處理方法。◆ 課程實(shí)驗(yàn):

◆雖然匯編指令可以完成我們所需要的所有功能,但相對(duì)C語(yǔ)言來(lái)說(shuō),匯編語(yǔ)言存在編寫復(fù)雜、可讀

第三天

性差等缺點(diǎn),所以在實(shí)際的項(xiàng)目開發(fā)中,工程師通常會(huì)使用C或C++等高級(jí)語(yǔ)言來(lái)編寫主程序部分。通過(guò)第三天課程的學(xué)習(xí),學(xué)員可以掌握匯編、c、歡迎下載該文檔

c++混合編程的方法,完成對(duì)目標(biāo)平臺(tái)的軟件編程,更好的熟悉嵌入式軟件的開發(fā)流程。◆ 課程實(shí)驗(yàn):

◆在學(xué)習(xí)完了理論知識(shí)后,該進(jìn)入實(shí)踐環(huán)節(jié)了。嵌入式編程最終目標(biāo)還是對(duì)接口設(shè)備的操作。通過(guò)第第四天

四天課程的學(xué)習(xí),學(xué)員可以掌握基于ARM的嵌入式硬件平臺(tái)接口設(shè)計(jì)以及各種常用接口的開發(fā); ◆ 課程實(shí)驗(yàn):

◆單個(gè)接口的操作最終還是要為一個(gè)綜合的軟件項(xiàng)目服務(wù),bootloader在嵌入式操作系統(tǒng)中占用重要地位,其編寫、移植是一項(xiàng)常見而復(fù)雜的工作。通過(guò)第五天課程的學(xué)習(xí),學(xué)員即能夠通過(guò)這個(gè)綜合第五天的軟件項(xiàng)目將前面的主要內(nèi)容融會(huì)貫通,還可以掌握 bootloader原理及開發(fā)過(guò)程,掌握和bootloader相關(guān)的接口開發(fā),了解嵌入式操作系統(tǒng)的結(jié)構(gòu)及啟動(dòng)流程等。◆ 課程實(shí)驗(yàn):

三個(gè)月

◆ 企業(yè)項(xiàng)目實(shí)踐(自行操作,專家答疑)(三個(gè)月)

歡迎下載該文檔

第五篇:嵌入式實(shí)驗(yàn)報(bào)告

目錄

實(shí)驗(yàn)一 跑馬燈實(shí)驗(yàn).........................................................................1 實(shí)驗(yàn)二 按鍵輸入實(shí)驗(yàn).....................................................................3 實(shí)驗(yàn)三 串口實(shí)驗(yàn).............................................................................5 實(shí)驗(yàn)四 外部中斷實(shí)驗(yàn).....................................................................8 實(shí)驗(yàn)五 獨(dú)立看門狗實(shí)驗(yàn)................................................................11 實(shí)驗(yàn)七 定時(shí)器中斷實(shí)驗(yàn)................................................................13 實(shí)驗(yàn)十三 ADC實(shí)驗(yàn)........................................................................15 實(shí)驗(yàn)十五 DMA實(shí)驗(yàn)........................................................................17 實(shí)驗(yàn)十六 I2C實(shí)驗(yàn)........................................................................21 實(shí)驗(yàn)十七 SPI實(shí)驗(yàn)........................................................................24 實(shí)驗(yàn)二十一 紅外遙控實(shí)驗(yàn)............................................................27 實(shí)驗(yàn)二十二 DS18B20實(shí)驗(yàn).............................................................30

實(shí)驗(yàn)一 跑馬燈實(shí)驗(yàn)

一.實(shí)驗(yàn)簡(jiǎn)介

我的第一個(gè)實(shí)驗(yàn),跑馬燈實(shí)驗(yàn)。

二.實(shí)驗(yàn)?zāi)康?/p>

掌握STM32開發(fā)環(huán)境,掌握從無(wú)到有的構(gòu)建工程。

三.實(shí)驗(yàn)內(nèi)容

熟悉MDK KEIL開發(fā)環(huán)境,構(gòu)建基于固件庫(kù)的工程,編寫代碼實(shí)現(xiàn)跑馬燈工程。通過(guò)ISP下載代碼到實(shí)驗(yàn)板,查看運(yùn)行結(jié)果。使用JLINK下載代碼到目標(biāo)板,查看運(yùn)行結(jié)果,使用JLINK在線調(diào)試。

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK。軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件。

五.實(shí)驗(yàn)步驟

1.熟悉MDK KEIL開發(fā)環(huán)境 2.熟悉串口編程軟件ISP 3.查看固件庫(kù)結(jié)構(gòu)和文件

4.建立工程目錄,復(fù)制庫(kù)文件 5.建立和配置工程 6.編寫代碼 7.編譯代碼

8.使用ISP下載到實(shí)驗(yàn)板 9.測(cè)試運(yùn)行結(jié)果

10.使用JLINK下載到實(shí)驗(yàn)板 11.單步調(diào)試

12.記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

兩個(gè)燈LED0與LED1實(shí)現(xiàn)交替閃爍的類跑馬燈效果,每300ms閃爍一次。

七.實(shí)驗(yàn)總結(jié)

通過(guò)本次次實(shí)驗(yàn)我了解了STM32開發(fā)板的基本使用,初次接觸這個(gè)開發(fā)板和MDK KEILC軟件,對(duì)軟件操作不太了解,通過(guò)這次實(shí)驗(yàn)了解并熟練地使用MDK KEIL軟件,用這個(gè)軟件來(lái)編程和完成一些功能的實(shí)現(xiàn)。作為 STM32 的入門第一個(gè)例子,詳細(xì)介紹了STM32 的IO口操作,同時(shí)鞏固了前面的學(xué)習(xí),并進(jìn)一步介紹了MDK的軟件仿真功能。

實(shí)驗(yàn)二 按鍵輸入實(shí)驗(yàn)

一.實(shí)驗(yàn)簡(jiǎn)介

在實(shí)驗(yàn)一的基礎(chǔ)上,使用按鍵控制流水燈速度,及使用按鍵控制流水燈流水方向。

二.實(shí)驗(yàn)?zāi)康?/p>

熟練使用庫(kù)函數(shù)操作GPIO,掌握中斷配置和中斷服務(wù)程序編寫方法,掌握通過(guò)全局變量在中斷服務(wù)程序和主程序間通信的方法。

三.實(shí)驗(yàn)內(nèi)容

實(shí)現(xiàn)初始化GPIO,并配置中斷,在中斷服務(wù)程序中通過(guò)修改全局變量,達(dá)到控制流水燈速度及方向。

使用JLINK下載代碼到目標(biāo)板,查看運(yùn)行結(jié)果,使用JLINK在線調(diào)試。

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK、示波器。軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件。

五.實(shí)驗(yàn)步驟

1在實(shí)驗(yàn)1代碼的基礎(chǔ)上,編寫中斷初始化代碼

2在主程序中聲明全局變量,用于和中斷服務(wù)程序通信,編寫完成主程序 3編寫中斷服務(wù)程序

4編譯代碼,使用JLINK下載到實(shí)驗(yàn)板 5.單步調(diào)試

6記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

我們將通過(guò)MiniSTM32 板上載有的3個(gè)按鈕,來(lái)控制板上的2個(gè)LED,其中KEY0控制LED0,按一次亮,再按一次,就滅。KEY1 控制LED1,效果同KEY0。KEY_2(KEY_UP),同時(shí)控制LED0 和LED1,按一次,他們的狀態(tài)就翻轉(zhuǎn)一次。

七.實(shí)驗(yàn)總結(jié)

通過(guò)本次實(shí)驗(yàn),我學(xué)會(huì)了如何使用STM32 的IO 口作為輸入用。TM32 的IO 口做輸入使用的時(shí)候,是通過(guò)讀取IDR 的內(nèi)容來(lái)讀取IO 口的狀態(tài)的。這里需要注意的是 KEY0 和KEY1 是低電平有效的,而WK_UP 是高電平有效的,而且要確認(rèn)WK_UP 按鈕與DS18B20 的連接是否已經(jīng)斷開,要先斷開,否則DS18B20 會(huì)干擾WK_UP按鍵!并且KEY0 和KEY1 連接在與JTAG 相關(guān)的IO 口上,所以在軟件編寫的時(shí)候要先禁用JTAG 功能,才能把這兩個(gè)IO 口當(dāng)成普通IO 口使用。

實(shí)驗(yàn)三 串口實(shí)驗(yàn)

一.實(shí)驗(yàn)簡(jiǎn)介

編寫代碼實(shí)現(xiàn)串口發(fā)送和接收,將通過(guò)串口發(fā)送來(lái)的數(shù)據(jù)回送回去。

二.實(shí)驗(yàn)?zāi)康?/p>

掌握STM32基本串口編程,進(jìn)一步學(xué)習(xí)中斷處理。

三.實(shí)驗(yàn)內(nèi)容

編寫主程序,初始化串口1,設(shè)置波特率為9600,無(wú)校驗(yàn),數(shù)據(jù)位8位,停止位1位。編寫中斷服務(wù)程序代碼實(shí)現(xiàn)將發(fā)送過(guò)來(lái)的數(shù)據(jù)回送。

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK、示波器。

軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助手。

五.實(shí)驗(yàn)步驟

1編寫串口初始化代碼

2編寫中斷服務(wù)程序代碼

3編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 4記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

把代碼下載到 MiniSTM32 開發(fā)板,可以看到板子上的LED0 開始閃爍,說(shuō)明程序已經(jīng)在跑了。接著我們打開串口調(diào)試助手,看到如下信息:

證明串口數(shù)據(jù)發(fā)送沒問(wèn)題。接著,我們?cè)诎l(fā)送區(qū)輸入上面的文字,輸入完后按回車鍵。然后單擊發(fā)送,可以得到如下結(jié)果:

七.實(shí)驗(yàn)總結(jié)

通過(guò)本次實(shí)驗(yàn),我進(jìn)一步了解了串口的使用,學(xué)會(huì)了通過(guò)串口發(fā)送和接收數(shù)據(jù),將通過(guò)串口發(fā)送來(lái)的數(shù)據(jù)回送回去。該實(shí)驗(yàn)的硬件配置不同于前兩個(gè)實(shí)驗(yàn),串口 1 與USB 串口默認(rèn)是分開的,并沒有在PCB上連接在一起,需要通過(guò)跳線帽來(lái)連接一下。這里我們把P4 的RXD 和TXD 用跳線帽與P3 的PA9 和PA10 連接起來(lái)。

實(shí)驗(yàn)四 外部中斷實(shí)驗(yàn)

一.實(shí)驗(yàn)簡(jiǎn)介

STM32 的 IO 口在本章第一節(jié)有詳細(xì)介紹,而外部中斷在第二章也有詳細(xì)的闡述。這里我們將介紹如何將這兩者結(jié)合起來(lái),實(shí)現(xiàn)外部中斷輸入。

二.實(shí)驗(yàn)?zāi)康?/p>

進(jìn)一步掌握串口編程,進(jìn)一步學(xué)習(xí)外部中斷編程,提高編程能力。

三.實(shí)驗(yàn)內(nèi)容

初始化IO口的輸入,開啟復(fù)用時(shí)鐘,設(shè)置IO與中斷的映射關(guān)系,從而開啟與IO口相對(duì)應(yīng)的線上中斷事件,設(shè)置觸發(fā)條件。配置中斷分組(NVIC),并使能中斷,編寫中斷服務(wù)函數(shù)。

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK、示波器。

軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助手。

五.實(shí)驗(yàn)步驟

1.2.3.4.編寫中斷服務(wù)程序代碼 使用ISP下載到實(shí)驗(yàn)板 測(cè)試運(yùn)行結(jié)果

記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

打開串口助手。

七.實(shí)驗(yàn)總結(jié)

首先需要將IO設(shè)置為中斷輸入口: 1)初始化 IO 口為輸入。

2)開啟 IO 口復(fù)用時(shí)鐘,設(shè)置 IO 口與中斷線的映射關(guān)系。

3)開啟與該 IO口相對(duì)的線上中斷/事件,設(shè)置觸發(fā)條件。

4)配置中斷分組(NVIC),并使能中斷。

5)編寫中斷服務(wù)函數(shù)。

這一節(jié),使用的是中斷來(lái)檢測(cè)按鍵,通過(guò) WK_UP 按鍵實(shí)現(xiàn)按一次 LED0 和 LED 1 同時(shí)翻轉(zhuǎn),按 KEY0 翻轉(zhuǎn) LED0,按 KEY1 翻轉(zhuǎn) LED1。

試驗(yàn)中外部中斷函數(shù)不能進(jìn)入的原因分析 : 1)GPIO或者AFIO的時(shí)鐘沒有開啟。2)GPIO和配置的中斷線路不匹配。3)中斷觸發(fā)方式和實(shí)際不相符合。

4)中斷處理函數(shù)用庫(kù)函數(shù)時(shí),寫錯(cuò),經(jīng)常可能出現(xiàn)數(shù)字和字母之間沒有下劃線。5)外部中斷是沿觸發(fā),有可能不能檢測(cè)到沿,比如 中斷線是低電平(浮空輸入),觸發(fā)是下降沿觸發(fā),可能會(huì)出現(xiàn)一直是低電平,高電平的時(shí)候是一樣的情況,電平持續(xù)為高電平。

6)沒有用軟件中斷來(lái)觸發(fā)外部中斷,調(diào)用函數(shù)EXTI_GenerateSWInterrupt;,因?yàn)檐浖袛嘞扔谶呇刂袛嗵幚怼?/p>

實(shí)驗(yàn)五 獨(dú)立看門狗實(shí)驗(yàn)

一. 實(shí)驗(yàn)簡(jiǎn)介

獨(dú)立看門狗(IWDG)由專用的低速時(shí)鐘(LSI)驅(qū)動(dòng),即使主時(shí)鐘發(fā)生故障它也仍然有效。窗口看門狗由從APB1時(shí)鐘分頻后得到的時(shí)鐘驅(qū)動(dòng),通過(guò)可配置的時(shí)間窗口來(lái)檢測(cè)應(yīng)用程序非正常的過(guò)遲或過(guò)早的操作。

二.實(shí)驗(yàn)?zāi)康?/p>

通過(guò)編程,編寫一個(gè)獨(dú)立看門狗驅(qū)動(dòng)程序

三.實(shí)驗(yàn)內(nèi)容

啟動(dòng) STM32 的獨(dú)立看門狗,從而使能看門狗,在程序里面必須間隔一定時(shí)間喂狗,否則將導(dǎo)致程序復(fù)位。利用這一點(diǎn),我們本章將通過(guò)一個(gè) LED 燈來(lái)指示程序是否重啟,來(lái)驗(yàn)證 STM32 的獨(dú)立看門狗。

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK。

軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助手。

五.實(shí)驗(yàn)步驟

1.2.3.4.參考教材獨(dú)立看門狗部分,編寫?yīng)毩⒖撮T狗驅(qū)動(dòng)程序。建立和配置工程 編寫代碼

使用ISP下載到實(shí)驗(yàn)板

記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

在配置看門狗后,看到LED0 不停的閃爍,如果WK_UP 按鍵按下,就喂狗,只要WK_UP 不停的按,看門狗就一直不會(huì)產(chǎn)生復(fù)位,保持LED0 的常亮,一旦超過(guò)看門狗定溢出時(shí)間(Tout)還沒按,那么將會(huì)導(dǎo)致程序重啟,這將導(dǎo)致LED0 熄滅一次。

七.實(shí)驗(yàn)總結(jié)

通過(guò)本次實(shí)驗(yàn),我掌握了啟動(dòng)獨(dú)立看門狗的步驟: 1)向 IWDG_KR 寫入 0X5555。2)向 IWDG_KR 寫入 0XAAAA。3)向 IWDG_KR 寫入 0XCCCC。

通過(guò)上面 3個(gè)步驟,啟動(dòng) STM32 的看門狗,從而使能看門狗,在程序里面就必須間隔一定時(shí)間喂狗,否則將導(dǎo)致程序復(fù)位。利用這一點(diǎn),本章通過(guò)一個(gè)LED 燈來(lái)指示程序是否重啟,來(lái)驗(yàn)證 STM32 的獨(dú)立看門狗。在配置看門狗后,LED0 將常亮,如果 WK_UP 按鍵按下,就喂狗,只要 WK_UP 不停的按,看門狗就一直不會(huì)產(chǎn)生復(fù)位,保持 LED 0 的常亮,一旦超過(guò)看門狗溢出時(shí)間(Tout)還沒按,那么將會(huì)導(dǎo)致程序重啟,這將導(dǎo)致 LED 0 熄滅一次。

實(shí)驗(yàn)七 定時(shí)器中斷實(shí)驗(yàn)

一. 實(shí)驗(yàn)簡(jiǎn)介

STM32 的定時(shí)器是一個(gè)通過(guò)可編程預(yù)分頻器(PSC)驅(qū)動(dòng)的 16 位自動(dòng)裝載計(jì)數(shù)器(CNT)構(gòu)成。STM32 的通用定時(shí)器可以被用于:測(cè)量輸入信號(hào)的脈沖長(zhǎng)度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和 PWM)等。使用定時(shí)器預(yù)分頻器和 RCC 時(shí)鐘控制器預(yù)分頻器,脈沖長(zhǎng)度和波形周期可以在幾微秒到幾毫秒間調(diào)整。STM32 的每個(gè)通用定時(shí)器都是完全獨(dú)立的,沒有互相共享的任何資源。

二.實(shí)驗(yàn)?zāi)康?/p>

熟練掌握定時(shí)器中斷,學(xué)會(huì)對(duì)定時(shí)器中斷的編程操作。

三.實(shí)驗(yàn)內(nèi)容

使用定時(shí)器產(chǎn)生中斷,然后在中斷服務(wù)函數(shù)里面翻轉(zhuǎn) LED1 上的電平,來(lái)指示定時(shí)器中斷的產(chǎn)生,修改中斷時(shí)間。

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK。

軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助手。

五.實(shí)驗(yàn)步驟

1.參考教材定時(shí)器中斷部分,編寫定時(shí)器中斷的驅(qū)動(dòng)程序。2.編寫主程序

3.編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 4.記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

七.實(shí)驗(yàn)總結(jié)

通過(guò)本次實(shí)驗(yàn),認(rèn)識(shí)到時(shí)間中斷來(lái)控制LED燈的閃爍,同時(shí)也可以將時(shí)間中斷應(yīng)用到控制其他的程序塊。

以TIME3為例產(chǎn)生中斷的步驟為 1)TIM3 時(shí)鐘使能。

2)設(shè)置 TIM3_ARR 和 TIM3_PSC 的值。

3)設(shè)置 TIM3_DIER 允許更新中斷。

4)允許 TIM3 工作。

5)TIM3 中斷分組設(shè)置。6)編寫中斷服務(wù)函數(shù)。

在中斷產(chǎn)生后,通過(guò)狀態(tài)寄存器的值來(lái)判斷此次產(chǎn)生的中斷屬于什么類型。然后執(zhí)行相關(guān)的操作,我們這里使用的是更新(溢出)中斷,所以在狀態(tài)寄存器 SR 的最低位。在處理完中斷之后應(yīng)該向 TIM3_SR 的最低位寫 0,來(lái)清除該中斷標(biāo)志。

實(shí)驗(yàn)十三 ADC實(shí)驗(yàn)

一.實(shí)驗(yàn)簡(jiǎn)介

通過(guò)DAC將STM32系統(tǒng)的數(shù)字量轉(zhuǎn)換為模擬量。使用ADC將模擬量轉(zhuǎn)換為數(shù)字量。

二.實(shí)驗(yàn)?zāi)康?/p>

掌握DAC和ADC編程。

三.實(shí)驗(yàn)內(nèi)容

編寫代碼實(shí)現(xiàn)簡(jiǎn)單的DAC單次發(fā)送

編寫代碼實(shí)現(xiàn)ADC采集DAC發(fā)送的數(shù)據(jù),并發(fā)送到串口

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK。

軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助手。

五.實(shí)驗(yàn)步驟

1編寫主程序

2編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板,使用串口調(diào)試助手觀察數(shù)據(jù) 3記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

七.實(shí)驗(yàn)總結(jié)

本節(jié)將利用 STM32的 ADC1 通道 0 來(lái)采樣外部電壓值,并在串口調(diào)試助手中顯示出來(lái)。步驟如下:

1)開啟 PA 口時(shí)鐘,設(shè)置 PA0 為模擬輸入。

2)使能 ADC1 時(shí)鐘,并設(shè)置分頻因子。

3)設(shè)置 ADC1 的工作模式。

4)設(shè)置 ADC1 規(guī)則序列的相關(guān)信息。

5)開啟 AD 轉(zhuǎn)換器,并校準(zhǔn)。

6)讀取 ADC 值。

在上面的校準(zhǔn)完成之后,ADC 就算準(zhǔn)備好了。接下來(lái)我們要做的就是設(shè)置規(guī)則序列 0 里面的通道,然后啟動(dòng) ADC 轉(zhuǎn)換。在轉(zhuǎn)換結(jié)束后,讀取 ADC1_DR 里面的值。

通過(guò)以上幾個(gè)步驟的設(shè)置,可以正常的使用 STM32 的 ADC1 來(lái)執(zhí)行 AD 轉(zhuǎn)換操作。

通過(guò)本次實(shí)驗(yàn)的學(xué)習(xí),我們了解了STM32 ADC的使用,但這僅僅是STM32強(qiáng)大的ADC 功能的一小點(diǎn)應(yīng)用。STM32 的ADC 在很多地方都可以用到,其ADC 的DMA 功能是很不錯(cuò)的,實(shí)驗(yàn)十五 DMA實(shí)驗(yàn)

一. 實(shí)驗(yàn)簡(jiǎn)介

直接存儲(chǔ)器存取(DMA)用來(lái)提供在外設(shè)和存儲(chǔ)器之間或者存儲(chǔ)器和存儲(chǔ)器之間的高速數(shù)據(jù)傳輸。無(wú)須CPU干預(yù),數(shù)據(jù)可以通過(guò)DMA快速地移動(dòng),這就節(jié)省了CPU的資源來(lái)做其他操作。

二.實(shí)驗(yàn)?zāi)康?/p>

熟練掌握DMA編程,學(xué)會(huì)對(duì)EPC02的讀寫操作,學(xué)習(xí)雙緩沖兵乓操作,理解互斥資源。提高編程能力。

三.實(shí)驗(yàn)內(nèi)容

利用外部按鍵KEY0 來(lái)控制DMA 的傳送,每按一次KEY0,DMA 就傳送一次數(shù)據(jù)

到USART1,然后在串口調(diào)試助手觀察進(jìn)度等信息。LED0 還是用來(lái)做為程序運(yùn)行的指示燈。

這里我們使用到的硬件資源如下: 1)按鍵KEY0。2)指示燈LED0。

3)使用串口調(diào)試助手觀察數(shù)據(jù)

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK。

軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、網(wǎng)絡(luò)調(diào)試助手。

五.實(shí)驗(yàn)步驟

1編寫主程序

2編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板,使用串口調(diào)試助手觀察數(shù)據(jù) 3記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

伴隨 LED0 的不停閃爍,提示程序在運(yùn)行。我們打開串口調(diào)試助手,然后按KEY0,可以看到串口顯示如下內(nèi)容:

七.實(shí)驗(yàn)總結(jié)

本節(jié)利用 STM32 的 DMA 來(lái)實(shí)現(xiàn)串口數(shù)據(jù)傳送,DMA通道的配置需要: 1)設(shè)置外設(shè)地址。

2)設(shè)置存儲(chǔ)器地址。

3)設(shè)置傳輸數(shù)據(jù)量。

4)設(shè)置通道 4 的配置信息。

5)使能 DMA1 通道 4,啟動(dòng)傳輸。

通過(guò)以上 5 步設(shè)置,我們就可以啟動(dòng)一次 USART1 的 DMA 傳輸了。

DMA控制器對(duì)DMA請(qǐng)求判別優(yōu)先級(jí)及屏蔽,向總線裁決邏輯提出總線請(qǐng)求。當(dāng)CPU執(zhí)行完當(dāng)前總線周期即可釋放總線控制權(quán)。此時(shí),總線裁決邏輯輸出總線應(yīng)答,表示DMA已經(jīng)響應(yīng),通過(guò)DMA控制器通知I/O接口開始DMA傳輸。

DMA控制器獲得總線控制權(quán)后,CPU即刻掛起或只執(zhí)行內(nèi)部操作,由DMA控制器輸出讀寫命令,直接控制RAM與I/O接口進(jìn)行DMA傳輸。

在DMA控制器的控制下,在存儲(chǔ)器和外部設(shè)備之間直接進(jìn)行數(shù)據(jù)傳送,在傳送過(guò)中不需要中央處理器的參與。開始時(shí)需提供要傳送的數(shù)據(jù)的起始位置和數(shù)據(jù)長(zhǎng)度。

當(dāng)完成規(guī)定的成批數(shù)據(jù)傳送后,DMA控制器即釋放總線控制權(quán),并向I/O接口發(fā)出結(jié)束信號(hào)。當(dāng)I/O接口收到結(jié)束信號(hào)后,一方面停 止I/O設(shè)備的工作,另一方面向CPU提出中斷請(qǐng)求,使CPU從不介入的狀態(tài)解脫,并執(zhí)行一段檢查本次DMA傳輸操作正確性的代碼。最后,帶著本次操作結(jié)果及狀態(tài)繼續(xù)執(zhí)行原來(lái)的程序。

由此可見,DMA傳輸方式無(wú)需CPU直接控制傳輸,也沒有中斷處理方式那樣保留現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的過(guò)程,通過(guò)硬件為RAM與I/O設(shè)備開辟一條直接傳送數(shù)據(jù)的通路,使CPU的效率大為提高。

實(shí)驗(yàn)十六 I2C實(shí)驗(yàn)

一.實(shí)驗(yàn)簡(jiǎn)介

編程實(shí)現(xiàn)對(duì)使用I2C接口的EPC02芯片進(jìn)行寫和讀操作。

二.實(shí)驗(yàn)?zāi)康?/p>

熟練掌握I2C編程,學(xué)會(huì)對(duì)EPC02的讀寫操作。

三.實(shí)驗(yàn)內(nèi)容

編寫I2C驅(qū)動(dòng)程序,使用驅(qū)動(dòng)程序初始化EPC02,判斷設(shè)備正確性。

寫256個(gè)0x5A到EPC02,讀出并發(fā)送給串口,通過(guò)串口調(diào)試助手判別是否讀到的都是0x5A.四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK。

軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助手。

五.實(shí)驗(yàn)步驟

1參考教材I2C部分,編寫I2C驅(qū)動(dòng)程序。2編寫主程序

3編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 4記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

伴隨 LED0 的不停閃爍,提示程序在運(yùn)行。我們先按下KEY0,可以看到如下所示的內(nèi)容,證明數(shù)據(jù)已經(jīng)被寫入到24C02了。

接著我們按KEY2,可以看我們剛剛寫入的數(shù)據(jù)被顯示出來(lái)了,如下圖所示:

源代碼:

七.實(shí)驗(yàn)總結(jié)

IIC是由數(shù)據(jù)線 SDA 和時(shí)鐘 SCL 構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在 CPU 與被控 IC 之間、IC 與 IC 之間進(jìn)行雙向傳送,高速 IIC 總線一般可達(dá) 400kbps 以上。

IIC總線在傳送數(shù)據(jù)過(guò)程中共有三種類型信號(hào),它們分別是:開始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。這些信號(hào)中,起始信號(hào)是必需的,結(jié)束信號(hào)和應(yīng)答信號(hào),都可以不要。程序在開機(jī)的時(shí)候會(huì)檢測(cè) 24C02 是否存在,如果不存在則會(huì)在TFTLCD 模塊上顯示錯(cuò)誤信息,同時(shí)LED0 慢閃。大家可以通過(guò)跳線帽把PC11 和PC12 短接就可以看到報(bào)錯(cuò)了。通過(guò)本次實(shí)驗(yàn),我掌握了如何使用IIC寫入與讀出數(shù)據(jù),學(xué)習(xí)了編寫I2C驅(qū)動(dòng)程序,使用驅(qū)動(dòng)程序初始化EPC02,判斷設(shè)備正確性,以及如何在助手上顯示。

實(shí)驗(yàn)十七 SPI實(shí)驗(yàn)

一.實(shí)驗(yàn)簡(jiǎn)介

編程實(shí)現(xiàn)對(duì)SPI接口的W25Q64進(jìn)行讀寫操作。

二.實(shí)驗(yàn)?zāi)康?/p>

熟練掌握SPI編程,學(xué)會(huì)對(duì)的W25Q64讀寫操作。

三.實(shí)驗(yàn)內(nèi)容

1.2.3.4.5.編寫SPI驅(qū)動(dòng)程序 初始化SPI接口

讀取SPIFLASH的ID,如果正確繼續(xù),否則報(bào)錯(cuò)

向SPIFALSH地址0x12AB00開始寫一串字符,再讀出比較判斷是否與寫入的一致 向SPIFALSH地址0x12AB00開始寫連續(xù)256個(gè)字節(jié)的0x5A,然后讀出并發(fā)送給串口,通過(guò)串口調(diào)試助手判別是否讀到的都是0x5A.四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK。

軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助手。

五.實(shí)驗(yàn)步驟

1參考SPI及SPI FLASH部分,編寫SPI及SPI FLASH驅(qū)動(dòng)程序(可參考書上代碼)。2編寫主程序

3編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 4記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

伴隨 LED0 的不停閃爍,提示程序在運(yùn)行。我們先按下KEY0,可以看到如圖13.17.4.2 所示的內(nèi)容,證明數(shù)據(jù)已經(jīng)被寫入到W25X16了。

接著我們按KEY2,可以看我們剛剛寫入的數(shù)據(jù)被顯示出來(lái)了,如下圖所示:

七.實(shí)驗(yàn)總結(jié)

SPI 接口主要應(yīng)用在EEPROM,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,AD 轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為 PCB 的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議,STM32 也有 SPI 接口。

SPI 的設(shè)置步驟:

1)配置相關(guān)引腳的復(fù)用功能,使能 SPI時(shí)鐘。

2)設(shè)置 SPI 工作模式。

3)使能 SPI。

程序在開機(jī)的時(shí)候會(huì)檢測(cè) W25X16 是否存在,如果不存在則會(huì)在TFTLCD 模塊上顯示錯(cuò)誤信息,同時(shí)LED0 慢閃。大家可以通過(guò)跳線帽把PA5 和PA6 短接就可以看到報(bào)錯(cuò)了。通過(guò)本實(shí)驗(yàn),我掌握了編寫SPI程序?qū)懭牒妥x取FLASH的方法,掌握了對(duì)學(xué)會(huì)對(duì)的W25Q64讀寫操作。對(duì)STM32開發(fā)板有了進(jìn)一步的了解。

實(shí)驗(yàn)二十一 紅外遙控實(shí)驗(yàn)

一. 實(shí)驗(yàn)簡(jiǎn)介

編程實(shí)現(xiàn)通過(guò)在 ALIENTEK MiniSTM32 開發(fā)板上實(shí)現(xiàn)紅外遙控器的控制。

二.實(shí)驗(yàn)?zāi)康?/p>

掌握編程實(shí)現(xiàn)紅外遙控控制開發(fā)板的方法。

三.實(shí)驗(yàn)內(nèi)容

1.編寫紅外遙控驅(qū)動(dòng)程序 2.編寫紅外遙控程序代碼 3.使用紅外遙控控制開發(fā)板

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK。軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件。

五.實(shí)驗(yàn)步驟

4.編寫紅外遙控驅(qū)動(dòng)程序 5.編寫紅外遙控程序代碼

6.編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 7.記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

使用串口調(diào)試助手觀察數(shù)據(jù)

七.實(shí)驗(yàn)總結(jié)

紅外遙控是一種無(wú)線、非接觸控制技術(shù),具有抗干擾能力強(qiáng),信息傳輸可靠,功耗低,成本低,易實(shí)現(xiàn)等顯著優(yōu)點(diǎn),被諸多電子設(shè)備特別是家用電器廣泛采用,并越來(lái)越多的應(yīng)用到計(jì)算機(jī)系統(tǒng)中。

通過(guò)本節(jié)實(shí)驗(yàn),我學(xué)習(xí)到了如何編程使用紅外遙控控制,在本程序中只是簡(jiǎn)單地輸出一個(gè)數(shù)值,在以后的應(yīng)用中可以實(shí)現(xiàn)更強(qiáng)大的功能,比如用紅外遠(yuǎn)程輸入控制開發(fā)板進(jìn)行一些操作。對(duì)STM32有了進(jìn)一步的認(rèn)識(shí)。

實(shí)驗(yàn)二十二 DS18B20實(shí)驗(yàn)

一. 實(shí)驗(yàn)簡(jiǎn)介

一. 在ALIENTEK MiniSTM32 開發(fā)板上,通過(guò) DS18B20 來(lái)讀取環(huán)境溫度值。

二.實(shí)驗(yàn)?zāi)康?/p>

鞏固SPI編程。掌握使用感應(yīng)器獲取環(huán)境溫度的方法。

三.實(shí)驗(yàn)內(nèi)容

1.復(fù)位脈沖和應(yīng)答脈沖

2.寫時(shí)序

3.讀時(shí)序

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK。軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件。

五.實(shí)驗(yàn)步驟

1.2.3.4.參考教材DS18B20編程部分,編寫DS18B20驅(qū)動(dòng)程序 編寫主程序

編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 記錄實(shí)驗(yàn)過(guò)程,撰寫實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

源代碼:

使用串口調(diào)試助手觀察數(shù)據(jù):

七.實(shí)驗(yàn)總結(jié)

DS18B20 是由 DALLAS 半導(dǎo)體公司推出的一種的“一線總線”接口的溫度傳感器。與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它是一種新型的體積小、適用電壓寬、與微處理器接口簡(jiǎn)單的數(shù)字化溫度傳感器。

通過(guò)本次實(shí)驗(yàn),我認(rèn)識(shí)到STM32的強(qiáng)大,在開發(fā)板上可以添加其他感應(yīng)器從而實(shí)現(xiàn)更強(qiáng)大的功能。添加了DS18B20后的開發(fā)板可以感應(yīng)外界的溫度,通過(guò)公式計(jì)算顯示出來(lái)。

下載嵌入式linux流程word格式文檔
下載嵌入式linux流程.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    嵌入式學(xué)習(xí)心得

    LPC2136是ARM7架構(gòu),是32位地址總線和數(shù)據(jù)總線,可以尋址的范圍為2的32次方=4GB(0x00000000~0xFFFFFFFF)我們的程序在哪里運(yùn)行?還記得我們?cè)谧觥芭荞R燈”和“蜂鳴器”兩個(gè)實(shí)驗(yàn),用......

    嵌入式實(shí)驗(yàn)報(bào)告

    嵌入式系統(tǒng)及應(yīng)用課 程設(shè)計(jì)報(bào)告姓名:陳宥祎 班級(jí):14級(jí)計(jì)算機(jī)01班 學(xué)號(hào):1255010116 指導(dǎo)老師:黃衛(wèi)紅 按鍵輸入實(shí)驗(yàn) 一.實(shí)驗(yàn)簡(jiǎn)介 在實(shí)驗(yàn)一的基礎(chǔ)上,使用按鍵控制流水燈速度,及使用......

    嵌入式學(xué)習(xí)心得

    嵌入式學(xué)習(xí)心得 當(dāng)今社會(huì),嵌入式系統(tǒng)已經(jīng)滲透到人們工作、生活中的各個(gè)領(lǐng)域,嵌入式處理器已占分散處理器市場(chǎng)份額的94%。而嵌入式Linux系統(tǒng)也蓬勃發(fā)展,不僅繼承了Linux源碼開放......

    嵌入式心得體會(huì)

    這學(xué)期才接觸嵌入式系統(tǒng)感覺還稱不上入門,我通過(guò)學(xué)習(xí)知道了嵌入式的發(fā)展前景很大,各個(gè)領(lǐng)域都用到了嵌入式,學(xué)好嵌入式不愁沒飯吃。 廣義上講,凡是帶有微處理器的專用軟硬件系統(tǒng)......

    嵌入式工程師(范文)

    什么是嵌入式工程師?與JAVA等通常的軟件工程師有什么區(qū)別?嵌入式軟件指嵌入在硬件中的非PC操作系統(tǒng)和開發(fā)工具軟件,它在產(chǎn)業(yè)中的關(guān)聯(lián)關(guān)系體現(xiàn)為:芯片設(shè)計(jì)制造\嵌入式系統(tǒng)軟件\嵌入......

    嵌入式報(bào)告

    嵌入式實(shí)訓(xùn)報(bào)告姓名:張龍班級(jí):電氣803學(xué)號(hào):08010270嵌入式系統(tǒng)學(xué)習(xí)體會(huì) 一、 嵌入式發(fā)展前景 嵌入式系統(tǒng)無(wú)疑是當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特......

    嵌入式實(shí)驗(yàn)報(bào)告

    西安郵電大學(xué) 嵌入式處理器及應(yīng)用實(shí)驗(yàn)報(bào)告書 學(xué)院名稱學(xué)生姓名專業(yè)名稱班級(jí) : : : :實(shí)驗(yàn)一ADS 1.2 集成開發(fā)環(huán)境練習(xí)一、實(shí)驗(yàn)?zāi)康模?了解ADS 1.2 集成開發(fā)環(huán)境的使用方法。 二、......

    嵌入式報(bào)告

    目錄 引言 ............................................................................................................................... 2 1. ARM概述 ...............

主站蜘蛛池模板: 天天影视网天天综合色| 亚洲精品国产嫩草在线观看东京热| 久久中文字幕无码专区| 高大丰满熟妇丰满的大白屁股| 亚洲久热无码中文字幕人妖| 精品国产免费人成网站| 精品无码人妻一区二区三区品| 国产精品天堂avav在线观看| 无码人妻精品一区二区蜜桃网站| 精品无码成人网站久久久久久| 午夜精品射精入后重之免费观看| 久久久久国产精品人妻aⅴ免费| 免费夫妻生活片av| 久久人人爽av亚洲精品天堂| 中文字幕一区日韩精品| 天天综合天天爱天天做| 一本色道久久综合狠狠躁| 小说区 图片区色 综合区| 亚洲男人的天堂成人www| 美女吊?巴www爽爽爽视频| 亚洲综合色丁香婷婷六月图片| 久久综合综合久久综合| 国产精品日韩欧美一区二区三区| 99re66在线观看精品免费| 最新69成人精品视频免费| 国产成人无码一区二区在线观看| 日韩aⅴ人妻无码一区二区| 中文字幕无码毛片免费看| 亚洲中久无码永久在线观看软件| 免费久久人人香蕉av| 久久精品国产亚洲av电影| 青青草草青青草久久草| 国产精品熟女高潮视频| 人妻夜夜爽天天爽三区| 久热爱精品视频在线◇| 国产精品中文久久久久久久| av无码久久久久不卡网站下载| 西西人体做爰大胆gogo| 少妇愉情理伦片高潮日本| 中国精品18videosex性中国| 美女啪啪网站又黄又免费|