chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

迅為RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南Linux中通用SPI設(shè)備驅(qū)動(dòng)

北京迅為電子 ? 2025-01-23 11:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在前面的章節(jié)中我們從0開(kāi)始編寫(xiě)了一個(gè)mcp2515的驅(qū)動(dòng)程序,而跟I2C設(shè)備類似,在Linux內(nèi)核中也有著通用SPI設(shè)備驅(qū)動(dòng),在本章節(jié)將會(huì)講解通用SPI設(shè)備驅(qū)動(dòng)的使用,并講解如何在應(yīng)用程序中通過(guò)ioctl對(duì)SPI進(jìn)行配置和使用。

硬件:迅為RK3568開(kāi)發(fā)板

wKgZO2eRsRWAO_PYAAYUE3Njxow482.pngwKgZPGeRsRWAFKbOAAMSa4gY_0A030.png

193.1內(nèi)核和設(shè)備樹(shù)配置

通用SPI設(shè)備驅(qū)動(dòng)在迅為提供的Linux內(nèi)核中默認(rèn)已經(jīng)勾選了,具體路徑如下所示:

> Device Drivers

> SPI support

wKgZPGeRsRSAN_IXAAL03SQ6qFk272.png

除了內(nèi)核支持之外,還需要修改設(shè)備樹(shù),由于之前已經(jīng)使能了SPI0,所以這直接修改之前編寫(xiě)的mcp2515設(shè)備樹(shù)節(jié)點(diǎn),具體設(shè)備樹(shù)為“kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi”,修改完成的mcp2515節(jié)點(diǎn)如下所示:rockchip,spidev

&spi0 {

status = "okay";

pinctrl-0 = <&spi0m1_cs0 ?&spi0m1_pins>;

pinctrl-1 = <&spi0m1_cs0 ?&spi0m1_pins_hs>;

mcp2515:mcp2515@0 {

compatible = "rockchip,spidev";

reg = <0>;

spi-max-frequency = <10000000>;

status = "okay";

};

};

wKgZO2eRsROAHmMuAADtryB9TdU540.png

保存退出之后,重新編譯內(nèi)核源碼,最后將編譯得到的boot.img燒寫(xiě)到開(kāi)發(fā)板上。

而為了方便起見(jiàn),迅為已經(jīng)將修改完成的設(shè)備樹(shù)以及編譯完成的內(nèi)核鏡像放到了“iTOP-3568開(kāi)發(fā)板\03_【iTOP-RK3568開(kāi)發(fā)板】指南教程\02_Linux驅(qū)動(dòng)配套資料\04_Linux驅(qū)動(dòng)程序\119_mcp2515_07\01_編譯好的內(nèi)核鏡像”路徑下。

開(kāi)發(fā)板啟動(dòng)之后,如果存在/dev/spidev0.0設(shè)備節(jié)點(diǎn),證明設(shè)備樹(shù)及內(nèi)核配置正確,如下圖所示:

wKgZO2eRsROAbwmZAAA1nnjEy94138.png

/dev/spidev0.0表示一個(gè)SPI總線上的具體設(shè)備。0.0是一個(gè)標(biāo)識(shí)符,用于區(qū)分系統(tǒng)中的不同SPI控制器和設(shè)備。這個(gè)標(biāo)識(shí)符由兩部分組成:

第一個(gè)數(shù)字 0:表示SPI總線的編號(hào)。一個(gè)系統(tǒng)中可能有多個(gè)SPI控制器,每個(gè)控制器對(duì)應(yīng)一個(gè)總線編號(hào),從0開(kāi)始。

第二個(gè)數(shù)字0:表示連接在該SPI總線上的具體設(shè)備編號(hào)。一個(gè)SPI總線上可以連接多個(gè)設(shè)備,每個(gè)設(shè)備通過(guò)片選信號(hào)(Chip Select, CS)進(jìn)行區(qū)分,設(shè)備編號(hào)從0開(kāi)始。

在下個(gè)小節(jié)中,將會(huì)講解內(nèi)核源碼中攜帶的spidev_test SPI測(cè)試程序進(jìn)行講解。

