『壹』 造硬體驅動程序一般用什麼語言
我是來膜拜一樓的,樓主不用管我當我透明就好了……
『貳』 硬體驅動程序是用什麼編程語言寫的它的原理是
你好!
匯編語言。
如果對你有幫助,望採納。
『叄』 如何編寫驅動程序
代碼:
#include<linux/mole.h>
#include<linux/kernel.h>
#include<asm/io.h>
#include<linux/miscdevice.h>
#include<linux/fs.h>
#include<asm/uaccess.h>
//流水燈代碼
#define GPM4CON 0x110002e0
#define GPM4DAT 0x110002e4
static unsigned long*ledcon=NULL;
static unsigned long*leddat=NULL;
//自定義write文件操作(不自定義的話,內核有默認的一套文件操作函數)
static ssize_t test_write(struct file*filp,const char __user*buff,size_t count,loff_t*offset)
{
int value=0;
int ret=0;
ret=_from_user(&value,buff,4);
//底層驅動只定義基本操作動作,不定義功能
if(value==1)
{
*leddat|=0x0f;
*leddat&=0xfe;
}
if(value==2)
{
*leddat|=0x0f;
*leddat&=0xfd;
}
if(value==3)
{
*leddat|=0x0f;
*leddat&=0xfb;
}
if(value==4)
{
*leddat|=0x0f;
*leddat&=0xf7;
}
return 0;
}
//文件操作結構體初始化
static struct file_operations g_tfops={
.owner=THIS_MODULE,
.write=test_write,
};
//雜設備信息結構體初始化
static struct miscdevice g_tmisc={
.minor=MISC_DYNAMIC_MINOR,
.name="test_led",
.fops=&g_tfops,
};
//驅動入口函數雜設備初始化
static int __init test_misc_init(void)
{
//IO地址空間映射到內核的虛擬地址空間
ledcon=ioremap(GPM4CON,4);
leddat=ioremap(GPM4DAT,4);
//初始化led
*ledcon&=0xffff0000;
*ledcon|=0x00001111;
*leddat|=0x0f;
//雜設備注冊函數
misc_register(&g_tmisc);
return 0;
}
//驅動出口函數
static void __exit test_misc_exit(void)
{
//釋放地址映射
iounmap(ledcon);
iounmap(leddat);
}
//指定模塊的出入口函數
mole_init(test_misc_init);
mole_exit(test_misc_exit);
MODULE_LICENSE("GPL");
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:
#include<math.h>//一些數學函數的原型,以及相關的類型和宏
如果需要包含針對程序所開發的源文件,則應該使用第二種格式。
採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在當前項目中的函數原型、類型定義和宏
你可以在#include命令中使用宏。如果使用宏,該宏的取代結果必須確保生成正確的#include命令。例1展示了這樣的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
當上述程序代碼進入預處理時,如果_DEBUG_宏已被定義,那麼預處理器會插入myProject_dbg.h的內容;如果還沒定義,則插入myProject.h的內容。
『肆』 驅動程序用什麼語言編寫的驅動後可以被什麼東西識別是cpu么識別么
一般是用C語言寫的
驅動可不是想寫就能寫出來,要對C語言、匯編、硬體十分了解才行,三兩下是寫不出來的。
是被系統識別的,要在注冊表裡注冊了才能用。
『伍』 驅動程序是什麼語言做的!
驅動開發工具和驅動測試工具
2000ddk 98ddk NTddk在網上是可以很容易的找到的.
xpddk ifsddk包括各個版本(2600, 3790) WDF 不是那麼容易找的到
http://bbs.zndev.com/thread.php?fid-13.html,這裡面就有地址可以下載,我沒有試過不知道到底可以不可以下載的.
DriverStudio softice Windbg windriver 等等測試工具的下載基本上跟上面的情況是一樣的.
最新的ds3.2一般是不好找到的.
我只知道用DDK,具體用法不知道,建議你去一個比較專業的驅動程序開發網去學學,那裡的人比這里的專業:
http://bbs.zndev.com/thread.php?fid-11.html
『陸』 設備驅動程序的開發
你是指的windows驅動開發吧
先了解驅動原理,結構性的東西
有兩本書,我現在手上都有,很經典
《wdm設備驅動程序開專發》
《windwos驅動開發技術詳解》
前面那本是講driver studio環境(國外的一個開發驅動的輔助軟體)的,後面這本時間DDK開發環境的,就是微軟提供的。
driver studio是對ddk的一種封裝,方便上手,而且很易於建立驅動工程,能節省不少時間,但是如果你想要做一個高手,還是從ddk開始做起,能更加理解windows的驅屬動結構,兩者的詳細區別,你可以在網上搜索一下,有很多帖子介紹的。安裝了ddk和driver studio後,他們的幫助文檔,和附帶的演示代碼都是很重要很權威的學習工具!多看看,要比在網上搜索答案更使用。
『柒』 硬體驅動程序是用什麼編程語言寫的
用啥的都有啊,匯編,C,C++等等
『捌』 操作系統和驅動程序是用什麼語言編寫的
請不懂不要隨便回答別人,這樣誤導別人.
WINDOWS,LINUX/UNIX系統都是用C語言編寫的.
可以說90%以上的代碼都是C語言寫成,只有少量的核心代碼是用匯編完成的.
這在計算機行業來說,已經是通用的知識.稍微懂一點系統的人都知道.
操作系統和驅動程序是用C語言編寫的.
『玖』 驅動程序 都是用什麼語言寫的!
現在好像都是用c,c++寫的
以前用匯編,太慢了,所以現在改變了
但是如果對速度要求很厲害的函數,還必須用匯編
比如顯卡驅動