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

如何在嵌入式LINUX中增加自己的設備驅動

時間:2019-05-14 23:02:46下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《如何在嵌入式LINUX中增加自己的設備驅動》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《如何在嵌入式LINUX中增加自己的設備驅動》。

第一篇:如何在嵌入式LINUX中增加自己的設備驅動

如何在嵌入式LINUX中增加自己的設備驅動程序 北京郵電大學電子工程學院 強磊

------------------

驅動程序的使用可以按照兩種方式編譯,一種是靜態編譯進內核,另一種是編譯成模塊以供動態加載。由于uClinux不支持模塊動態加載,而且嵌入式LINUX不能夠象桌面LINUX那樣靈活的使用insmod/rmmod加載卸載設備驅動程序,因而這里只介紹將設備驅動程序靜態編譯進uClinux內核的方法。下面以UCLINUX為例,介紹在一個以模塊方式出現的驅動程序test.c基礎之上,將其編譯進內核的一系列步驟:

(1)改動test.c源帶代碼 第一步,將原來的:

#include #include char kernel_version[]=UTS_RELEASE;改動為:

#ifdef MODULE #include #include char kernel_version[]=UTS_RELEASE;#else #define MOD_INC_USE_COUNT #define MOD_DEC_USE_COUNT #endif 第二步,新建函數int init_test(void)將設備注冊寫在此處:

result=register_chrdev(254,“test”,&test_fops);

(2)將test.c復制到/uclinux/linux/drivers/char目錄下,并且在/uclinux/linux/drivers/char目錄下mem.c中,int chr_dev_init()函數中增加如下代碼: #ifdef CONFIG_TESTDRIVE init_test();#endif

(3)在/uclinux/linux/drivers/char目錄下Makefile中增加如下代碼: ifeq($(CONFIG_TESTDRIVE),y)L_OBJS+=test.o Endif(4)在/uclinux/linux/arch/m68knommu目錄下config.in中字符設備段里增加如下代碼: bool 'support for testdrive' CONFIG_TESTDRIVE y

(5)運行make menuconfig(在menuconfig的字符設備選項里你可以看見我們剛剛添加的'support for testdrive'選項,并且已經被選中);make dep;make linux;make linux.text;make linux.data;cat linux.text linux.data > linux.bin。(6)在 /uclinux/romdisk/romdisk/dev/目錄下創建設備: mknod test c 254 0 并且在/uclinux/appsrc/下運行make,生成新的Romdisk.s19文件。

到這里,在UCLINUX中增加設備驅動程序的工作可以說是完成了,只要將新的linux.bin與Romdisk.s19燒入目標板中,你就可以使用自己的新設備test了。

第二篇:基于嵌入式Linux的設備驅動程序設計

基于嵌入式Linux的設備驅動程序設計

Linux為是一個成熟而穩定的操作系統。將Linux植入嵌入式設備具有眾多的優點,包括可剪裁和容易移植等,所以Linux操作系統在嵌入式領域獲得了廣泛的應用。嵌入式Linux一直是嵌入式領域的研究熱點,與PC架構不同,嵌入式系統的硬件具有多樣性和差異性,嵌入式系統的開發需要對特定系統進行硬件設計,同時還要針對這些硬件來編寫驅動程序。Linux內核就是通過驅動程序來同外圍設備打交道的,系統設計人員必須為每個設備編寫驅動程序,否則設備無法在操作系統下正常工作。設備驅動程序設計的基本概念與模型

設備驅動程序是操作系統內核與機器硬件之間的接口,它為應用程序屏蔽了硬件的細節,在應用程序看來,硬件設備只是一個設備文件,應用程序可以象操作普通文件一樣對硬件設備進行操作,設計驅動程序是內核的一部分,可以實現以下功能:

對設備初始化和釋放;

把數據從內核傳送到硬件,以及從硬件讀取數據;

讀取應用程序傳送給設備文件的數據,以及回送應用程序請求的數據;

檢測和處理設備出現的錯誤。

前面已經提到驅動程序的作用,而編寫驅動程序就是構造一系列可供應用程序調動的函數(包括open、release、read、write、llseek、ioctl等)。在用戶自己的驅動程序中,首先要根據驅動程序的功能,實現file_operations結構中的函數,不需要的函數接口可以直接在file_operations結構中初始化為NULL;file_operations變量會在驅動程序初始化時注冊到系統內部。當操作系統對設備操作時,會調用驅動程序注冊的file_operations結構中的函數指針。

以下是嵌入式linux2.4設備驅動程序的最簡模型。

具體實現前面定義的函數時,需注意下面幾點:

1)在test_init函數中要通過調用register_chrdev()函數來向內核注冊字符設備驅動程序。如果是塊設備,則還需調用mmmap()進行地址空間的映射,再調用register_blkdev()函數來向內核注冊塊設備驅動程序,在Linux系統中,對中斷的處理是屬于系統核心部分,因而如果設備與系統之間以中斷方式進行數據交換,則必須把該設備的驅動程序作為系統核心的一部分,也就是說設備驅動程序要通過調用request_irq()函數來申請中斷,通過free_irq()函數來釋放中斷(在test_cleanup中實現)。

2)open()函數和release()函數的具體實現有著一定的對應性,在open()函數中主要是執行打開設備時的一些初始化代碼,如果該驅動程序需要管理多個設備,那么還要獲取從設備號,根據從設備號來判斷需要操作的設備,其中,從設備號可通過調用函數MINOR(inode->i_rdev)來獲得,然后再調用宏MOD_INC_USE_COUNT來使得驅動程序使用計數器加1,而在release()函數中則要進行相反的處理。即調用宏MOD_DEC_USE_COUNT來減小驅動程序使用計數器。

