第一篇:嵌入式Linux系統(tǒng)小抄格式
1、Linux啟動(dòng)過(guò)程:第一階段,打開(kāi)PC加電啟動(dòng),CPU自動(dòng)進(jìn)入實(shí)模式,從地址0XFFFF0000開(kāi)始自動(dòng)執(zhí)行程序代碼,BIOS開(kāi)始自檢,按照BIOS中設(shè)置的設(shè)備進(jìn)行啟動(dòng),啟動(dòng)設(shè)備安裝的引導(dǎo)程序LILO或GRUB開(kāi)始引導(dǎo)Linux,獲得啟動(dòng)權(quán);第二階段,進(jìn)行內(nèi)核的引導(dǎo),完成磁盤引導(dǎo),讀取機(jī)器系統(tǒng)數(shù)據(jù),實(shí)模式和保護(hù)模式的切換,加載數(shù)據(jù)段寄存器以及重置中斷描述符表;第三階段,執(zhí)行init程序,init調(diào)用RC.SYSINIT和RC等程序;第四階段,init啟動(dòng)mingetty,打開(kāi)終端供用戶登錄系統(tǒng),進(jìn)入shell,啟動(dòng)完成。
2、gcc編譯過(guò)程:預(yù)處理—編譯—匯編—鏈接
3、靜態(tài)函數(shù)庫(kù)和動(dòng)態(tài)函數(shù)庫(kù):靜態(tài)函數(shù)庫(kù),指編譯鏈接時(shí),將庫(kù)文件的代碼全部加入可執(zhí)行文件中,生成的文件比較大,運(yùn)行時(shí)不再需要庫(kù)文件,后綴名通常為.a;動(dòng)態(tài)函數(shù)庫(kù),指在編譯鏈接時(shí)沒(méi)有將庫(kù)文件的代碼加入到可執(zhí)行文件中,而是在程序執(zhí)行時(shí)加載庫(kù),節(jié)省系統(tǒng)的開(kāi)銷,后綴名為.so4、嵌入式系統(tǒng)的特點(diǎn):1)面向特定應(yīng)用;2)硬件和軟件必須進(jìn)行高效的設(shè)計(jì);3)將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)具體應(yīng)用后的產(chǎn)物;4)軟件一般固化在存儲(chǔ)器芯片中或者單機(jī)片本身;5)軟件代碼要去高質(zhì)量、高可靠性;6)不具備二次開(kāi)發(fā)的能力
5、常用嵌入式系統(tǒng):VxNorks,QNX,Windows CE,Palm OS6、ARM,嵌入式微處理器,有三種工作狀態(tài):ARM狀態(tài),執(zhí)行32位的字對(duì)齊的ARM指令;Thumb狀態(tài),執(zhí)行16位的半字對(duì)齊的Thumb指令;Thunb2狀態(tài),處理執(zhí)行16/32位混合的多類型對(duì)齊的指令。
7、ARM存儲(chǔ)格式:大端格式,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)存儲(chǔ)在高地址中;小端格式,低地址中存儲(chǔ)的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存儲(chǔ)的字?jǐn)?shù)據(jù)的高字節(jié)。
8、交叉編譯:在一個(gè)平臺(tái)上面生成可以在另一個(gè)平臺(tái)上面執(zhí)行的代碼。
9、ICD交叉調(diào)試技術(shù),ARM處理器的JTAG端口技術(shù)。
10、嵌入式Linux內(nèi)核編譯的3個(gè)步驟:內(nèi)核配置,建立依賴關(guān)系,建立內(nèi)核
11、內(nèi)核配置的4中方式:make config;make menuconfig;make xconfig;make oldconfig12、內(nèi)核源代碼目錄結(jié)構(gòu):/include,建立內(nèi)核代碼時(shí)所需要的大部分包含文件;/init 內(nèi)核的初始代碼;/arch 所有處理器體系結(jié)構(gòu)特定的內(nèi)核代碼;/drivers 包含內(nèi)核中所有的設(shè)備驅(qū)動(dòng)程序
13、串口通信方式:并行通信,利用多條數(shù)據(jù)傳輸線將一個(gè)字?jǐn)?shù)據(jù)的各比特位同時(shí)傳送。傳輸速度快,適用于短距離且傳輸速度較高的通信。串行通信,利用一條傳輸線將數(shù)據(jù)以比特位為單位順序傳送。通信線路簡(jiǎn)單,成本低,傳輸距離長(zhǎng),速度較慢。
14、進(jìn)程運(yùn)行的3種狀態(tài):執(zhí)行態(tài);就緒態(tài);等待態(tài)。進(jìn)程的結(jié)構(gòu):(3個(gè)段)數(shù)據(jù)段,存放全局變量、常數(shù)以及動(dòng)態(tài)數(shù)據(jù)分配的數(shù)據(jù)空間。代碼段,存放的是程序代碼的數(shù)據(jù)。堆棧段,存放的子程序的返回地址,子程序的參數(shù)以及程序的局部變量。
15、Linux進(jìn)程通信方式:管道、信號(hào)、消息隊(duì)列、共享內(nèi)存、信號(hào)量、套接字
16、/*將源文件的讀寫指針移到最后10kb的起始位置*/代碼
lseek(src_file,-OFFSET, SEEK_END);
/*讀取源文件的最后10kb數(shù)據(jù)并將寫到目標(biāo)文件中,每次寫1kb*/
While((real_read_len = read(src_file, buff, sizeof(buff)))>0)
{ write(dest_file, buff, real_read_len);}
Close(dest_file);
Close(src_file);
Return 0;
17、寫串口程序:
Int main(void)
{
Int fd;
Chat buff[BUFFER_SIZE];
If((fd=open_port(HOST_COM_PORT))<0)/*打開(kāi)串口*/{perror(“open_port”);return 1;} If(set_com_config(fd, 115200,8, ‘N’, 1)<0)/*配置串口*/ {Perror(“set_com_config”);Return 1;} Do {Printf(“Input some words(enter’quit’ to exit):”);Memset(buff, 0, BUFFER_SIZE);If(fgets(buff, BUFFER_SIZE, stdin)==NULL){Perror(“fgets”);Break;} Write(fd, buff, strlen(buff));}while(strncmp(buff, “quit”, 4));Close(fd);Return 0;}讀串口程序: int main(void){Int fd;Chat buff[BUFFER_SIZE];if((fd=open_port(TARGET_COM_PORT))<0)/*打開(kāi)串口*/{perror(“open_port”);return 1;} if(set_com_config(fd, 115200,8, ‘N’, 1)<0)/*配置串口*/ {Perror(“set_com_config”);Return 1;} do {memset(buff, 0, BUFFER_SIZE);if(read(fd, buff, BUFFER_SIZE)>0){Printf(“The received words are : %s”, buff);} }while(strncmp(buff, “quit”, 4));Close(fd);Return 0;}
第二篇:嵌入式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開(kāi)頭)、字符設(shè)備(c開(kāi)頭)、網(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、
第三篇:嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告
嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告
學(xué)
號(hào):
姓
名:
班
級(jí):13電子信息工程
指導(dǎo)老師:
蘇州大學(xué) 電子信息學(xué)院
2016年12月
實(shí)驗(yàn)一:一個(gè)燈的閃爍
1、實(shí)驗(yàn)要求
實(shí)現(xiàn)PF6-10端口所連接的任意一個(gè)LED燈點(diǎn)亮
2、電路原理圖
圖1 LED燈硬件連接圖
3、軟件分析
RCC_Configuration();/* 配置系統(tǒng)時(shí)鐘 */
GPIO_Configuration();
/* 配置GPIO IO口初始化 */
for(;;)
{
GPIOF->ODR = 0xfcff;
/* PF8=0--> 點(diǎn)亮D3 */
Delay(1000000);
GPIOF->ODR = 0xffff;
/* PF8=1--> 熄滅D3 */
Delay(1000000);
4、實(shí)驗(yàn)現(xiàn)象
通過(guò)對(duì)GPIOF8的操作,可以使LED3閃爍
5、實(shí)驗(yàn)總結(jié)
這是第一次使用STM32開(kāi)發(fā)板,主要內(nèi)容是對(duì)IO端口進(jìn)行配置,點(diǎn)亮與IO端口相連接的LED燈,閃爍周期為2S。通過(guò)本實(shí)驗(yàn)對(duì)STM32開(kāi)發(fā)板的硬件原理有了初步了解。
實(shí)驗(yàn)二:流水燈
1、實(shí)驗(yàn)要求
實(shí)現(xiàn)PF6-10端口所連接的5個(gè)LED燈順次亮滅
2、電路原理圖
圖1 流水燈硬件連接圖
3、軟件分析
int main(void){
RCC_Configuration();/* 配置系統(tǒng)時(shí)鐘 */
GPIO_Configuration();/* 配置GPIO IO口初始化 */
for(;;)
{
GPIOF->ODR = 0xffbf;
/* PF6=0--> 點(diǎn)亮LED1 */ Delay(5000000);GPIOF->ODR = 0xff7f;
}
/* PF7=0--> 點(diǎn)亮LED2 */ Delay(5000000);
GPIOF->ODR = 0xfeff;
/* PF8=0--> 點(diǎn)亮LED3 */ Delay(5000000);
GPIOF->ODR = 0xfdff;
/* PF9=0--> 點(diǎn)亮LED4 */ Delay(5000000);
GPIOF->ODR = 0xfbff;
/* PF10=0--> 點(diǎn)亮LED5 */ }
4、實(shí)驗(yàn)現(xiàn)象
LED1~LED5依次點(diǎn)亮,亮滅的時(shí)間間隔都為1S。
5、實(shí)驗(yàn)總結(jié)
本次實(shí)驗(yàn)對(duì)STM32開(kāi)發(fā)板的GPIO端口進(jìn)行進(jìn)一步學(xué)習(xí),通過(guò)程序可以實(shí)現(xiàn)流水燈的閃爍。
實(shí)驗(yàn)三:?jiǎn)渭?jí)外部中斷
1、實(shí)驗(yàn)要求
按下某個(gè)按鍵,觸發(fā)中斷,中斷服務(wù)程序改變LED燈狀態(tài)
2、電路原理圖
圖3 SW1硬件原理圖
3、軟件分析
int main()
{
RCC_Configuration();
GPIO_Configuration();
GPIO_Write(GPIOF,0xffff);Delay(5000);
while(1)
{
}
/* 配置系統(tǒng)時(shí)鐘 */
/* IO口初始化 */
/* 全滅 */
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0)/* 如果SW1 PA8=0 */ {
GPIO_SetBits(GPIOF, GPIO_Pin_6);
/* LED1點(diǎn)亮 */
Delay(0x1FFFFF);
GPIO_ResetBits(GPIOF, GPIO_Pin_6);
/* LED1 熄滅 */ Delay(0x1FFFFF);} }
4、實(shí)驗(yàn)現(xiàn)象
原來(lái)5個(gè)LED燈都處于熄滅狀態(tài),按下SW1,觸發(fā)中斷程序,LED1點(diǎn)亮。
5、實(shí)驗(yàn)總結(jié)
通過(guò)本次實(shí)驗(yàn),可以對(duì)某一狀態(tài)通過(guò)外部中斷,改變其當(dāng)前狀態(tài)。
實(shí)驗(yàn)四:多中斷嵌套
1、實(shí)驗(yàn)要求
按下某個(gè)按鍵,觸發(fā)中斷,中斷服務(wù)程序改變LED燈狀態(tài)
2、電路原理圖
圖4 SW1,SW2,SW3硬件原理圖
3、軟件分析
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
//設(shè)定中斷源為PA0 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//中斷占優(yōu)先級(jí)為0 NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel;
//設(shè)定中斷源為PD3 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//中斷占優(yōu)先級(jí)為1 NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;//設(shè)定中斷源為PA8 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;//中斷占優(yōu)先級(jí)為2 void EXTI0_IRQHandler(void){ int i=0;if(EXTI_GetITStatus(EXTI_Line0)!= RESET){ for(i=0;i<10;i++){
GPIO_Write(GPIOF,0xffff);
GPIO_SetBits(GPIOF, GPIO_Pin_6);/* LED1 點(diǎn)亮 */ Delay(0x5fFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_6);/* LED1 熄滅 */
Delay(0x5fFFFF);EXTI_ClearITPendingBit(EXTI_Line0);} } }
void EXTI3_IRQHandler(void)if(EXTI_GetITStatus(EXTI_Line3)!= RESET){ {
int i=0;for(i=0;i<10;i++){
GPIO_Write(GPIOF,0xffff);
GPIO_SetBits(GPIOF, GPIO_Pin_7);/* LED2 點(diǎn)亮 */ Delay(0x5fFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_7);/* LED2 熄滅 */ Delay(0x5fFFFF);EXTI_ClearITPendingBit(EXTI_Line3);} } } void EXTI9_5_IRQHandler(void){ int i=0;
if(EXTI_GetITStatus(EXTI_Line8)!= RESET){
for(i=0;i<10;i++){
GPIO_Write(GPIOF,0xffff);
GPIO_SetBits(GPIOF, GPIO_Pin_8);/* LED3 點(diǎn)亮 */
Delay(0x5fFFFF);
GPIO_ResetBits(GPIOF, GPIO_Pin_8);/* LED3 熄滅 */
Delay(0x5fFFFF);
EXTI_ClearITPendingBit(EXTI_Line8);} } }
4、實(shí)驗(yàn)現(xiàn)象
中斷優(yōu)先級(jí)從高到低依次為:SW3,SW2,SW1 原來(lái)5個(gè)LED燈都處于熄滅狀態(tài),按下SW1,LED3應(yīng)該閃爍10次,當(dāng)其閃爍5次后按下SW2,LED2也應(yīng)該閃爍10次,當(dāng)其閃爍4次后按下SW3,LED1也應(yīng)該閃爍10次,則當(dāng)LED1閃爍完10次后,LED2繼續(xù)閃爍6次,之后LED1繼續(xù)閃爍5次。
5、實(shí)驗(yàn)總結(jié)
通過(guò)本次實(shí)驗(yàn),可以對(duì)LED狀態(tài)實(shí)行中斷嵌套,由以上實(shí)驗(yàn)現(xiàn)象,得出以下結(jié)論:高中斷優(yōu)先級(jí)可以打斷低優(yōu)先級(jí),中斷系統(tǒng)正在執(zhí)行一個(gè)中斷服務(wù)時(shí),有另一個(gè)優(yōu)先級(jí)更高的中斷提出中斷請(qǐng)求,這時(shí)會(huì)暫時(shí)終止當(dāng)前正在執(zhí)行的級(jí)別較低的中斷源的服務(wù)程序,去處理級(jí)別更高的中斷源,待處理完畢,再返回到被中斷了的中斷服務(wù)程序繼續(xù)執(zhí)行,反之,低中斷優(yōu)先級(jí)不可以打斷高優(yōu)先級(jí)。
實(shí)驗(yàn)五:TIM2的基本應(yīng)用
1、實(shí)驗(yàn)要求
TIM2定時(shí)器將LED燈定時(shí)點(diǎn)亮和熄滅一定的時(shí)間
2、電路原理圖
3、軟件分析
TIM_Cmd(TIM2, ENABLE);
/* TIM2 enable counter */ TIM_TimeBaseStructure.TIM_Period = 1999;
TIM_TimeBaseStructure.TIM_Prescaler = 35999;
//定時(shí)時(shí)間為1s void TIM2_IRQHandler(void){ TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
GPIO_WriteBit(GPIOF, GPIO_Pin_6,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOF, GPIO_Pin_6)));}
4、實(shí)驗(yàn)現(xiàn)象
LED1燈按照1S的定時(shí)時(shí)間不斷閃爍
5、實(shí)驗(yàn)總結(jié)
通過(guò)本次實(shí)驗(yàn),可以實(shí)現(xiàn)對(duì)LED燈進(jìn)行定時(shí)控制其閃爍,而不需要延時(shí)函數(shù)控制了,定時(shí)時(shí)間較為精準(zhǔn)。實(shí)驗(yàn)六:TIM2,TIM3,TIM4多定時(shí)器的應(yīng)用
1、實(shí)驗(yàn)要求
利用TIM2,TIM3,TIM4定時(shí)器使LED燈以不同的頻率閃爍
2、電路原理圖
3、軟件分析
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;此處比上一個(gè)實(shí)驗(yàn)增加了2個(gè)定時(shí)器,同時(shí)又增加了一個(gè)優(yōu)先級(jí)
4、實(shí)驗(yàn)現(xiàn)象
中斷優(yōu)先級(jí)從高到低依次為:TIM2,TIM3,TIM4 首先LED1以1S的定時(shí)時(shí)間閃爍5次,之后LED2以2S的定時(shí)時(shí)間閃爍5次,最后LED3以3S的定時(shí)時(shí)間閃爍5次
5、實(shí)驗(yàn)總結(jié)
利用定時(shí)器可以同時(shí)使LED燈按照不同的頻率閃爍,但是為了現(xiàn)象明顯,可以加一個(gè)優(yōu) 先級(jí),分別觀察現(xiàn)象。
實(shí)驗(yàn)七:串口USART1讀取CPU的ID號(hào)
1、實(shí)驗(yàn)要求
通過(guò)USART1讀取 CPU 的 96 bit ID
2、電路原理圖
圖 開(kāi)發(fā)板USART原理圖
3、軟件分析
void Get_ChipID(void)/* 獲取芯片ID */ { ChipUniqueID[0] = *(u32 *)(0X1FFFF7F0);/* 高字節(jié) */ ChipUniqueID[1] = *(u32 *)(0X1FFFF7EC);
ChipUniqueID[2] = *(u32 *)(0X1FFFF7E8);/* 低字節(jié) */ } void USART_Configuration(void){
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_ClearFlag(USART1, USART_FLAG_TC);
USART_Cmd(USART1, ENABLE);
/* Enable USART1 */ }
4、實(shí)驗(yàn)現(xiàn)象
PA9連接的是USART1 Tx,PA10連接的是USART1 Rx,再通過(guò)串口調(diào)試助手就可 以在電腦上面顯示出CPU的ID以及flash容量大小。
5、實(shí)驗(yàn)總結(jié)
本次實(shí)驗(yàn)實(shí)現(xiàn)了串口和PC機(jī)的傳輸,可以通過(guò)USART1將CPU的ID在電腦上顯示出來(lái)。
實(shí)驗(yàn)八:異步通信USART2的重映射
1、實(shí)驗(yàn)要求
實(shí)現(xiàn)異步通信USART2的重映射,將數(shù)據(jù)傳送到PC機(jī)上
2、電路原理圖
圖 開(kāi)發(fā)板USART原理圖
3、軟件分析
void GPIO_Configuration()
/* IO口初始化 */ {
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
/* USART2 Tx--> PD05 */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;/* PD05--> JP7 WR */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
/* USART2 Rx--> PD06 */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOD, &GPIO_InitStructure);GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);} 該程序?qū)SART2重映射到PD05,PD06引腳
4、實(shí)驗(yàn)現(xiàn)象
PD05連接的是USART2 Tx,PD06連接的是USART2 Rx,通過(guò)串口調(diào)試助手就可以在電腦上面顯示Program Running!
5、實(shí)驗(yàn)總結(jié)
通過(guò)本次實(shí)驗(yàn),可以實(shí)現(xiàn)對(duì)異步通信USART2的重映射,再通過(guò)串口調(diào)試助手在電腦上顯示出來(lái)。
第四篇:嵌入式系統(tǒng)調(diào)查報(bào)告
“嵌入式系統(tǒng)在企業(yè)中的應(yīng)用”調(diào)查報(bào)告
工學(xué)院范裕婷
內(nèi)容提要:現(xiàn)今,全過(guò)程自動(dòng)化產(chǎn)品制造、大范圍電子商務(wù)活動(dòng)、高度協(xié)同科學(xué)實(shí)驗(yàn)以及現(xiàn)代化家庭起居,是嵌入式系統(tǒng)在企業(yè)中應(yīng)用的大好時(shí)機(jī)。2012年7月3-6日及7月13-14日,麗水學(xué)院工學(xué)院“嵌入式系統(tǒng)在企業(yè)中應(yīng)用”調(diào)查團(tuán)一行7人赴麗水市相關(guān)地區(qū)進(jìn)行實(shí)地走訪調(diào)查,走訪不同類型的相關(guān)企業(yè),通過(guò)召開(kāi)座談會(huì)、與公司負(fù)責(zé)人及技術(shù)人員面對(duì)面交流、察看應(yīng)用嵌入式系統(tǒng)設(shè)備等多種途徑,在此基礎(chǔ)上,隨隊(duì)指導(dǎo)老師還給我們講解嵌入式系統(tǒng)的幾大應(yīng)用及其發(fā)展趨勢(shì)。整體上把握、從細(xì)處入手,本文較為系統(tǒng)地分析目前麗水市相關(guān)企業(yè)對(duì)于嵌入式系統(tǒng)應(yīng)用的情況及存在的問(wèn)題,并針對(duì)麗水的地理等特點(diǎn),實(shí)事求是地提出了推進(jìn)麗水市相關(guān)企業(yè)嵌入式系統(tǒng)應(yīng)用的水平,需要進(jìn)一步提高對(duì)嵌入式系統(tǒng)應(yīng)用領(lǐng)域及趨勢(shì)的認(rèn)識(shí),增強(qiáng)技術(shù)設(shè)備等對(duì)策和建議。
關(guān)鍵詞:企業(yè) 嵌入式系統(tǒng)一、調(diào)查背景
嵌入式系統(tǒng)在工業(yè)領(lǐng)域中,一直有著控制的需求。最早的年代是用機(jī)械的方式來(lái)達(dá)到這樣的需求;隨著時(shí)代的進(jìn)步,進(jìn)化到使用電子式的控制。在最近幾十年中計(jì)算機(jī)的出現(xiàn),更使得控制進(jìn)化到使用計(jì)算機(jī),也使得控制可以自動(dòng)化,而不需要人工操縱。然而計(jì)算機(jī)最早的設(shè)計(jì)并不是為了工業(yè)自動(dòng)控制而設(shè)計(jì)的,但計(jì)算機(jī)可以做一些類似人類思考的行為或運(yùn)算,因而工業(yè)自動(dòng)控制不得已只好使用商用計(jì)算機(jī)。
麗水地處浙西南,浙西南是欠發(fā)達(dá)地區(qū),和省內(nèi)先進(jìn)城市相比,整體水平還比較落后,企業(yè)工業(yè)化建設(shè)與經(jīng)濟(jì)社會(huì)發(fā)展要求還存在一定差距。一方面,麗水圍繞“生態(tài)立市、工業(yè)強(qiáng)市、綠色興市”三市并舉戰(zhàn)略以實(shí)現(xiàn)跨越式發(fā)展,其中,要保證工業(yè)化的飛躍發(fā)展,就必須大力發(fā)展像嵌入式系統(tǒng)等技術(shù)型的企業(yè),要打出旅游“金名片”,就要在發(fā)展的同時(shí)加強(qiáng)對(duì)企業(yè)技術(shù)化發(fā)展,以其作為堅(jiān)強(qiáng)的后盾力量;另一方面,努力發(fā)展企業(yè)技術(shù)化發(fā)展,引入技術(shù)性設(shè)備等發(fā)展更高層次的工業(yè)化,可以促進(jìn)麗水在發(fā)展“綠谷”文化的同時(shí),還可以擁有堅(jiān)固的后翼,加快城鄉(xiāng)一體化發(fā)展,縮小貧富差距。
“嵌入式系統(tǒng)在企業(yè)中應(yīng)用”調(diào)查團(tuán)是麗水學(xué)院暑期實(shí)踐項(xiàng)目。麗水學(xué)院是一所市屬本科院校,作為智囊團(tuán)和點(diǎn)子庫(kù),為麗水市的發(fā)展提供重要參考。為了組織好此次暑期社會(huì)實(shí)踐,在上級(jí)團(tuán)組織和分院黨總支的領(lǐng)導(dǎo)下,調(diào)研團(tuán)統(tǒng)籌規(guī)劃、周密部署、精心實(shí)施,由麗水學(xué)院工學(xué)院嵌入式系統(tǒng)專業(yè)課老師任指導(dǎo)老師,電信專業(yè)、數(shù)控專業(yè)、計(jì)算機(jī)專業(yè)等7名同學(xué)為隊(duì)員,大家各司其職,分工明確,認(rèn)真落實(shí)實(shí)踐前后各項(xiàng)工作。
二、嵌入式系統(tǒng)在企業(yè)中應(yīng)用總體情況
過(guò)去:嵌入式系統(tǒng)通常是深嵌于最終產(chǎn)品之中,以系統(tǒng)控制為基礎(chǔ),一般不與外界連接。其微控制器在一個(gè)相當(dāng)封閉的系統(tǒng)中工作,定時(shí)查詢外設(shè)、收集數(shù)據(jù)、完成簡(jiǎn)單的處理工作,以及控制開(kāi)關(guān)和LED指示燈。此外,微控制器也進(jìn)行少量的數(shù)據(jù)操作或數(shù)據(jù)傳輸。由于它們不會(huì)與局域網(wǎng)(LAN)或互聯(lián)網(wǎng)(Internet)連接,所以不存在保安的問(wèn)題。比如:此次調(diào)研位于南山工業(yè)園的永通科技公司,此公司以生產(chǎn)LED等各種燈具為主,其中,就用到嵌入式系統(tǒng)編程控制進(jìn)行一系列生產(chǎn)線作業(yè)。
現(xiàn)在:現(xiàn)今的嵌入式系統(tǒng)一般都要連接到局域網(wǎng),這樣就有數(shù)
十、甚至上百個(gè)控制器連接在一起。舉例說(shuō),汽車制造和工業(yè)控制領(lǐng)域中的CAN有上百個(gè)微控制器在相互作用;ZigBee 無(wú)線控制網(wǎng)絡(luò)也有若多數(shù)量的微控制器互連在一起。而且,隨著嵌入式網(wǎng)絡(luò)越來(lái)越復(fù)雜(因此需要更大的網(wǎng)絡(luò)帶寬和更遠(yuǎn)的傳輸距離),嵌入式以太網(wǎng)也開(kāi)始涉足于工業(yè)控制、建筑物自動(dòng)化、醫(yī)療和保安產(chǎn)品市場(chǎng)。目前市場(chǎng)的發(fā)展趨勢(shì)是將這些局域網(wǎng)需要通過(guò)企業(yè)內(nèi)聯(lián)網(wǎng)或外聯(lián)網(wǎng)特別是互聯(lián)網(wǎng)與外界連接。嵌入式系統(tǒng)聯(lián)網(wǎng)要求的不斷增加,導(dǎo)致微控制器必須具備更多性能,更強(qiáng)的互連性,增加程序和數(shù)據(jù)內(nèi)存空間來(lái)支持相應(yīng)的通信協(xié)議,提高性能和處理帶寬以進(jìn)行系統(tǒng)傳輸數(shù)據(jù)、執(zhí)行通信協(xié)議和提供嚴(yán)密的保安能力。在需要通過(guò)內(nèi)聯(lián)網(wǎng)或互聯(lián)網(wǎng)監(jiān)控CAN或ZigBee 網(wǎng)絡(luò)的應(yīng)用環(huán)境中,嵌入式微控制器必須能支持10/100M以太網(wǎng)、CAN、ZigBee 網(wǎng)絡(luò)以及其他網(wǎng)絡(luò)協(xié)議,更必須具有先進(jìn)的安全加密算法。
另一個(gè)影響嵌入式系統(tǒng)的因素是通用串行總線(USB)的快速普及,尤其是在 PC 及其外設(shè)領(lǐng)域。與提供基本通信鏈路的傳統(tǒng)通用異步收發(fā)器(UART)接口
不同,USB是一種內(nèi)置豐富驅(qū)動(dòng)程序的即插即用式總線接口,能縮短開(kāi)發(fā)周期和設(shè)備安裝時(shí)間。不但設(shè)計(jì)人員喜歡這種接口,終端用戶也因?yàn)椴槐貫樾沦?gòu)的外設(shè)安裝加載新的設(shè)備驅(qū)動(dòng)程序而樂(lè)于使用。再考慮到采用筆記本電腦對(duì)復(fù)印機(jī)、自助售貨機(jī)、ATM機(jī),工廠自動(dòng)化設(shè)備、家用安全系統(tǒng)等完成系統(tǒng)設(shè)置和現(xiàn)場(chǎng)服務(wù),可以預(yù)計(jì)USB在嵌入式系統(tǒng)將占一重要席位。新款的筆記本電腦都只配備了USB接口,所以由它們服務(wù)的系統(tǒng)也必須有USB接口,否則這些系統(tǒng)便得采用舊款PC或USB適配器。
“信息家電——數(shù)字機(jī)頂盒”、“嵌入式應(yīng)用——汽車電子”、“智能玩具與機(jī)器人”、“工業(yè)控制——機(jī)床、電子、交通、航空航天等”等都是嵌入式系統(tǒng)現(xiàn)在的應(yīng)用。
將來(lái):2012年8月30日,微軟在廣州召開(kāi)嵌入式研討會(huì),與來(lái)自金融、電子、教育、醫(yī)療等行業(yè)客戶一同探討嵌入式技術(shù)的發(fā)展趨勢(shì),體驗(yàn)微軟全新的嵌入式平臺(tái)。隨著Windows 8即將發(fā)布,對(duì)應(yīng)的嵌入式的Windows平臺(tái)也一定會(huì)帶來(lái)全新的用戶體驗(yàn)。威創(chuàng)、廣電運(yùn)通、天河弱電、海格通信、金鵬集團(tuán)、廣有通信等業(yè)內(nèi)150多位客戶代表共同分享了微軟領(lǐng)先的嵌入式創(chuàng)新平臺(tái)及成功的行業(yè)解決方案。
2012年8月21日 至23日,深圳國(guó)際工業(yè)計(jì)算機(jī)及嵌入式系統(tǒng)展覽會(huì)由深圳市創(chuàng)意時(shí)代會(huì)展有限公司在深圳會(huì)展中心舉辦。此展會(huì)是中國(guó)唯一專著于IPC與嵌入式系統(tǒng)的技術(shù)型展會(huì)。匯集最新IPC與嵌入式系統(tǒng)產(chǎn)品與技術(shù),推動(dòng)IPC行業(yè)向開(kāi)放、融合、標(biāo)準(zhǔn)化方向發(fā)展,展現(xiàn)物聯(lián)網(wǎng)、智能電力、智能交通、智能安防、汽車電子等行業(yè)應(yīng)用方案,立足深圳,影響中國(guó)。還同期舉辦更多高端論壇,匯聚行業(yè)智慧。這次的主打產(chǎn)品是目前最具有發(fā)展?jié)摿Φ墓虘B(tài)硬盤。
因?yàn)楝F(xiàn)代加工技術(shù)發(fā)展,過(guò)去那種設(shè)定程序后就讓其固定地按程序運(yùn)行的方式已經(jīng)不能滿足人們對(duì)現(xiàn)代產(chǎn)品加工的要求了,人們迫切的希望嵌入式系統(tǒng)具有人機(jī)交互的功能。例如我們傳統(tǒng)的電視、電冰箱其中也嵌有處理器,但是這些處理器過(guò)去只是在控制方面應(yīng)用。而現(xiàn)在只有按鈕、開(kāi)關(guān)的電器顯然已經(jīng)不能滿足人們的日常需求,具有用戶界面,能遠(yuǎn)程控制,智能管理的電器是未來(lái)的發(fā)展趨勢(shì)。這也是嵌入式系統(tǒng)外設(shè)發(fā)展的一個(gè)原因。
三、目前存在的主要問(wèn)題
企業(yè)真正的需求是什么?
第一,IPC 并未完全符合工業(yè)真正的需求。首先在工業(yè)領(lǐng)域中,使用的設(shè)備通常會(huì)是一天24 小時(shí),一年365 天永不停機(jī)的運(yùn)作,而在這運(yùn)作期間不能有設(shè)備損壞的情形發(fā)生,所以它所需要的是高穩(wěn)定性,不是像商業(yè)所使用的一般穩(wěn)定就可以了,例如我們?cè)诳措娨晻r(shí),如果電視突然無(wú)法看了,于是拍兩下就可以看了,這是我們可以接受的;又計(jì)算機(jī)在開(kāi)機(jī)或使用到一半時(shí)發(fā)生當(dāng)機(jī),重新開(kāi)機(jī)之后就可以使用了,這也是可以被接受的,但是以上情形在工業(yè)的領(lǐng)域中是無(wú)法接受的。
那么要如何達(dá)到高穩(wěn)定性呢?最基本的需求是不要有風(fēng)扇,而且是在整個(gè)設(shè)備中都不要有風(fēng)扇,因?yàn)轱L(fēng)扇會(huì)將環(huán)境的灰塵吸入,造成設(shè)備損壞,所以沒(méi)有風(fēng)扇的設(shè)備將會(huì)增加其穩(wěn)定性;另外設(shè)備也必須要是密閉式的,也是在防止灰塵以及其它臟亂所侵害;再來(lái)工業(yè)所需要的設(shè)備最好是愈省電愈好,因?yàn)橛秒娏扛呦鄬?duì)的會(huì)增加成本;另一個(gè)工業(yè)需求是體積越小越好,因?yàn)轶w積小相對(duì)的在同一個(gè)空間中所能擺放的設(shè)備比較多,代表可以增加產(chǎn)能。
第二,技術(shù)人才隊(duì)伍數(shù)量上有所提升,但基礎(chǔ)仍非常薄弱,特別是復(fù)合型人才非常缺乏,不少人存在著從小城市跳槽到大城市的想法,導(dǎo)致人才流失。目前我市雖有3所大專院校設(shè)置了相關(guān)專業(yè),每年為麗水培養(yǎng)信息技術(shù)類本專科畢業(yè)生1000多人。
第三,資金投入力量不足,應(yīng)用程度不一致。一方面麗水工業(yè)還處于初步階段,企業(yè)發(fā)展勢(shì)頭雖好,但規(guī)模尚未壯大;另一方面,多數(shù)管理者對(duì)技術(shù)化與企業(yè)發(fā)展的關(guān)系認(rèn)識(shí)不足,因此對(duì)企業(yè)技術(shù)化的投入也很少。
四、對(duì)存在問(wèn)題提出的對(duì)策建議
信息時(shí)代,數(shù)字時(shí)代使得嵌入式產(chǎn)品獲得了巨大的發(fā)展契機(jī),為嵌入式市場(chǎng)展現(xiàn)了美好的前景,同時(shí)也對(duì)嵌入式生產(chǎn)廠商提出了新的挑戰(zhàn),從中我們可以看出未來(lái)嵌入式系統(tǒng)的幾大發(fā)展趨勢(shì):1,網(wǎng)絡(luò)互聯(lián)成為必然趨勢(shì);2,精簡(jiǎn)系統(tǒng)內(nèi)核、算法,降低功耗和軟硬件成本;3提供友好的多媒體人機(jī)界面;相信將來(lái)市場(chǎng)會(huì)出現(xiàn)更多,功能強(qiáng)大嵌入式系統(tǒng)產(chǎn)品。現(xiàn)提出以下建議:
一、政府引導(dǎo)與政策支持相結(jié)合。在要組織各種類型的研討會(huì)和培訓(xùn)班,使管理者進(jìn)一步了解企業(yè)技術(shù)化工作的重要性和緊迫性,特別是麗水位于浙西南欠
發(fā)達(dá)低于,信息相比較為閉塞。要通過(guò)國(guó)內(nèi)外的典型案例分析,使企業(yè)真正受到教育和啟發(fā)。同時(shí)各級(jí)政府在政策上也要對(duì)企業(yè)進(jìn)行引導(dǎo)和支持,把技術(shù)化建設(shè)列為技術(shù)改造的一個(gè)重要部分,從政策調(diào)控上促進(jìn)企業(yè)的技術(shù)化建設(shè)。
二、加強(qiáng)優(yōu)化人才建設(shè)。企業(yè)技術(shù)型建設(shè)光靠設(shè)備更新是遠(yuǎn)遠(yuǎn)不夠的,企業(yè)中,需要有一批既精通技術(shù)、又懂得企業(yè)經(jīng)營(yíng)管理的優(yōu)秀專業(yè)人才來(lái)長(zhǎng)期培訓(xùn)和幫助企業(yè)的所有其他相關(guān)人員,指導(dǎo)他們的各項(xiàng)工作,同時(shí)還要保證各個(gè)系統(tǒng)的正常運(yùn)行和對(duì)系統(tǒng)的完善與維護(hù)工作。因此,培養(yǎng)多層次的人才是企業(yè)取得成功的必要條件,也是企業(yè)長(zhǎng)遠(yuǎn)發(fā)展的客觀要求。麗水雖是欠發(fā)達(dá)地區(qū),但要有吸引人才的源動(dòng)力。
三、走校企聯(lián)合之路。
(1)充分利用現(xiàn)有資源促進(jìn)信息化建設(shè)。高校在企業(yè)信息化建設(shè)中扮演了一個(gè)極其重要的角色,高校的優(yōu)勢(shì)體現(xiàn)在:人才優(yōu)勢(shì)(科技人員眾多,各種專業(yè)人才聚集);知識(shí)與科技優(yōu)勢(shì);創(chuàng)新優(yōu)勢(shì)。高校的技術(shù)和人才可以較好地彌補(bǔ)中小企業(yè)技術(shù)人才不足的劣勢(shì)。實(shí)踐中,一方面,高校通過(guò)對(duì)企業(yè)人才需求信息及創(chuàng)新需求信息的捕捉,及時(shí)調(diào)整專業(yè)、課程及高校研究方向與內(nèi)容,主動(dòng)為企業(yè)創(chuàng)新活動(dòng)服務(wù)。另一方面,企業(yè)可以通過(guò)設(shè)立獎(jiǎng)學(xué)金、基金或訂單培養(yǎng)等方式與高校共同培養(yǎng)適應(yīng)于本企業(yè)自身需求特征的人才,同時(shí)開(kāi)展創(chuàng)新合作。
(2)走以競(jìng)促教、競(jìng)教結(jié)合的道路。參加各類競(jìng)賽不僅可以真正提高學(xué)生的動(dòng)手能力,培養(yǎng)學(xué)生創(chuàng)新意識(shí),也能培養(yǎng)學(xué)生很多非智力能力,例如展示能力、寫作能力、團(tuán)隊(duì)合作等。對(duì)學(xué)校和教師而言,競(jìng)賽也可以反饋教學(xué)中的諸多不足,進(jìn)而促進(jìn)教學(xué)體制的改革。麗水學(xué)院可以參加嵌入式比賽,條件成熟后可組織參加全國(guó)大學(xué)生嵌入式物聯(lián)網(wǎng)設(shè)計(jì)大賽。
第五篇:嵌入式系統(tǒng)發(fā)展趨勢(shì)
未來(lái)嵌入式系統(tǒng)的發(fā)展趨勢(shì) 在網(wǎng)絡(luò)、通信、微電子發(fā)展的基礎(chǔ)上,以及勢(shì)不可擋的數(shù)字化信息產(chǎn)品的強(qiáng)大需求推動(dòng)下,嵌入式技術(shù)具有廣闊的發(fā)展創(chuàng)新空間。
(1)低功耗、高性能、高可靠性的系統(tǒng)需求對(duì)我國(guó)芯片設(shè)計(jì)是一個(gè)機(jī)遇。以嵌入式處理 器為領(lǐng)頭的國(guó)產(chǎn)CPU、片上系統(tǒng)(SoC)、片上網(wǎng)絡(luò)系統(tǒng)(NoC)將有很大的發(fā)展。
(2)Linux正逐漸成為嵌入式操作系統(tǒng)的主流;J2ME技術(shù)也將對(duì)嵌入式軟件的發(fā)展產(chǎn)生深遠(yuǎn)影響。目前自由軟件技術(shù)備受青睞,并對(duì)軟件技術(shù)的發(fā)展產(chǎn)生了巨大的推動(dòng)作用。嵌入式操作系統(tǒng)內(nèi)核不僅需要具有微型化、高實(shí)時(shí)性等基本特征,還將向高可信性、自適應(yīng)性、構(gòu)件組件化方向發(fā)展;支撐開(kāi)發(fā)環(huán)境將更加集成化、自動(dòng)化、人性化;系統(tǒng)軟件對(duì)無(wú)線通信和能源管理的功能支持將日益重要。近幾年來(lái),為使嵌入式設(shè)備更有效地支持Web服務(wù)而開(kāi)發(fā)的操作系統(tǒng)不斷推出。這種操作系統(tǒng)在體系結(jié)構(gòu)上采用面向構(gòu)件、中間件技術(shù),為應(yīng)用軟件乃至硬件的動(dòng)態(tài)加載提供支持,即所謂的“即插即用”,在克服以往的嵌入式操作系統(tǒng)的局限性方面顯示出明顯的優(yōu)勢(shì)。
(3)Java虛擬機(jī)與嵌入式Java將成為開(kāi)發(fā)嵌入式系統(tǒng)的有力工具。嵌入式系統(tǒng)的多媒體化將變成現(xiàn)實(shí)。它在網(wǎng)絡(luò)環(huán)境中的應(yīng)用已是不可抗拒的潮流,并將占領(lǐng)網(wǎng)絡(luò)接入設(shè)備的主導(dǎo)地位。
(4)嵌入式系統(tǒng)與人工智能、模式識(shí)別技術(shù)的結(jié)合,將開(kāi)發(fā)出各種更具人性化、智能化的實(shí)際系統(tǒng)。智能手機(jī)、數(shù)字電視,以及汽車電子的嵌入式應(yīng)用,是這次機(jī)遇中的切入點(diǎn)。伴隨網(wǎng)絡(luò)技術(shù)、網(wǎng)格計(jì)算的發(fā)展,以嵌入式移動(dòng)設(shè)備為中心的“無(wú)所不在的計(jì)算”將成為現(xiàn)實(shí)。