193.2 spidev_test工具使用

spidev_test是一個(gè)用于測(cè)試和調(diào)試SPI設(shè)備的命令行工具,通常在Linux系統(tǒng)上使用,它允許用戶直接通過(guò)SPI總線與設(shè)備進(jìn)行通信,可以發(fā)送數(shù)據(jù)并接收來(lái)自設(shè)備的響應(yīng)。

spidev_test源碼位于Linux源碼的kernel/tools/spi目錄下,如下圖所示:

wKgZPGeRsROAdSeZAACBKDW3zwQ742.png

然后使用以下命令對(duì)該工具進(jìn)行交叉編譯

make CC=/home/topeet/Linux/linux_sdk/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc LD=/home/topeet/Linux/linux_sdk/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ld

wKgZO2eRsRSAfrO2AAKlorNd3OY566.png

編譯好的文件如下圖所示。

wKgZPGeRsROAGWr5AACCgwV305E173.png

然后將編譯好的可執(zhí)行文件spidev_fdx和spidev_test拷貝到開(kāi)發(fā)板上使用即可。接下來(lái)介紹一下工具的使用方法

1.spidev_test工具的使用:

基本介紹:spidev_test是一個(gè)用于測(cè)試和驗(yàn)證Linux中SPI設(shè)備驅(qū)動(dòng)程序的用戶空間工具。它使用spidev接口與SPI設(shè)備通信。這個(gè)工具主要用來(lái)檢查SPI設(shè)備是否工作正常,以及對(duì)SPI設(shè)備進(jìn)行基本的讀寫(xiě)操作。

主要選項(xiàng)和參數(shù)

-D /dev/spidevX.Y:指定要測(cè)試的SPI設(shè)備節(jié)點(diǎn)。

-s :設(shè)置SPI時(shí)鐘頻率(以Hz為單位),例如-s 1000000表示1 MHz。

-d :設(shè)置數(shù)據(jù)傳輸之間的延遲時(shí)間(以微秒為單位)。

-b :設(shè)置每個(gè)數(shù)據(jù)字的位數(shù),通常是8或16。

-H:以十六進(jìn)制模式顯示傳輸?shù)臄?shù)據(jù)。

(3)示例操作

讀取設(shè)備信息:

spidev_test -D /dev/spidevX.Y -s 1000000

wKgZO2eRsROAfxj0AABfc6mTyUM391.png

這會(huì)使用 1 MHz的時(shí)鐘頻率從SPI設(shè)備讀取數(shù)據(jù),默認(rèn)情況下以十六進(jìn)制顯示。

寫(xiě)入和讀取數(shù)據(jù):

spidev_test -D /dev/spidevX.Y -s 1000000 -b 8 -d 1000 -H -p 'hello'

wKgZPGeRsROAKJk7AABLUUOK5SA732.png

這條命令會(huì)向 SPI設(shè)備寫(xiě)入字符串'hello',并以十六進(jìn)制模式顯示設(shè)備的響應(yīng)數(shù)據(jù)。-b 8指定每個(gè)字的位數(shù)為8,-d 1000設(shè)置1000微秒的延遲。

連續(xù)傳輸:

spidev_test -D /dev/spidevX.Y -s 1000000 -b 8 -p 'abcdefgh'

這個(gè)示例將連續(xù)發(fā)送字節(jié) 'abcdefgh'到SPI設(shè)備。

wKgZO2eRsRSAN2MBAABXRg26e3I839.png

2.spidev_fdx工具的使用

(1)基本介紹:spidev_fdx是一個(gè)用于全雙工SPI通信測(cè)試的命令行工具,主要用于在Linux系統(tǒng)上與SPI設(shè)備進(jìn)行雙向數(shù)據(jù)傳輸和測(cè)試。

(2)主要選項(xiàng)和參數(shù)

-D /dev/spidevX.Y:指定要測(cè)試的SPI設(shè)備節(jié)點(diǎn)。

-s :設(shè)置SPI時(shí)鐘頻率(以Hz為單位),例如-s 1000000表示1 MHz。