3)歸根到底,驅動函數的實現就是調用內核所支持的函數(包括內核提供的API和用戶自己定義的寄存器操作函數)來完成對設備的操作,雖然嵌入式系統設備的種類眾多,不同設備操作的具體實現方法不可能相同,但是Linux操作系統提供了一系列特殊API,為開發內核驅動程序帶來了很大的方便,調用這些API時需要注意的是:通常情況下,應用程序是通過內核接口訪問驅動程序的(這是驅動程序的主要使用方式),因此驅動程序需要與應用程序交換數據,但是操作系統內核和驅動程序在內核空間中運行,而用戶程序在用戶空間中運行,用戶程序不能訪問內核空間,操作系統內核和驅動程序也不能使用指針或memcpy()等常規的C庫函與用戶空間傳輸數據,造成這種狀況的主要原因是linux操作系統使用了虛擬內存機制,使用了虛擬內存機制后,用戶空間的內存可能被換出,當內核使用用戶空間指針時,對應的頁面可能已經不在內存中了,因此在使用調用函數時要注意:設備驅動程序在申請和釋放內存時不是調用malloc()和free(),而調用kmalloc()和kfree();用于內核空間與用戶空間進行數據拷貝的函數主要有access_ok()(檢查某內存空間是否有權訪問),copy_to_user()和put_usr()(內核函數向用戶空間傳輸數據),copy_from_user()和get_user()(用戶空間向內核空間傳輸數據);關于內核空間與I/O空間的數據交換,不同體系結構的處理器對I/O的處理方式也不同,x86系列處理器中,I/O與內存完成不同,它是分開編址的,訪問它要使用專用的指令;而對ARM體系結構的處理器來說,則是不區分I/O和內存,統一編址的,可以使用同樣的指令訪問,在驅動程序中可以使用一系列函數來訪問I/O口,如outb()、outw()、outl()inb()、inw()、inl()、outsb()、outsw()、outsl()、insb()、insw()和insl()等。

Linux2.6與2.4內核驅動程序的區別

為了徹底防止對正在被使用的內核模塊進行錯誤操作,linux2.6內核在加載和導出內核模塊方面都較2.4內核有所改進,避免了用戶執行將導致系統崩潰的操作(例如強制刪除模塊等)。同時,當驅動程序需要在多個文件中包含 頭文件時,不必定義宏來檢查內核的版本。與2.4內核相比,2.6內核在可擴展性、吞吐率等方面有較大提升,其新特性主要包括:使用了新的調度器算法;內核搶占功能顯著地降低了用戶交互式應用程序;多媒體應用程序等類似應用程序的延遲;改進了線程模型以及對NPTL的支持,顯著改善了虛擬內存在一定成程度負載下的性能;能夠支持更多的文件系統;引進了內存池技術;支持更多的系統設備,在2.4內核中有約束大型系統的限制,其支持的每一類設備的最大數量為256,而2.6內核則徹底打破了這些限制,可以支持4095種主要的設備類型,且每個單獨的類型又可以支持超過一百萬個的子設備;支持反向映射機制(reverse mapping),內存管理器為每一個物理頁建立一個鏈表,包含指向當前映射頁中每個進程的頁表條目的指針。該鏈表叫PTE鏈,它極大的提高了找到那些映射某個頁的進程的速度。

Linux操作系統的設備驅動程序是在內核空間運行的程序,其中涉及很多內核的操作,隨著Linux內核版本的升級,驅動程序的開發必然也要作出相應的修改,總之,在linux2.6內核上編寫設備驅動程序時具體要注意以下幾個方面:

1)Linux2.6內核驅動程序必須由MODULE_LICENSE(“Dual BSD/GPL”)語句來定義許可證,而不能再用2.4內核的MODULE_LICENSE(“GPL”)。否則,在編譯時會出現警告提示。

2)Linux2.6內核驅動程序可以用int try_module_get(&module)來加載模塊,用module_put()函數來卸載模塊,而以前2.4內核使用的宏MOD_INC_USE_COUNT和MOD_DEC_USE_COUNT則可不用。

3)前面給出的字符型設備驅動程序模型中結構體file_operations的定義要采用下面的形式。這是因為在Linux內核中對結構體的定義形式發生了變化,不再支持原來的定義形式。

4)就字符型設備而言,test_open()函數中向內核注冊設備的調用函數register_chrdev()可以升級為int register_chrdev_region(dev_t from,unsigned count,char * name),如果要動態申請主設備號可調用函數int alloc_chrdev_region(dev_t * dev,unsigned baseminor,unsigned count,char * name)來完成;原來的注冊函數還可以用,只是不能注冊設備號大于256的設備,同理,對于塊設備和網絡設備的注冊函數也有著相對應的代替函數。

5)在聲明驅動程序是否要導出符號表方面有著很大的變化。當驅動程序模塊裝入內核后,它所導出的任何符號都會變成公共符合表的一部分,在/proc/ksyms中可以看到這些新增加的符號。通常情況之下,模塊只需實現自己的功能,不必導出任何符號,然而,如果有其他模塊需要使用模塊導出的符號時,就必須導出符號,只有顯示的導出符號才能被其他模塊使用,Linux2.6內核中默認不導出所有的符號,不必使用EXPORT_NO_SYMBOLS宏來定義;而在2.4內核中恰恰相反,它默認導出所有的符號,除非使用EXPORT_NO_SYMBOLS,因此在上面給出的范例中可以省略去該定義語句。

