1. 程式人生 > >第一個樹莓派驅動程式-helloword(五)

第一個樹莓派驅動程式-helloword(五)

編寫helloword驅動,直接上程式碼

Makefile

ifeq ($(KERNELRELEASE),)
    KERNELDIR := /home/carl/work/raspi/linux-rpi-4.9.y
    PWD := $(shell pwd)
modules:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=/home/carl/work/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf
- modules_install: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install ARCH=arm CROSS_COMPILE=/home/carl/work/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- clean: rm -rf *.o *~core.depend .*.cmd *.mod.c *.tmp_version *.order *.symvers else obj-m := hello.
o endif

hello.c

#include <linux/init.h>
#include <linux/module.h>

//初始化函式  
static int __init hello_init(void)  
{  
    printk(KERN_ALERT"Hello carl!\n");  
    return 0;  
}  

//退出函式  
static void __exit hello_exit(void)  
{  
    printk(KERN_ALERT"Goodbye carl,nice to see you.\n");  
}  

//對模組函式進行繫結  
module_init(hello_init); module_exit(hello_exit); //許可協議及作者資訊、可以不設定 MODULE_LICENSE("Dual BSD/GPL"); MODULE_AUTHOR("Carl.yang");

編譯完成後會生成hello.ko檔案
將此檔案拷貝到樹莓派
安裝:sudo insmod hello.ko
解除安裝:sudo rmmod hello
檢視核心列印資訊:dmesg

相關推薦

第一樹莓驅動程式-helloword

編寫helloword驅動,直接上程式碼 Makefile ifeq ($(KERNELRELEASE),) KERNELDIR := /home/carl/work/raspi/linux

第一樹莓JAVA測試程式-LED燈控制

1. 安裝JDK(用SecuritFX) 上傳jdk-8u151-linux-arm32-vfp-hflt.tar.gz到樹莓派/home/pi tar -zxvf jdk-8u151-linux-arm32-vfp-hflt.tar.gz sudo nano /e

樹莓3學習筆記7:7寸分辨率800 480顯示器配置

樹莓派、顯示器配置樹莓派3學習筆記(7):7寸(分辨率800 480)顯示器配置 樹莓派搭載分辨率為800X480的顯示器在顯示的時候可能會遇到無法全屏顯示的問題, 顯示器只有部分能夠顯示,有一部分是黑邊,對於這一種情況,我們只需進入系統的boot目錄,找到config.txt文件,或者直接在命

樹莓進階之路 (024) - windows遠程桌面連接樹莓通過xrdp服務

class win cse 端口 vncserver 通過 1-1 截圖 images 本文轉載:http://www.cnblogs.com/edgexie/p/6527992.html 在網上看到很多關於windows遠程桌面連接樹莓派的教程。我也按照教程試過了,遇到了

安裝nginx的步驟 樹莓桌面版環境Debian

load install 安裝包 /usr .net nbsp art host style 感謝:http://blog.csdn.net/shennongminblog/article/details/76158397 在此基礎上 使用源碼安裝比較容易 獲取pcre編

Django基於第一項目導入模板2

分享 template bubuko 項目 服務器 http brush 新建文件夾 temp 1.在模塊blog下新建文件夾templates,在templates下新建index.html文件 //index.html代碼如下: <html> <

第一缺失的最小正數優化

題目中提到線性時間和常數級的空間限制。 方法1中迴圈中雖然出現迴圈,但是時間複雜度仍然是線性級別的,且空間複雜度為常數級別; 方法2中採用遞迴思想。雖然時間複雜度滿足,但是空間複雜度隨著遞迴深入成與陣列長度線性相關; 方法3和方法1類似,只是方法3採用每次遇到小於陣列長

樹莓 二維碼QR識別 python篇

                         樹莓派 二維碼(QR)識別 python篇   要使用的工具 python Image 影象

樹莓 二維碼QR識別 c語言篇

                     樹莓派 二維碼(QR)識別 c語言篇    先看一下執行結果:   識別圖片二維碼,源程式:

嵌入式平臺選擇:樹莓 or BeagleBone BlackBBB