-w :指定要寫(xiě)入到SPI設(shè)備的數(shù)據(jù),可以是十六進(jìn)制或ASCII格式的字符串。

-r :指定從SPI設(shè)備讀取的數(shù)據(jù)大?。ㄒ宰止?jié)為單位)。

-b :設(shè)置每個(gè)數(shù)據(jù)字的位數(shù),通常是8或16。

-d :設(shè)置數(shù)據(jù)傳輸之間的延遲時(shí)間(以微秒為單位)。

(3)示例操作

以下是幾個(gè)使用 spidev_fdx工具的示例操作:

發(fā)送和接收數(shù)據(jù):

spidev_fdx -D /dev/spidevX.Y -s 1000000 -w 'hello' -r 5

這會(huì)向 SPI設(shè)備寫(xiě)入字符串'hello',并從設(shè)備讀取5個(gè)字節(jié)的響應(yīng)數(shù)據(jù)。

設(shè)置時(shí)鐘頻率和延遲:

spidev_fdx -D /dev/spidevX.Y -s 500000 -d 200 -w 'abcdef' -r 10

這個(gè)示例將 SPI時(shí)鐘頻率設(shè)置為500 kHz,數(shù)據(jù)寫(xiě)入延遲為200微秒,并向設(shè)備寫(xiě)入字符串'abcdef',然后讀取10個(gè)字節(jié)的響應(yīng)數(shù)據(jù)。

193.3應(yīng)用程序中如何使用SPI

在第一個(gè)小節(jié)中使能了內(nèi)核中的通用SPI,而在第二小節(jié)講解了spidev_test工具的使用,在本小節(jié)將根據(jù)spidev_test工具的源碼,編寫(xiě)mcp2515通用SPI驅(qū)動(dòng)程序的應(yīng)用程序。

在應(yīng)用程序中可以通過(guò)ioctl來(lái)獲取和配置SPI的相關(guān)屬性,并實(shí)現(xiàn)SPI數(shù)據(jù)的發(fā)送和接收,SPI的ioctl宏定義在“/usr/include/linux/spi/spidev.h”,部分ioctl cmd如下所示:

/*讀取/寫(xiě)入SPI模式(SPI_MODE_0..SPI_MODE_3)(限制為8位)*/

#define SPI_IOC_RD_MODE _IOR(SPI_IOC_MAGIC, 1, __u8) //讀取SPI模式

#define SPI_IOC_WR_MODE _IOW(SPI_IOC_MAGIC, 1, __u8) //寫(xiě)入SPI模式

/*讀取/寫(xiě)入SPI位順序*/

#define SPI_IOC_RD_LSB_FIRST _IOR(SPI_IOC_MAGIC, 2, __u8) //讀取SPI低位優(yōu)先

#define SPI_IOC_WR_LSB_FIRST _IOW(SPI_IOC_MAGIC, 2, __u8) //寫(xiě)入SPI低位優(yōu)先

/*讀取/寫(xiě)入SPI設(shè)備字長(zhǎng)(1..N)*/

#define SPI_IOC_RD_BITS_PER_WORD _IOR(SPI_IOC_MAGIC, 3, __u8) //讀取SPI每字位數(shù)

#define SPI_IOC_WR_BITS_PER_WORD _IOW(SPI_IOC_MAGIC, 3, __u8) //寫(xiě)入SPI每字位數(shù)

/*讀取/寫(xiě)入SPI設(shè)備默認(rèn)最大速度(Hz)*/

#define SPI_IOC_RD_MAX_SPEED_HZ _IOR(SPI_IOC_MAGIC, 4, __u32) //讀取SPI最大速度(Hz)

#define SPI_IOC_WR_MAX_SPEED_HZ _IOW(SPI_IOC_MAGIC, 4, __u32) //寫(xiě)入SPI最大速度(Hz)

/*讀取/寫(xiě)入SPI模式字段*/

#define SPI_IOC_RD_MODE32 _IOR(SPI_IOC_MAGIC, 5, __u32) //讀取SPI模式(32位)