6)Linx內核統一了很多設備類型,同時也支持更大的系統和更多的設備,原來Linux2.4內核中的變量kdev_t已經被廢除不可用,取而代之的是dev_t。它拓展到了32位,其中包括12位主設備號和20位次設備號。調用函數為unsigned int iminor(struct inode * inode)和unsigned int imajor(struct inode * inode),而不再用Linux2.4版本中的int MAJOR(kdev_t dev)和int MINOR(kdev_t dev)。

所有的內存分配函數不再包含在頭文件 中,而是包含在 中,而原來的 已經不存在。所以當在驅動程序中要用到函數kmalloc()或kfree()等內存分配函數時,就必須要定義頭文件 而不是。同時,前面提到的申請內存和釋放內存函數的具體參數也有了一定的改變,包括:分配標志GFP_BUFFER被取消,取而代之的是GFP_NOIO和GFP_NOFS;新增了_GFP_REPEAT、_GFP_NOFAIL和_GFP_NORETRY分配標志等,使得內存操作更加方便。

8)因為內核中有些地方的內存分配是不允許失敗的,所以為了確保這種情況下得成功分配,linux2.6版本內核中開發了一種稱為“內存池”的抽象。內存池其實相當于后備的高速緩存,以便在緊急狀態下使用。要使用內存池的處理函數時,必須包含頭文件。內存池處理函數主要有以下幾個:mempool_t *mempool_create()、void*mempool_alloc()、void mempool_free()、int mempool_resize();

另外值得一提的是:2.6內核為了區別以.o為擴展名的常規對象文件,將內核模塊的擴展名改為.ko,所以驅動程序最后是被編譯為ko后綴的可加載模塊,在應用程序中加載驅動程序模塊時要注意。結語

驅動程序的開發作為嵌入式linux系統開發過程當中最重要的環節之一,與硬件特性和操作系統的內核有著緊密的聯系。隨著linux內核版本的升級,內核驅動程序必然要作出相應的改進,相信隨著嵌入式Linux系統在各個領域中的廣泛應用,具有可搶占實時性的Linux2.6內核必定會在嵌入式領域大顯身手。本文會對廣大的驅動程序開發人員有一定的幫助。

第三篇:基于ARM的嵌入式設備中uCLinux系統開發.

基于ARM的嵌入式設備中uCLinux系統開發

