itop-3568開發板驅動開發指南-實驗程序的編寫


本實驗對應的網盤路徑為:iTOP-RK3568 開發板【底板 V1.7 版本】\03_【iTOP-RK3568開發板】指南教程\02_Linux 驅動配套資料\04_Linux 驅動例程\02。
本章實驗將編寫 Linux 下的驅動傳參實例代碼,通過“insmod”命令進行參數的傳遞,并將相應的參數打印到串口終端上。
編寫完成的 parameter.c 代碼如下(圖 5-3)所示

1、#include <linux/init.h>
2、#include <linux/module.h>
3、static int number;//定義 int 類型變量 number
4、static char *name;//定義 char 類型變量 name
5、static int para[8];//定義 int 類型的數組
6、static char str1[10];//定義 char 類型字符串 str1
7、static int n_para;//定義 int 類型的用來記錄 module_param_array 函數傳遞數組元素個數的變量 n_para
8、module_param(number, int, S_IRUGO);//傳遞 int 類型的參數 number,S_IRUGO 表示權限為可讀
9、module_param(name, charp, S_IRUGO);//傳遞 char 類型變量 name
10、module_param_array(para , int , &n_para , S_IRUGO);//傳遞 int 類型的數組變量 para
11、module_param_string(str, str1 ,sizeof(str1), S_IRUGO);//傳遞字符串類型的變量 str1
12、static int __init parameter_init(void)//驅動入口函數
13、{
14、static int i;
15、printk(KERN_EMERG "%d\n",number);
16、printk(KERN_EMERG "%s\n",name);
17、for(i = 0; i < n_para; i++)
18、{
19、printk(KERN_EMERG "para[%d] : %d \n", i, para[i]);
20、}
21、printk(KERN_EMERG "%s\n",str1);
22、return 0;
23、}
24、static void __exit parameter_exit(void)//驅動出口函數
25、{
26、printk(KERN_EMERG "parameter_exit\n");
27、}
28、module_init(parameter_init);//注冊入口函數
29、module_exit(parameter_exit);//注冊出口函數
30、MODULE_LICENSE("GPL v2");//同意 GPL 開源協議
31、MODULE_AUTHOR("topeet"); //作者信息

以上代碼將傳遞 int 類型參數 number、char 類型參數 name、int 類型的數組 para 和 char類型字符串 str1,并在驅動入口函數中,對各個參數進行打印。在下一小節會進行驅動加載測試。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/906235.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906235.shtml
英文地址,請注明出處:http://en.pswp.cn/news/906235.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

lesson03-簡單回歸案例(理論+代碼)

一、梯度下降 二、 線性方程怎么樣&#xff1f; 三、有噪音嗎&#xff1f; 四、讓我們看一個列子 五、如何優化 啟發式搜索 學習進度 六、線性回歸、邏輯回歸、分類 總結、 簡單線性回歸是一種統計方法&#xff0c;用于確定兩個變量之間的關系。具體來說&#xff0c;它試圖…

【C語言】易錯題 經典題型

出錯原因&#xff1a;之前運行起來的可執行程序沒有關閉 關閉即可 平均數&#xff08;average&#xff09; 輸入3個整數&#xff0c;輸出它們的平均值&#xff0c;保留3位小數。 #include <stdio.h> int main() {int a, b, c;scanf("%d %d %d", &a, &…

修改樣式還能影響功能?是的!

最常見的幾種樣式導致按鈕點擊無效的情況&#xff1a; 1. pointer-events: none; &#x1f449; 點擊被徹底屏蔽 癥狀&#xff1a;按鈕完全不能點擊&#xff0c;事件不會觸發。 可能原因&#xff1a;這個樣式讓元素“無法響應鼠標事件”。 button {pointer-events: none; }…

ai決策平臺:AnKo如何推動引領智能化未來?

ai決策平臺&#xff1a;AnKo如何推動引領智能化未來&#xff1f; ai決策平臺正在改變企業運營模式&#xff0c;AnKo作為ai決策平臺的代表&#xff0c;為智能管理提供新方向。借助ai決策平臺&#xff0c;組織在效率與準確性上實現飛躍。ai決策平臺的力量正被廣泛認可。 ai決策…

開疆智能Profient轉ModbusTCP網關連接ABB機器人MODBUS TCP通訊案例

本案例是通過開疆智能Profinet轉ModbusTCP網關將西門子PLC與ABB機器人進行通訊 因西門子PLC采用Profinet協議&#xff0c;而ABB機器人采用的是ModbusTCP通訊。故采取此種方案。 配置過程&#xff1a; 1.MODBUS/TCP基于以太網&#xff0c;故ABB機器人在使用時需要有616-1PCIN…

2089. 找出數組排序后的目標下標——O(n)做法!

本題要求在一個已排序的數組 nums 中&#xff0c;找出所有等于目標值 target 的元素下標。若不存在這樣的元素&#xff0c;則返回 {-1, -1}。解決該問題有兩種主要方法&#xff1a;二分查找法和統計計數法。 二分查找法&#xff1a;首先對數組進行排序&#xff0c;然后通過二分…

pyspark測試樣例

from pyspark.sql import SparkSession from pyspark.sql.functions import col, lit, concat 創建 SparkSession spark SparkSession.builder.appName(“SparkSQLExample”).getOrCreate() 創建 DataFrame&#xff08;可以是從 CSV、JSON 等文件讀取&#xff09; data […

【AWS入門】AWS身份驗證和訪問管理(IAM)