#define SPI_IOC_WR_MODE32 _IOW(SPI_IOC_MAGIC, 5, __u32) //寫(xiě)入SPI模式(32位)

可以通過(guò)上述ioctl cmd來(lái)對(duì)SPI設(shè)備進(jìn)行初始化,編寫(xiě)完成的初始化函數(shù)如下所示:

int fd; // SPI設(shè)備文件描述符

int mode = SPI_MODE_0; // SPI模式

int bits = 8; //每字比特?cái)?shù)

int speed = 10000000; //最大SPI總線速度(Hz)

int spi_init(void){

int ret;

//打開(kāi)SPI設(shè)備文件

fd = open("/dev/spidev0.0", O_RDWR);

if(fd < 0){

printf("打開(kāi)/dev/spidev0.0錯(cuò)誤\n");

return -1;

}

/*

*設(shè)置SPI模式

*/

ret = ioctl(fd, SPI_IOC_WR_MODE32, &mode);

if (ret == -1)

printf("無(wú)法設(shè)置SPI模式\n");

ret = ioctl(fd, SPI_IOC_RD_MODE32, &mode);

if (ret == -1)

printf("無(wú)法獲取SPI模式\n");

/*

*設(shè)置每字比特?cái)?shù)

*/

ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits);

if (ret == -1)

printf("無(wú)法設(shè)置每字比特?cái)?shù)\n");

ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits);

if (ret == -1)

printf("無(wú)法獲取每字比特?cái)?shù)\n");

/*

*設(shè)置最大傳輸速度

*/

ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed);

if (ret == -1)

printf("無(wú)法設(shè)置最大傳輸速度\n");

ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed);

if (ret == -1)

printf("無(wú)法獲取最大傳輸速度\n");

printf("SPI模式: 0x%x\n", mode);

printf("每字比特?cái)?shù): %d\n", bits);

printf("最大速度: %d Hz (%d KHz)\n", speed, speed / 1000);

return 0;

}

通過(guò)該函數(shù)可以設(shè)置SPI的模式、比特?cái)?shù)以及最大傳輸速度,然后根據(jù)spidev_test工具源碼的傳輸函數(shù)來(lái)編寫(xiě)傳輸函數(shù),具體函數(shù)內(nèi)容如下所示:

/*

*執(zhí)行SPI數(shù)據(jù)傳輸.

*參數(shù):

* fd - SPI設(shè)備文件描述符

* tx -發(fā)送緩沖區(qū)

* rx -接收緩沖區(qū)

* len -數(shù)據(jù)長(zhǎng)度

*返回0表示成功,-1表示失敗.

*/

int transfer(int fd, char *tx, char *rx, int len)

{

int ret;

struct spi_ioc_transfer tr = {

.tx_buf = (unsigned long)tx,

.rx_buf = (unsigned long)rx,

.len = len,

.delay_usecs = delay,

.speed_hz = speed,

.bits_per_word = bits,

};

ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);

if (ret < 1){

printf("無(wú)法發(fā)送SPI消息\n");

return -1;

}

return 0;

}

在前面的章節(jié)中一步步的編寫(xiě)了mcp2515的復(fù)位函數(shù)、配置函數(shù)、讀函數(shù)和寫(xiě)函數(shù),而現(xiàn)在可以直接在應(yīng)用程序通過(guò)剛剛編寫(xiě)的傳輸函數(shù)向SPI設(shè)備發(fā)送一系列的SPI指令,一個(gè)編寫(xiě)完成的mcp2515的應(yīng)用程序代碼如下所示:

#include

#include

#include

#include

#include

#include

#include

#define RESET 0xc0 //復(fù)位命令

#define CANSTAT 0x0e // CAN狀態(tài)寄存器地址

#define READ 0x03 //讀命令

#define CANCTRL 0x0f // CAN控制寄存器地址

#define WRITE 0x02 //寫(xiě)命令

int fd; // SPI設(shè)備文件描述符

int mode = SPI_MODE_0; // SPI模式

int bits = 8; //每字比特?cái)?shù)

int speed = 10000000; //最大SPI總線速度(Hz)

int delay; //延遲時(shí)間(微秒)