1引言信息家電和手持設備大大加速了嵌入式系統的發展,而ARM體系32位高性能、低功耗處理器和嵌入式操作系統Linux無疑成為佼佼者。因為Linux源代碼開放、免費,任何將其定制于PDA、掌上機或者便攜式設備感興趣的人都可以從因特網免費下載其內核和應用程序,并開始移植或開發,所以Linux在嵌入式開發領域得到穩步發展。uCLinux即是目前嵌入式linux中最流行的一種,它是針對微控制領域而設計的Linux系統,其最大特征就是沒有MMU(內存 1 引言

信息家電和手持設備大大加速了嵌入式系統的發展,而ARM體系32位高性能、低功耗處理器和嵌入式操作系統Linux無疑成為佼佼者。因為Linux源代碼開放、免費,任何將其定制于PDA、掌上機或者便攜式設備感興趣的人都可以從因特網免費下載其內核和應用程序,并開始移植或開發,所以Linux在嵌入式開發領域得到穩步發展。uCLinux 即是目前嵌入式linux 中最流行的一種,它是針對微控制領域而設計的Linux系統,其最大特征就是沒有MMU(內存管理單元模塊),適合嵌入式系統小型化應用。

uCLinux支持多任務,支持多種文件系統,提供了對網絡的強大支持,具有完整的TCP/IP協議棧,以及標準豐富的API。由于它的很多核心代碼都為沒有被MMU的處理器重新編寫過,對標準Linux龐大的應用程序庫和驅動程序庫作了刪改,所以它的內核要比常規的Linux 內核小很多;uCLinux包含Linux常用的API和小于512k的內核及相關的工具,總代碼只有900k左右,但同時保留了常規Linux 操作系統絕大多數的優點。2 基于ARM的硬件平臺

嵌入式領域32位處理器以ARM公司的ARM核最為流行,本文以Samsung公司的ARM7TDMI芯片S3C4510為處理器開發板為硬件平臺,開發板上與S3C4510相關的部分主要集成了如下器件:

(2M+512k)B 的Flash,其中AT29C010A為512B作為BootLoader,一片SST49VF160為1M×16bitFlash;

16MB 的DRAM,由兩片4M×16bits的HY57V641620提供 ; 16MB 的SRAM,由M-systems的新一代閃存盤DOC2000構成; Ethernet接口; ARM JTAG 接口。

開發板上與S3C4510相關部分功能框圖如圖1 所示。

IO

UART

S3C4510 JTAG

Ethernet

FLASH

F

DOC2000

232串口

JTAG接口

LED

以太網接口

用戶自定義邏輯

DRAM uCLinux內核移植

嵌入式 Linux 開發大致涉及三個層次:引導裝載程序、Linux 內核和驅動及應用程序。我們將討論涉及這三層的一些基本概念;深入了解引導裝載程序、內核和文件系統是如何交互的。

引導程序BootLoader的主要作用包括初始化處理器;初始化必備的設備;下載系統映象;初始化操作系統系統并準備執行。

引導裝載程序有兩種方法:專用軟件和微小的引導代碼。專用軟件可以直接與遠程系統上的閃存設備進行交互并將引導裝載程序安裝在閃存的給定位置中。而某些種類的嵌入式設備具有微小的引導代碼:根據幾個字節的指令,它將初始化一些 DRAM 設置并啟用目標上的一個串行(或者USB,或者以太網)端口與主機程序通信;然后,主機程序或裝入程序可以使用這個連接將引導裝載程序傳送到目標上,并將它寫入閃存。

嵌入式設備上一些流行的并可免費使用的 Linux 引導裝載程序有

Blob、Redboot 和 Bootldr。所有這些引導裝載程序都用于基于 ARM 設備上的 Linux,并需要Jflash-linux 工具用于安裝。一旦將引導裝載程序安裝到目標的閃存中,它就會執行我們上面提到的所有初始化工作。然后,它準備接收來自主機的內核和文件系統。一旦裝入了內核,引導裝載程序就將控制轉給內核。

Linux內核移植首先需要配置內核,可以用make menuconfig進行,根據板卡選擇必要的選項。主要包括系統類型選定(ARM system type),配置SDRAM/Flash地址;對塊設備、字符設備進行選擇和配置;配置文件系統;是否配置圖形用戶界面(GUI)。修改內核,我們選用上的uClinux-2.4.26-uc0.diff,已經為S3C4510移植好的內核,需要修改的地方很少。編譯內核,首先要在宿主機(安裝有Linux)上建立交*編譯環境,下載arm-elf-tools安裝在Linux 宿主機上的/usr/local/bin 目錄下?,F在的BLOB 和將來的uClinux 都要在這個環境下編譯。開始編譯uClinux 編譯內核:執行命令:

make menuconfig 在出現的對話框選Samsung/4510B 和 uC-libc,然后退出。如果選擇uC-libc編譯出錯,可以改選uClibc!

make dep

make lib_only

make user_only

make romfs

make image 產生 romfs.o,這一步將會出現一些錯誤報告,可忽略繼續下面的命令

make 如果make無錯誤,在images的目錄下你會看到有 image.ram 和 image.rom 兩個二進制的內核文件。即image.ram和image.rom。image.ram可以通過Bootloader下載到SDRAM中運行。image.rom可以寫入到Flash SST39VF160中直接運行。

down image.ram看看能不能運行

最后一步,uClinux調試完畢,通過jflashp將其寫入到Flash中:開發板斷電,把JTAG仿真器接到計算機的并口和板子的14PinJTAG插座上;接通5V電源;執行 FlashP w-f image.rom,大約30分鐘以后燒寫完畢。撤掉JTAG仿真器以后再上電就應該運行uClinux了。如果想把BootLoader寫回Flash,執行FlashP w-f bios.img即可。4 uCLinux驅動程序開發

嵌入式系統通常有許多設備用于與用戶交互,象觸摸屏、小鍵盤、滾動輪、傳感器、RS232接口、LCD等等。除了這些設備外,還有許多其它專用設備,包括閃存、USB、GSM、GPS等。內核通過所有這些設備各自的設備驅動程序來控制它們,包括 GUI 用戶應用程序也通過訪問這些驅動程序來訪問設備。uClinux 的驅動程序庫不可能包括實際項目系統中所有外圍硬件的驅動,所以在應用開發中,編寫驅動程序是一個重要步驟,驅動程序設計的好壞直接影響系統運行的穩定性和運行效率。

在uClinux 內核編寫驅動程序并不像其他操作系統那么復雜,實際上,所要做的只是為相應的設備編寫幾個基本函數并向VFS(virtual file system)注冊即可。當上層應用要使用該設備時,VFS 就會調用相應的設備函數。設備驅動程序通??蓺w為以下3 類: a)塊設備(block),以塊為單位,允許隨機訪問,多用緩存技術; b)字符設備(char),以字節為單位,只能按順序訪問,不用緩存; c)網絡接口(net)。

在本系統中,DOC作為塊設備可被模擬為IDE設備進行識別,系統用主設備號(MAJOR)和次設備號(MINOR)來唯一標識一般設備;相同主設備號表示同一類設備,次設備號表示同類設備的個數。所有設備在適當的目錄(通常是/dev目錄)下必須有相應的文件,這樣字符設備和塊設備都可以通過文件操作的系統調用完成。不同的是,塊設備操作經常和緩沖區聯系在一起。

字符設備的驅動程序通過在device_struct數據結構的chrdevs向量中增加一項的方法來向內核注冊自己。然后對這個設備的所有調用都用這個設備號來實現;

塊設備和字符設備都需要定義功能函數:對于每一個驅動函數來說,都有一些和此設備密切相關的功能函數,就最常用的字符設備來說,都存在著諸如open()、read()、write()、ioctrol()這一類的操作。當系統調用這些操作時,將自動的使用file-operations 結構中對應的函數來實現具體的操作;塊設備由于使用高速緩存,其驅動程序不需要保護自己的read()、write()和fsync()函數,但必須使用自己的open()、release()和ioctl()函數,函數原型為:

static int my_open(struct inode *inode,struct file *file);static int my_release(struct inode *inode,struct file *file);static int my_ioctl(struct inode *inode,struct file *file,unsigned int cmd,unsigned long age);