【AWS入門】AWS身份驗證和訪問管理&#xff08;IAM&#xff09; [AWS Essentials] AWS Identity and Access Management (IAM) By JacksonML 眾所周知&#xff0c;AWS亞馬遜云科技位列全球云計算服務第一位&#xff0c;并且持續為廣大客戶提供安全、穩定的各類云產品和服務。…

HarmonyOS NEXT 適配高德地圖FlutterSDK實現地圖展示,添加覆蓋物和移動Camera

HarmonyOS NEXT 適配高德地圖 Flutter SDK 實現地圖展示&#xff0c;添加覆蓋物和移動 Camera 在現代移動應用開發中&#xff0c;地圖功能是許多應用的核心組成部分之一。HarmonyOS NEXT 提供了強大的跨平臺開發能力&#xff0c;而高德地圖 Flutter SDK 則為開發者提供了豐富的…

三鍵標準、多鍵usb鼠標數據格式

三鍵標準usb鼠標數據格式 滾輪上滾 滾輪下滾 鼠標快速上移 鼠標快速右移 鼠標快速左移 鼠標右鍵單擊_抬起 鼠標中鍵單擊_抬起 鼠標左鍵單擊_抬起 鼠標左鍵先按_右鍵再按_同時抬起 鼠標左右鍵同時按下_同時抬起 鼠標左右鍵同時按下_右鍵先抬 多鍵usb鼠標…

軟件架構風格系列(7):閉環控制架構

文章目錄 引言一、閉環控制架構&#xff1a;讓系統學會“自我調節”的魔法&#xff08;一&#xff09;從溫控系統理解核心原理&#xff08;二&#xff09;核心組件解析 二、架構設計圖&#xff1a;閉環控制的“四大核心環節”三、Java實戰&#xff1a;手寫一個智能溫控系統&…

Python中的組合數據類型

一、列表類型 列表是指一系列的按特定順序排列的元素組成。使用[]定義列表&#xff0c;元素與元素之間使用英文的逗號分隔&#xff0c;列表中的元素可以是任意的數據類型。 #直接使用[]創建 lst[hello,world,99.8,100] print(lst)#可以使用內置的list()函數創建列表 lst2list(h…

集合進階2

Java不可變集合、Stream流與方法引用深度解析 一、不可變集合&#xff08;Immutable Collections&#xff09;進階指南 1.1 不可變集合核心特性 防御性編程&#xff1a;防止外部修改數據&#xff08;如傳遞集合給第三方庫時&#xff09;線程安全&#xff1a;天然支持多線程讀…

MySQL企業版免費開啟,強先體驗

近期Oracle突然宣布&#xff0c;MySQL企業版面向開發者免費開放下載&#xff0c;這一消息瞬間引爆DBA圈。作為數據庫領域的“頂配車型”&#xff0c;企業版長期因高昂授權費讓中小團隊望而卻步&#xff0c;如今免費開放無異于“勞斯萊斯開進菜市場”。 本文將深度拆解企業版的…

數據要素及征信公司數據要素實踐

數據要素及征信公司數據要素實踐 1.數據要素的定義與核心特征2.征信公司應用數據要素的實踐路徑3.總結1.數據要素的定義與核心特征 數據要素是數字經濟時代的新型生產要素,指以電子形式存在、通過計算方式參與生產經營活動并創造價值的數據資源。 其核心特征包括: 新型生產…

Golang 范型

引言 Go 從 1.18 開始正式支持泛型&#xff0c;帶來了更強的類型抽象能力&#xff0c;使得我們可以編寫更通用、可復用的代碼。本文檔將介紹下泛型與應用的一些內容 什么是泛型 泛型&#xff08;Generic&#xff09;是一種允許你編寫“參數化類型”的編程方式。你可以將類型…

vue-ganttastic甘特圖label標簽橫向滾動固定方法

這個甘特圖之前插件里&#xff0c;沒有找到能固定label標簽在屏幕上的辦法&#xff0c;用css各種辦法都沒有實現&#xff0c;所以我我直接手寫定位&#xff0c;用js監聽滾動條滾動的距離&#xff0c;然后同步移動甘特圖label標簽&#xff0c;造成一種定位的錯覺&#xff0c;以下…

VS2017編譯openssl3.0.8

openssl是一個功能豐富且自包含的開源安全工具箱。它提供的主要功能有:SSL協議實現(包括SSLv2、SSLv3和TLSv1)、大量軟算法(對稱/非對稱/摘要)、大數運算、非對稱算法密鑰生成、ASN.1編解碼庫、證書請求(PKCS10)編解碼、數字證書編解碼、CRL編解碼、OCSP協議、數字證書驗證、P…

16【架構進階】Flask藍圖與應用工廠模式:構建企業級Web應用的核心技巧

【架構進階】Flask藍圖與應用工廠模式&#xff1a;構建企業級Web應用的核心技巧 前言&#xff1a;為什么應用架構決定項目的天花板&#xff1f; 在Flask開發中&#xff0c;隨著項目規模的擴大&#xff0c;如何組織代碼結構成為決定項目可維護性和擴展性的關鍵因素。單文件應用…

系統架構設計-案例分析總結

系統架構設計-案例分析總結 2024年下半年系統架構設計師案例第1題 2022年下半年系統架構設計師案例第1題第2題 2021年下半年系統架構設計師案例第1題第2題 2024年下半年系統架構設計師案例 題&#xff1a;效用樹可用性中ping/echo策略和心跳策略比較 第1題 閱讀以下關于面向質…