/*

*初始化SPI通信.

*返回0表示成功,-1表示失敗.

*/

int spi_init(void){

int ret;

//打開(kāi)SPI設(shè)備文件

fd = open("/dev/spidev0.0", O_RDWR);

if(fd < 0){

printf("打開(kāi)/dev/spidev0.0錯(cuò)誤\n");

return -1;

}

/*

*設(shè)置SPI模式

*/

ret = ioctl(fd, SPI_IOC_WR_MODE32, &mode);

if (ret == -1)

printf("無(wú)法設(shè)置SPI模式\n");

ret = ioctl(fd, SPI_IOC_RD_MODE32, &mode);

if (ret == -1)

printf("無(wú)法獲取SPI模式\n");

/*

*設(shè)置每字比特?cái)?shù)

*/

ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits);

if (ret == -1)

printf("無(wú)法設(shè)置每字比特?cái)?shù)\n");

ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits);

if (ret == -1)

printf("無(wú)法獲取每字比特?cái)?shù)\n");

/*

*設(shè)置最大傳輸速度

*/

ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed);

if (ret == -1)

printf("無(wú)法設(shè)置最大傳輸速度\n");

ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed);

if (ret == -1)

printf("無(wú)法獲取最大傳輸速度\n");

printf("SPI模式: 0x%x\n", mode);

printf("每字比特?cái)?shù): %d\n", bits);

printf("最大速度: %d Hz (%d KHz)\n", speed, speed / 1000);

return 0;

}

/*

*執(zhí)行SPI數(shù)據(jù)傳輸.

*參數(shù):

* fd - SPI設(shè)備文件描述符

* tx -發(fā)送緩沖區(qū)

* rx -接收緩沖區(qū)

* len -數(shù)據(jù)長(zhǎng)度

*返回0表示成功,-1表示失敗.

*/

int transfer(int fd, char *tx, char *rx, int len)

{

int ret;

struct spi_ioc_transfer tr = {

.tx_buf = (unsigned long)tx,

.rx_buf = (unsigned long)rx,

.len = len,

.delay_usecs = delay,

.speed_hz = speed,

.bits_per_word = bits,

};

ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);

if (ret < 1){

printf("無(wú)法發(fā)送SPI消息\n");

return -1;

}

return 0;

}

int main(int argc, char *argv[]){

char reset_cmd[1] = {RESET}; //復(fù)位命令數(shù)組

char rd_canstat[2] = {READ, CANSTAT}; //讀CAN狀態(tài)寄存器命令數(shù)組

char canstat[4] = {0}; //存儲(chǔ)CAN狀態(tài)的緩沖區(qū)

char wr_canctrl[] = {WRITE, CANCTRL, 0x00}; //寫(xiě)CAN控制寄存器命令數(shù)組

//初始化SPI通信

spi_init();

//執(zhí)行SPI數(shù)據(jù)傳輸

// 1.發(fā)送復(fù)位命令

transfer(fd, reset_cmd, NULL, sizeof(reset_cmd));

// 2.讀取CAN狀態(tài)

transfer(fd, rd_canstat, canstat, sizeof(canstat));

printf("CAN狀態(tài)為%x\n", canstat[2]);

//清空canstat緩沖區(qū)

memset(canstat, 0, sizeof(canstat));

// 3.寫(xiě)入CAN控制

transfer(fd, wr_canctrl, NULL, sizeof(wr_canctrl));

// 4.再次讀取CAN狀態(tài)

transfer(fd, rd_canstat, canstat, sizeof(canstat));

printf("CAN狀態(tài)為%x\n", canstat[3]);

return 0;

}

193.4運(yùn)行測(cè)試

193.4.1編譯應(yīng)用程序

上一小節(jié)編寫(xiě)好的app.c應(yīng)用程序源碼已經(jīng)放在了“iTOP-3568開(kāi)發(fā)板\03_【iTOP-RK3568開(kāi)發(fā)板】指南教程\02_Linux驅(qū)動(dòng)配套資料\04_Linux驅(qū)動(dòng)程序\119_mcp2515_07\02_app”目錄下。