塊設備驅動程序的請求處理函數一般通過中斷實現。驅動程序被調用時CPU由內核程序控制,故不可搶占,驅動程序必須調用sleep_on()函數釋放對CPU的占用,在中斷服務子程序將數據復制到內核內核后,再發出wake_up()調用。

字符設備如LCD、USB應用廣泛,下面以此為例詳細說明添加設備驅動的過程。設備名稱為scre,設備號為254。塊設備與網絡設備可以比照處理。

在目錄/linux_2.4/drives/char編寫源程序scre.c,編寫字符設備的處理函數。

1.設備驅動原文件必須包括這樣的一個函數:

void scre_init(void){register(254, 'scre', &scre_fops)} 這個函數完成注冊.在linux-2.4.x/driver/mem.c 將會調用它。2.修改 linux-2.4.x/driver/char/Makefile 在適當位置添加一行:obj_$(CONFIG_SCRE)+= scre.o 3.修改linux-2.4.x/driver/char/Config.in, 添加一行:

bool 'scre device' CONFIG_SCRE,便于在 make menuconfig 時選擇

4.修改linux-2.4.x/driver/char/mem.c,在適當位置(你去找就會發現,在文件頭部)添加:

#ifdef CONFIG_SCRE

extern void scre_init(void);

#endif

在chr_dev_init()函數添加:

#ifdef CONFIG_SCRE

scre_init();

#endif

5.修改vendor/Samsung/4510b/Makefile,建立設備節點;在12---35行間,DEVICE 部分添加如下內容 :scre,c,254,0。

6.make menuconfig 選中scre device,編譯,下載;啟動后你會看到 /proc/devices 中字符設備多了一項 scre 254。

uClinux的Web技術,主要有三個Web服務器:httpd,thttpd和boa。Httpd簡單,但只能Web瀏覽,不支持認證、CGI,thttpd和boa Web服務器功能較全;而boa Web代碼簡單、速度快,適合嵌入式應用。Boa作為一個簡單的http服務器,與傳統服務器的主要區別是它是單進程的。boa在uClinux下的實現需要對boa.conf和mime.types作一些配置和修改,并且需在命令行指定配置文件所在目錄。配置完成后需要重新編譯內核,并選中boa選項,將編譯好的內核下載到開發板,啟動uClinux,完成IP設置,啟動boa Web后便可通過IE訪問網頁了。5 結語

uClinux在嵌入式領域憑借其穩定、良好的移植性,優秀的網絡功能,靈活完備的文件系統以及眾多的技術支持等優點得到廣泛應用,并將有更廣闊的應用前景。本文針對uClinux的開發應用步驟作了大致的闡述,對ARM應用平臺上的系統移植和應用開發作了分析,具有一定的指導意義。

參考文獻

[1].劉安昱 溫曉輝 劉志紅,基于S3C44B0X的uClinux的移植,《單片機與嵌入式系統應用》[J]2003.12.[2].徐雪松等,基于嵌入式Linux的DiskOnChip設備的驅動開發實現,《電子設計應用》[J]2003.12 [3].Linux on module project-Lom ARM7 ,.[4].朱珂等譯,《Linux編程白皮書》[M],機械工業出版社,2000.[5].趙炯,《Linux內核完全注釋(內核版本0.11)》[M],2003

第四篇:淺談基于嵌入式系統在教學中的應用論文

論文關鍵詞:嵌入式系統 Proteus ARM 應用

論文摘要:本文指出在嵌入式系統課程的各教學環節引入Proteus、ARM(重點介紹Proteus軟件)軟件,通過動態仿真模型的設計,能用到畢業設計以及創新設計當中。

1、嵌入式系統的概述

(1)從技術的角度定義:嵌入式系統是以應用為中心,基礎是計算機,能夠適應應用系統對功能、可靠性、及功耗嚴格要求的專用計算機。

(2)從系統的角度定義:嵌入式系統是能夠完成復雜功能的軟件和硬件的組合,并使其緊密粘合在一起的計算機系統?!扒度胧健狈从吵龅倪@些系統是更大系統中的一個完整部分,稱為嵌入式系統。

2、Proteus、ARM軟件介紹

Proteus是由英國Labcenter公司開發的嵌入式系統仿真及開發平臺,該軟件具有以下特點:

(1)能進行智能原理布圖;進行單片機軟件調試和單片機與外圍電路的協同仿真;滿足單片機軟件仿真系統的標準。

(2)支持常見的單片機類型和飛利浦公司ARM7(LPC系列)處理器及常見的外圍器件如8255,ADC0809。

(3)可以與Keil Version3,ADS1兩個集成開發環境結合,把用匯編和C語言編寫的程序編譯后,進行軟、硬件結合的系統仿真。

3、Proteus軟件的應用

3.1 Proteus軟件在教學中的應用

在教學的過程中,老師可以將Proteus和Keil 建立的虛擬實驗平臺搬到課堂上,能夠將實踐教學和理論教學融為一體,從而讓教學的效果得到提高。下面筆者引進一個實際的課堂教學實例。在講到外部中斷處理過程這一章節時,我們可以將Proteus和Keil進行聯調,然后通過仿真處理的步驟,可將單片機處理中斷的軟件執行過程以及單片機內部資源變化的情況以一種直觀地感受呈現給學生,從而能夠達到單純的理論教學難以達到的效果。

