新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > OK6410A學(xué)習(xí)筆記二:嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)環(huán)境的配置和測(cè)試

OK6410A學(xué)習(xí)筆記二:嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)環(huán)境的配置和測(cè)試

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
環(huán)境配置:

Window7 32-bit OS + VMware Workstation 6.5 + Ubuntu9.10

本文引用地址:http://www.butianyuan.cn/article/201611/319309.htm

FORLINX OK6410A開(kāi)發(fā)板

嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)環(huán)境的搭建

1. 安裝arm-linux-gcc交叉編譯器,并設(shè)置環(huán)境變量

2. 將飛凌提供的FORLINX_linux-3.0.1.tar.gz拷貝到/usr/src,解壓并進(jìn)入linux-3.0.1目錄

3. 執(zhí)行以下命令:#make oldconfig; #make prepare; 這兩個(gè)命令用來(lái)測(cè)試交叉編譯器和驅(qū)動(dòng)開(kāi)發(fā)需要的源文件包是否能正常使用,可能會(huì)出現(xiàn)提示arm-linux-gcc找不到的情況,這是因?yàn)椴襟E1中交叉編譯器沒(méi)有配置好。另外,可以修改頂層Makefile文件中的CROSS_COMPILE來(lái)設(shè)置交叉編譯器,然后執(zhí)行#make scripts/使能新的交叉編譯器。

嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)環(huán)境的測(cè)試

最好的方法莫過(guò)于用HelloWorld實(shí)例來(lái)測(cè)試一下。

//hello.c

#include

#include

MODULE_LICENSE("Dual BSD/GPL");

static int __init s3c6410_hello_init(void)

{

printk(KERN_EMERG "Hello World! This is the sample driver of S3C6410!n");

return 0;

}

static void __exit s3c6410_hello_exit(void)

{

printk(KERN_EMERG "Hello World exit!n");

}

module_init(s3c6410_hello_init);

module_exit(s3c6410_hello_exit);

//Makefile

obj-m:=hello.o

KERNELDIR?=/usr/src/linux-3.0.1

default:

$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules

clean:

rm -rf *.o *~ *.ko *.mod.c *.order *.symvers

以上部分是源碼和Makefile文件,執(zhí)行#make進(jìn)行編譯,#make clean清除編譯生成的文件。


接下來(lái),將hello.ko文件拷貝到SD卡中,給OK6410A開(kāi)發(fā)板上電,進(jìn)入sdcard目錄(使用DNW工具進(jìn)行調(diào)試),執(zhí)行#insmod hello.ko加載hello.ko模塊進(jìn)入內(nèi)核,執(zhí)行#lsmod查看系統(tǒng)當(dāng)前的驅(qū)動(dòng)模塊。





評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