首先進(jìn)行應(yīng)用程序的編譯,因?yàn)闇y(cè)試APP是要在開(kāi)發(fā)板上運(yùn)行的,所以需要aarch64-linux-gnu-gcc來(lái)編譯,輸入以下命令,編譯完成以后會(huì)生成一個(gè)app的可執(zhí)行程序,如下圖所示:

aarch64-linux-gnu-gcc app.c -o app

wKgZPGeRsRSANg0bAABeXHmAIYw381.png

然后將編譯完成的可執(zhí)行程序拷貝到開(kāi)發(fā)板上.

193.4.2運(yùn)行測(cè)試

首先將193.1小節(jié)編譯好的內(nèi)核鏡像燒寫(xiě)到開(kāi)發(fā)板上,然后將可執(zhí)行程序app文件拷貝到開(kāi)發(fā)板上,拷貝完成如下所示:

wKgZPGeRsRSALKUIAAArIZ7hC34845.png

然后運(yùn)行可執(zhí)行程序app,如下圖所示。

wKgZO2eRsRSAf4wAAABwHyRZuaA939.png

在應(yīng)用程序中,發(fā)送完復(fù)位指令之后,第一條打印can狀態(tài)寄存器的值為80,表示mcp2515已經(jīng)處在了配置模式。第二條打印can狀態(tài)寄存器的值為00,表示mcp2515已經(jīng)處于正常模式,這就說(shuō)明上一小節(jié)編寫(xiě)的應(yīng)用程序正常運(yùn)行。