在運行Protues軟件的狀態下,按住Proteus中的電路閉合鍵,P3.2引腳會有一個下跳沿,PC= 0x0003H,指向AJMP INT0的轉移命令,堆棧的指針SP= 0.9H,數據存儲器的0.8H和0.9H單元存放著0.1H和0.5H,即該處存放著下一條指令的地址。因此,學生能夠迅速的知道,當外部有中斷地請求時,程序的自動存儲功能可以保存斷點的地址,同時程序將會轉到中斷服務程序的入口地址,因為中斷請求是由外部中斷0產生的,因此程序就會轉到外部中斷0的入口地址0003H。通過外部中斷執行的例子我們可以看出,在課堂教學上使用Protues和Keil 聯調建立的實驗平臺,我們可以將許多抽象概念直觀的介紹給學生,使學生不僅能觀察到軟件執行時單片機內部的I/ O口和存儲器的變化,還可以觀察到軟件程序和外圍電路之間的互動過程。

3.2 Proteus軟件的應用

目前所擁有的單片機實驗教學包括兩個關鍵的環節,即課內的實驗以及課程的設計。所有的實驗操作步驟基本上都是在實驗箱上完成的。由于受硬件實驗箱結構以及資源的限制,學生在做實驗的時候不能將所學的知識和軟件充分的融會貫通。所以當我們的學生進行自主設計的時候,很多的學生幾乎無法完成綜合性的實驗。假設采用了Proteus軟件的仿真實驗,就可以彌補硬件實驗能力的不足?;赑roteus軟件的實驗可以分為以下3個階段。

(1)驗證階段。此階段的主要任務是讓學生熟悉Proteus與Keil軟件的運行環境,使學生對單片機虛擬系統的仿真有自身的認識。實驗指導方面的教材只需要列出實驗的任務和要求、Proteus軟件的實驗原理圖、操作的步驟、流程以及和程序相關的源代碼等。學生就可可自行根據實驗步驟或實驗操作得到錄像進行操作、調試,以及觀察程序的運行結果。

(2)程序設計階段。這個階段主要是培養學生用Proteus繪制系統原理圖,以及使用Keil軟件進行源程序設計的能力,學生可以根據實驗的原理圖用Proteus繪制硬件電路圖,按照實驗的要求完成程序的設計,在Keil的環境下編寫出源代碼,調試成功后,加載程序到Proteus硬件圖仿真。

(3)綜合學習階段。此階段的主要目的是激發學生學習興趣,提高學生的主觀能動性、以及培養學生的創新能力。學生自主的根據實驗的任務和要求設計出硬件額電路(包括CPU型號、元器件及參數的設置等)并繪制出Proteus的硬件原理圖;根據硬件的功能模塊對軟件進行設計。完成對軟硬件設計之后,需對兩者進行聯調,充分利用Proteus與Keil軟件間的聯合仿真的功能,及時的發現并改正硬件電路以及程序源代碼的錯誤。系統仿真成功后,再進行實物的制作。在對課程的設計環節中,需要學生在Proteus環境下繪制出硬件的電路圖,在Keil軟件中編寫出設計程序的源代碼,并且在設計硬件電路時后盡可能的考慮到實驗箱的有限資源,便于在Keil中編寫的程序能夠更好的被移植到實驗箱上。學生可以針對不同的應用類型,選擇最適合的單片機,而不是僅僅局限于課堂上常講解到的單片機。學生也可在聯合仿真成功之后,再去進行電路的焊接、軟件系統的調試以及程序的固化等,可以避免因設計方案的不正確所造成的不必要的浪費。

4、結語

Proteus和ARM的嵌入式軟件在教學中的運用,能充分的利用機房的現有設備,減少了實驗設備的硬件維護又與實際的工程系統接近,拉近學習和就業之間的距離。實踐證明,這種嵌入式的教學方法不但能降低成本,經濟優勢明顯,而且還具有較高的推廣價值。

參考文獻

[1]萬軍,馬正華.嵌入式系統及應用課程實踐教學的研究[J].中國現代教育裝備,2009(15):7779.[2]李芳,李家慶.基于Proteus+Keil的單片機實驗仿真平臺[J].中國教育技術裝備,2009(4):78.[3]陳燕,李娜娜.Proteus和Keil在單片機教學中的應用[J].中國科技信息,2009(20):194195.[4]王瑋,曹會寧.Proteus仿真軟件在單片機一體化教學中的應用[J].機電產品開發與創新,2009,22(5)

第五篇:在平凡中耕耘自己

在平凡中耕耘自己

各位領導、各位同事,大家好!

很高興能有這樣的機會和大家在一起暢談工作中的一些感想和體會,我匯報的題目是:在平凡中耕耘自己。

我叫xxx,是鐵通xx分公司客服中心的一名受理員,自2003年從事該項工作。剛到客服中心工作時,我認為做好客服工作是件很簡單的事情,“不就是接接電話嘛,有什么大不了的”。但是,隨著工作的不斷深入,在分公司對客服工作的高標準、嚴要求下,面對千千萬萬不同用戶各種不同的問題,我深深地感覺到自己原來的認識是多么錯誤和幼稚。10050客戶服務中心并不只是接電話、聽聽用戶投訴那么簡單,它是體現鐵通形象和聲譽的窗口,是塑造鐵通品牌、贏得更多市場的平臺,也是解答和解決客戶每一個問題的服務站。肩負著如此重要的責任和使命,我清楚地知道,作為一名客服受理員,不但要有良好的職業道德,還必須具備熟練的服務技能。

