在ti的am335x系列cortext-a8
晶元中,can模組採用
d_can
結構,實質即兩路
can介面。
在此分享一下對基於am335x的
linux can
驅動原始碼的理解。下面來分析它的驅動原始碼及其工作方式。
在linux
核心原始碼中,
can裝置驅動檔案如下:
drivers/net/can/d_can/d_can_platform.c
drivers/net/can/d_can/d_can.c
drivers/net/can/d_can/d_can.h
首先分析d_can_platform.c
檔案,驅動執行時,也是先從這裡開始。首先是驅動入口函式:
module_init(d_can_plat_init);
static int __init d_can_plat_init(void)
printk(kern_info d_can_drv_desc "\n");
return platform_driver_register(&d_can_plat_driver);
在驅動入口函式d_can_plat_init()
中,使用
platform_driver_register(&d_can_plat_driver)將結構體變數d_can_plat_driver
註冊為平台驅動。
static struct platform_driver d_can_plat_driver =
驅動雜記1 對驅動物件,裝置物件,裝置棧的理解
windows核心採用的是物件導向的程式設計方式,但使用的確是c語言。windows核心認為許多東西都是 物件 比如乙個驅動乙個檔案乙個裝置,物件 相當於乙個基類。乙個驅動物件代表了乙個驅動程式,或者說乙個核心模組。驅動物件結構如下 typedef struct driver objectdrive...
wifi驅動的理解(1) 驅動架構
在分析wifi驅動前,分享一下個人對linux驅動的一些了解,其實縱觀linux眾多的裝置驅動,幾乎都是以匯流排為載體,所有的資料傳輸都是基於匯流排形式的,即使裝置沒有所謂的匯流排介面,但是linux還是會給它新增一條虛擬匯流排,如platform匯流排等 介於wifi的驅動實在是太龐大了,同時又是...
對PLC的理解 1
昨晚電工實訓b本來以為就是焊焊板子,沒想到老師居然帶我們學起了plc,記錄一下plc學習過程,基本的知識,不予記錄,將一些值得注意的點或者不容易理解的點寫下來 plc的工作流程 輸入掃瞄 rightarrow 程式執行 rightarrow 輸出掃瞄,這就意味著plc對於輸入輸出都是統一掃瞄統一輸出...