至此,關(guān)于通用SPI驅(qū)動(dòng)和在應(yīng)用程序中使用SPI實(shí)驗(yàn)就完成了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11621

    瀏覽量

    217802
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    6108

    瀏覽量

    112812
  • RK3568
    +關(guān)注

    關(guān)注

    5

    文章

    626

    瀏覽量

    7554
  • 迅為電子
    +關(guān)注

    關(guān)注

    0

    文章

    83

    瀏覽量

    302
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    北京RK3568開(kāi)發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)內(nèi)核HDF驅(qū)動(dòng)框架架構(gòu)

    北京RK3568開(kāi)發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)內(nèi)核HDF
    的頭像 發(fā)表于 03-11 14:13 ?1522次閱讀
    北京<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>OpenHarmony系統(tǒng)南向<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>內(nèi)核HDF<b class='flag-5'>驅(qū)動(dòng)</b>框架架構(gòu)

    RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)三級(jí)節(jié)點(diǎn)操作函數(shù)實(shí)驗(yàn)

    RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)三級(jí)節(jié)點(diǎn)操作函數(shù)實(shí)驗(yàn)
    的頭像 發(fā)表于 05-26 15:39 ?1258次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>指南</b>GPIO子系統(tǒng)三級(jí)節(jié)點(diǎn)操作函數(shù)實(shí)驗(yàn)

    基于RK3568開(kāi)發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)視頻

    基于RK3568開(kāi)發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)視頻
    的頭像 發(fā)表于 05-19 16:30 ?1714次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>基于<b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>的嵌入式學(xué)習(xí)之<b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動(dòng)</b>視頻

    RK3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)指南-輸入子系統(tǒng)

    RK3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)指南-輸入子系統(tǒng)
    的頭像 發(fā)表于 02-23 15:11 ?2023次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)指南</b>-輸入子系統(tǒng)

    北京RK3568開(kāi)發(fā)板嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)全新更新-CAN+

    北京RK3568開(kāi)發(fā)板嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)全新更新-CAN+
    的頭像 發(fā)表于 09-04 15:29 ?1419次閱讀
    北京<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>嵌入式學(xué)習(xí)之<b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動(dòng)</b>全新更新-CAN+

    RK3568開(kāi)發(fā)板SPI驅(qū)動(dòng)指南-mcp2515驅(qū)動(dòng)編寫(xiě):讀寄存器函數(shù)

    RK3568開(kāi)發(fā)板SPI驅(qū)動(dòng)指南-mcp2515
    的頭像 發(fā)表于 01-20 14:43 ?1490次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>SPI</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>指南</b>-mcp2515<b class='flag-5'>驅(qū)動(dòng)</b>編寫(xiě):讀寄存器函數(shù)

    【技術(shù)分享】RK3568開(kāi)發(fā)板使用TFTP加載內(nèi)核設(shè)備樹(shù)

    【技術(shù)分享】RK3568開(kāi)發(fā)板使用TFTP加載內(nèi)核設(shè)備樹(shù)
    的頭像 發(fā)表于 02-21 14:04 ?1101次閱讀
    【技術(shù)分享】<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>使用TFTP加載內(nèi)核<b class='flag-5'>設(shè)備</b>樹(shù)

    【北京】iTOP-RK3568開(kāi)發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)實(shí)操-HDF驅(qū)動(dòng)配置UART

    【北京】iTOP-RK3568開(kāi)發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)實(shí)操-HDF
    的頭像 發(fā)表于 03-25 11:02 ?1255次閱讀
    【北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>】iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>鴻蒙OpenHarmony系統(tǒng)南向<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>實(shí)操-HDF<b class='flag-5'>驅(qū)動(dòng)</b>配置UART

    RK3568驅(qū)動(dòng)指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)

    電子RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)
    的頭像 發(fā)表于 05-28 15:24 ?1033次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>指南</b>GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)

    RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

    RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入
    的頭像 發(fā)表于 05-29 14:05 ?818次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>指南</b>GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

    技術(shù)分享 | RK3568開(kāi)發(fā)板如何將 Linux 板卡虛擬成U盤

    技術(shù)分享 | RK3568開(kāi)發(fā)板如何將 Linux 板卡虛擬成U盤
    的頭像 發(fā)表于 06-04 10:57 ?862次閱讀
    技術(shù)分享 | <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>如何將 <b class='flag-5'>Linux</b> 板卡虛擬成U盤

    RK3568?重制版RK3568驅(qū)動(dòng)指南全面升級(jí)

    RK3568 重制版RK3568驅(qū)動(dòng)指南全面升級(jí)
    的頭像 發(fā)表于 07-28 15:25 ?1452次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>?重制版<b class='flag-5'>RK3568</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>指南</b>全面升級(jí)

    避坑指南RK3568開(kāi)發(fā)板選型,這5點(diǎn)沒(méi)看清千萬(wàn)別下手!(附驅(qū)動(dòng)開(kāi)發(fā)指南資源)

    避坑指南!RK3568開(kāi)發(fā)板選型,這5點(diǎn)沒(méi)看清千萬(wàn)別下手!(附驅(qū)動(dòng)
    的頭像 發(fā)表于 10-30 15:49 ?296次閱讀
    避坑<b class='flag-5'>指南</b>!<b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>選型,這5點(diǎn)沒(méi)看清千萬(wàn)別下手!(附<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)指南</b>資源)

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)第4章驅(qū)動(dòng)模塊傳參實(shí)驗(yàn)

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開(kāi)發(fā)板驅(qū)動(dòng)
    的頭像 發(fā)表于 11-06 14:25 ?156次閱讀
    【<b class='flag-5'>迅</b><b class='flag-5'>為</b>工業(yè)<b class='flag-5'>RK3568</b>穩(wěn)定可靠】itop-<b class='flag-5'>3568</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>第4章<b class='flag-5'>驅(qū)動(dòng)</b>模塊傳參實(shí)驗(yàn)

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開(kāi)發(fā)板Linux驅(qū)動(dòng)開(kāi)發(fā)實(shí)戰(zhàn):RK3568內(nèi)核模塊符號(hào)導(dǎo)出詳解

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開(kāi)發(fā)板Linux
    的頭像 發(fā)表于 11-21 13:25 ?551次閱讀
    【<b class='flag-5'>迅</b><b class='flag-5'>為</b>工業(yè)<b class='flag-5'>RK3568</b>穩(wěn)定可靠】itop-<b class='flag-5'>3568</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>實(shí)戰(zhàn):<b class='flag-5'>RK3568</b>內(nèi)核模塊符號(hào)導(dǎo)出詳解