為了達到這個目的,從那時起,我就暗下決心,要從工作中的每件小事做起,把業務做到最好最精,贏得客戶的信任。為此,我積極參加崗前學習,認真鉆研《中華人民共和國電信條例》、《中華人民共和國消費者權益保護法》、《鐵通客戶服務行為規范》、《用戶申訴管理辦法》、《話費爭議處理辦法》等服務條例、流程和標準;自覺參加分公司舉辦的《商務禮儀》、《鐵通各項業務資費標準、使用方法》、《電腦和互聯網基礎知識》、《簡單故障處理》等培訓班。并虛心向有服務經驗的同志學習,不斷提高自己的服務水平,立志達到“一口清”、“問不倒、考不倒”。近兩年來,通過學習和在工作中的實踐,我寫下了566頁近10萬字的學習筆記,并總結出了客服工作的 “四多”、“十要”?!八亩唷本褪牵骸坝脩舻男枨蠖鄦栆痪洹⒂脩舻碾y題多想一點、用戶的不會多說一次,用戶的不快多管一事”;“十要”就是:“一要嘴巴甜、二要微笑誠、三要動作輕、四要脾氣小、五要肚量大、六要少講客觀理由、七要行動快、八要效率高、九要觀察勤、十要腦筋活”。

今年六月的一天下午,一位用戶投訴說他們全家四月上旬就出國旅游,直到前幾天才回來,現在來交話費時,發現五月份竟然有三十多元的話費,認為鐵通亂收費,拒絕交費,同時揚言要到法院去控告鐵通。我接到投訴后馬上聯系相關部門將用戶有疑問的話費清單打印出來,通過一一撥打清單上被叫方電話詢問對方是否認識這位用戶,但撥完了所有的電話,對方都說不認識。問題到這里一下子就陷入了僵局,我也覺得很迷惑:難道真的是被人盜打了?我立刻通知分局人員上門檢查線路,結果沒有問題,話單也未發現異常。我清楚,如果這件事情處理不好,勢必會影響到鐵通的信譽和在用戶中的形象,無論如何我是絕對不能放棄的。于是,我決定再從被叫方進行突破,再次給清單上的號碼打電話,在了解到這些被叫方都是年輕人時,就試著詢問有沒有認識與用戶同姓的人或者記得打電話的人,結果他們都一致說出一個人的名字。經過近5天的努力,當我把這個意外得來的線索向用戶反饋時,用戶說這個人是他們的侄子。后來經過核實,確實是用戶的侄子在夫婦倆出國期間過來幫用戶看房子時使用了電話。了解情況后,用戶主動打來電話道歉并深有體會地說:“你們的服務真是太好了,沒想到這么快就把問題查清楚了,鐵通真的名不虛傳”。對用戶的“四多”、“十要”,使我感受到做一個鐵通人的自豪與驕傲。

把用戶作為鏡子可以正視自己,把意見作為鞭了可以驅動自己,只有用戶滿意了,我們的工作才能算完成。兩年多的工作,使我深深地愛上了客服受理員這一崗位,并在服務用戶、塑造鐵通形象中,實現了人生價值的提高。我知道,我的成長離不開用戶,因此,我要在平凡的客服崗位上,耕耘自己,回報用戶。為了達到這個目的,我一直把“用戶的需要作為我的工作方向,用戶的滿意作為我的工作追求”,并在日常的服務中做到“三個堅持”:堅持把感情融入服務;堅持“多問一句,多想一點,多說一句,多管一事”;堅持“服務上講求優質,責任上講求盡職”,把為客戶服務作為自己工作中的最大快樂,以真情打動用戶,以親情感動用戶,通過服務實現自己的人生價值。

2005年2月10日晚上九點多,那天正好是大年初二,家人團圓,合家歡聚的時候,一位xx寬帶用戶來電反映寬帶一天都上不了網,覺得很氣憤,要求退款,語氣非常強硬。接到申訴后,我先是好言安撫用戶,然后慢慢向用戶了解情況,但用戶態度的非常強硬,什么也不愿意說,只是要求退款。我再次向用戶表示歉意,同時請求用戶再給我一次為他服務的機會,并保證一定能處理好這件事。經過反復做用戶的思想工作,用戶最后是半信半疑答應了。受理完這件投訴之后,我馬上與分局長聯系,將用戶的情況詳細向分局長說明,并要求分局連夜派人到用戶家去處理。維修人員經過仔細檢查后確信是外線問題,但當時天又黑又冷,而且又是大過年的,維修人員要求第二天再去處理。“客戶問題無小事”!我清楚,只有通過貼心的服務才可能重新贏得用戶的心。于是,我耐心地說服了分局維修人員克服重重困難為用戶更換新線后解決了故障問題。上網問題解決后,用戶主動給我打來了電話:“你們的服務贏得了我的信任,選擇鐵通是正確的,我決定不退了!”