已經有很多文章比較過Arduino、樹莓派和BeagleBone Black(BBB),但本文的側重點不同。我相信大家都會認為Arduino和另外兩者明顯屬於不同的陣營,因為Arduino的用途完全不一樣。我曾試圖去尋找這樣一篇文章但最終沒有找到:它全面的比較樹莓派和

樹莓3安裝筆記1-安裝作業系統Raspbian以及安裝必要軟體

拿到了樹莓派3後,經過短暫的興奮,終於開始實戰安裝OS了。以下步驟基於官方的文章https://www.raspberrypi.org/learning/software-guide/quickstart/,選擇安裝的是RASPBIAN 1. 格式化micr

【最新】 樹莓3B 設定通用UART串列埠的方法

    去年入手了一個樹莓派3B,和很多人一樣,在使用串列埠時遇見了問題。因為新的樹莓派增加了藍芽功能,而這個功能恰好佔用了我們想要使用的串列埠,並且這種佔用是預設的。因此,我們需要關閉藍芽功能並更改串列埠配置。我找尋了很多網上的資料及教程,但可能由於我是一個十足的新手,

樹莓操作目錄以及常用命令整理——樹莓入手常見問題

文章雖然是主要寫樹莓派,其實也適用於絕大部分linux系統。畢竟樹莓派的官方推薦的raspbian系統同說白了就是linux。 所以對於平時工作中經常使用linux的同學來說,基本沒什麼學習成本的。不過整理一下,溫故一下也無妨。 如果平時接觸linux比較少,就當時入門瞭解

Linux裝置驅動程式學習13

匯流排 匯流排是處理器和一個或多個裝置之間的通道,在裝置模型中, 所有的裝置都通過匯流排相連, 甚至是內部的虛擬"platform"匯流排。匯流排可以相互插入。裝置模型展示了匯流排和它們所控制的裝置之間的實際連線。在 Linux 裝置模型中, 匯流排由 bus_type 結構

Linux裝置驅動程式學習7-核心的資料型別

由於前面的學習中有用到 第十一章 核心資料結構型別 的知識,所以我先看了。要點如下: 將linux 移植到新的體系結構時,開發者遇到的若干問題都與不正確的資料型別有關。堅持使用嚴格的資料型別和使用 -Wall -Wstrict-prototypes 進行編譯可能避免大部分

樹莓小白教程

配件:開發板、網線、電源和電源線(5V 2.1A 的充電寶和手機安卓充電線可代替)、路由器、 筆記本 軟體:XSHELL 或其他遠端登入軟體 開機前的準備: 物理裝置連線: 1、電源(充電寶

樹莓3B 設定通用UART串列埠的方法

三、測試串列埠在這個部分,我將使用膝上型電腦和樹莓派連線,從而達到測試串列埠是否可以正常使用的目的。其中,電腦需要使用USB轉TTL模組來實現與樹莓派的連線。        1、電腦端我的電腦系統為win10,使用的USB轉TTL模組型號為CP2102,該模組的驅動程式可以在

樹莓3 聲音感測器win10

這段時間太忙了,專案收尾一直沒有時間繼續搗鼓樹莓派,正好趁這個雙休抽點時間來和我的小夥伴玩耍一把。上篇文章提到我想用Win10 Iot Core 和買來的一堆感測器摩擦出一些火花,雖然,已經有很多前輩做過,但是我沒有做過啊,沒做過又怎麼能體會到實踐的樂趣呢。先來一張感測器全家福吧! 這麼一大堆感測器,要

樹莓—raspbian軟體源

本文基本涵蓋樹莓派Raspbian主流國內軟體源(stretch及jessie)及少量國外知名軟體源。 目前最新的系統Raspbian(2017-08-16及以後的系統)已經基於Debian 9 Stretch,請選擇正確的軟體源。 更換源後,需要更新本地軟體索引: sud

Linux裝置驅動程式學習12 -Linux裝置模型底層原理簡介

以《LDD3》的說法:Linux裝置模型這部分內容可以認為是高階教材,對於多數程式作者來說是不必要的。但是我個人認為:對於一個嵌入式Linux的底層程式設計師來說,這部分內容是很重要的。 以我學習的ARM9為例,有很多匯流排(如SPI、IIC、IIS等等)在Linux下已經被