一分耕耘一分收獲,我的辛苦付出不僅為鐵通、為xx分公司樹立了良好的形象,也獲得了用戶的肯定,成為用戶信任的朋友。去年大年三十的晚上,剛好輪到我值夜班,聽著外面的爆竹聲聲,想到不能陪伴父母吃年夜飯時,心里不禁有些傷感,就在這時,我的同事將一個話筒遞給了我,說有人找。我一聽是一個男人的聲音,他說:x x號小姐,你好!我是你們的用戶,多次得到了你的良好服務,我一直銘記在心,今天打電話來也沒什么事,只是想和你說一聲,你們辛苦了,大過年的還要為我們這些老百姓服務,真是太感謝你們了,祝你們新年快樂!說實話,那一刻,我真的好感動,我覺得自己的辛苦沒有白費,用戶其實是理解我們的,我們不要把他們反映問題、提出建議看成是給我們找麻煩。正是這些用戶的問題、建議,使我們看到了自己缺點和工作中的不足,正是他們的意見,使我們在提高服務質量、參與市場競爭中找到了努力的方向,也正是他們的“不滿意”,促使我們不斷改善服務品質,在激烈的市場競爭中站穩腳跟!

一分汗水,一分榮耀,我的努力不僅得到了用戶的肯定,也得到了分公司的認可,在xx分公司開展的13次月度、客服考試中,我有11次獲得了第一名,2次獲得第2名,多次被評為分公司的“學習標兵”。在8月11日鐵通總部在xx舉行的由xx個省xx名選手參加的比賽中,我也是憑著自己的長期積累,一路過關斬將,最終奪得了個人和團體第二名的優異成績,為xx鐵通贏得了榮譽。

此文共有2頁12

下載如何在嵌入式LINUX中增加自己的設備驅動word格式文檔
下載如何在嵌入式LINUX中增加自己的設備驅動.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    在平凡中耕耘自己

    在平凡中耕耘自己 尊敬的各位領導、各位同事: 你們好! 我叫張華,是韶關市殯葬管理所的一名普通員工,今天很高興也很榮幸地能有機會,和大家在一起暢談工作中的一些感想和體會。下......

    一葉扁舟在驚濤駭浪中因為負重而增加平穩(范文大全)

    一葉扁舟在驚濤駭浪中因為負重而增加平穩,一位農婦在艱苦勞累時因為負重而變得強壯,同樣,我們每一個人的生命也會因適當的負重而精彩。人生的旅途中,如果生命的擔子太輕,就會精神......

    嵌入式系統在車輛導航監控系統中的應用

    2017屆結課論文 《嵌入式系統原理及應用》 學生姓名 學 號 所屬學院 專 業 計算機科學與技術 班 級 塔里木大學教務處制 塔里木大學課程論文 目錄 摘要 .........................

    在平凡中耕耘自己5篇

    在平凡中耕耘自己各位領導、各位老師: 大家好! 首先,非常感謝石家莊市教育局的各位領導為我們提供這次寶貴的學習機會!今天,能見到這么多教學一線的教育精英,并能站在這里跟大家......

    讓自己在反思中成長

    讓自己在反思中成長 ——“陽光師訓”有感 趙琳 9月19、20兩天,我有幸參加了略陽縣第二屆“陽光師訓”活動,聆聽了專家的講座,走進了名師的講堂,受益匪淺,感受頗多。 漢師附小袁......

    讓自己在面試中脫穎而出

    讓自己在面試中脫穎而出 找工作都少不了面試,怎樣才能讓自己在面試中脫穎而出,一直是求職者的煩惱! 首先面試的前幾天就要調整好自己的情緒,保持良好的精神面貌。最主要的是善用......

    在活動中歷練自己(5篇范文)

    在活動中成長 房縣實驗小學數學骨干團隊教師:鈔雪梅 骨干教師團隊的成長離不開學校領導的周密安排,更離不開身邊同事的默默支持,在這里我代表團隊向各位表示衷心的感謝!二年來,......

    勇于在艱苦環境中磨煉自己

    勇于在艱苦環境中磨煉自己授課人:王強不怕艱苦,不畏困難,是我軍的優良傳統,是每個革命軍人應該具備的意志和品格。一個青年參軍人伍后,軍營工作和生活的實踐給他留下的第一印象往......

主站蜘蛛池模板: 牲欲强的熟妇农村老妇女| 99精品众筹模特自拍视频| 无码中字出轨中文人妻中文中| 国产女人水真多18毛片18精品| 亚洲人成电影网站色www两男一女| 成人无码av网站在线观看| 久久国产劲爆∧v内射-百度| 久久精品免费一区二区| 国内老熟妇乱子伦视频| 7777亚洲大胆裸体艺术全集| 久久av老司机精品网站导航| 大香伊蕉在人线国产免费| 亚洲精品久久久无码av片软件| 亚洲av乱码一区二区三区香蕉| 日亚韩在线无码一区二区三区| 欧美黑人xxxx高潮猛交| 国产毛a片啊久久久久久保和丸| 免费国精产品自偷自偷免费看| 精品国产免费一区二区三区| 亚洲熟妇另类久久久久久| 亚洲综合色无码| 亚洲精品国产精品成人不卡| 国产精品亚洲аv久久| 大香线蕉伊人精品超碰| 国产色系视频在线观看| 国产高清av首播原创麻豆| 欧美肥妇多毛bbw| 人人做人人爽人人爱| 国产边打电话边被躁视频| 久久久久人妻一区精品色| 久久综合给合综合久久| 超级大爆乳奶牛被调教出奶水| 果冻传媒剧国产剧情mv在线| 国产成人无码免费视频麻豆| 午夜爽爽爽男女免费观看影院| 艳妇臀荡乳欲伦交换h在线观看| 国语自产少妇精品视频蜜桃| 亚洲第一狼人天堂久久| 国产极品视觉盛宴| 狠狠色噜噜狠狠狠888米奇视频| 亚洲精品一区国产精品|