【BeagleBone Black Rev. C试用体验】+设备树驱动

基于BeagleBone Black与LEDscape打造64x64双人LED街机全攻略 嵌入式系统开发中,实时控制与硬件驱动是核心挑战。通过可编程实时单元(PRU)实现纳秒级精准定时,能够高效驱动对时序要求苛刻的外设,如HUB75接口的LED矩阵。这种技术方案解放了主CPU,使其专注于应用逻辑,在游戏控制、工业显示等领域具有重要价值。本文以双人街机项目为例,详细解析了如何利用BeagleBone Black的PRU配合LEDscape驱动库,构建一个完整的64x64像素RGB LED显示系统,涵盖了从GPIO配置、电源管理到机械结构设计的全流程实践,为嵌入式爱好者和硬件开发者提供了从概念到成品 阅读详情
感觉设备树写驱动是未来的潮流。。。下面我们来讲讲设备树驱动开发。。

设备树语法我们这就不说了,去下面链接自己参考吧:
http://www.cnblogs.com/xiaojiang1025/p/6131381.html


一、修改设备树:
设备树文件在arch/arm/boot/dts目录下am335x-boneblack.dts文件

先贴代码:
/* add by Sourcelink */
/ {
        model = "TI AM335x BeagleBoneBlack";
        compatible = "ti,am335x-bone", "ti,am33xx";

        cpus {
                cpu@0 {
                        cpu0-supply = <&dcdc2_reg>;
                };
        };
       
        /* add by Sourcelink */
        source_gpio {
                        compatible = "sourcelink_gpio";
                        pinctrl-names = "sourcelink_gpio";
                        pinctrl-0 = <&sourcelink_pin>;
                        source_gpios = <&gpio2 12 0>;
        };
};

&am33xx_pinmux {
        rstctl_pins: pinmux_rstctl_pins {
                pinctrl-single,pins = <
                        /* eMMC_RSTn */
                        0x50 0x17        /* gpmc_a4.gpio1_20, OUTPUT | MODE7 | PULLUP */
                >;
        };

        /* add by Sourcelink */
        sourcelink_pin: pinmux_source_pins {
                pinctrl-single,pins = <
                        0x30 0x7        /* gpmc_ad12.gpio1_12, OUTPUT | MODE7 */
                >;
        };       
};
修改的地方我都有标注。。。
compatible是用来匹配的。。。
pinctrl-names用来匹配pinctrl设置信息。。。
source_gpios用来获取io信息。。。

我们用的是gpio1_12,设置mode7,且为输出模式。。。

切记gpio的地址标号是从1开始的。。。gpio1对应的是GPIO0_x的地址,我就是这出了问题一直没有调出来。。。


引脚的复用都是从800h地址开始:

对应管脚从gpio0_0开始四个字节开始增加,所以gpio1_12偏移对应:4*12 = 48 = 0x30


二、总线驱动
platform总线驱动这里就不介绍了。我也讲不明白。感兴趣的可以去 了解,以前学习的时候都是自己写个device再写个driver然后匹配。
现在有设备树了devcie省去了,减少了很大的代码冗余。。。。

写驱动编译有错误不要紧,一条条出解决,查问题。这个驱动刚写好时,一编译刷刷的一排error下来,看到额眼睛都花了,但是一个个看过去还是能解决的。无非就是头文件没包含
语法有问题。。调用的变量类型有问题。。

下面贴个简单的框架:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/cdev.h>
#include <linux/device.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
#include <linux/fs.h>
#include <asm/uaccess.h>
BeagleBone Black板第七课:GPIO编程控制 BBB板第七课:GPIO编程控制         在一上课我们通过IO函数做了简单的GPIO端口输出高低电平输出,实现对一个LED指示灯的点亮和关闭控制,本节将通过完整的C++程序,实现第四课Shell脚本的全部功能,实现两个LED指示灯的交替闪亮。 直接通过进入功能程序     1、实现echo 44 > export 打开端口功能     上一课简单测试中,通过手工在BBB板终端模式下 阅读详情

相关推荐

18、BeagleBone Black使用指南:从连接到应用

本博客详细介绍了如何使用BeagleBone Black(BBB),包括硬件连接、Linux系统启动、GPIO引脚配置以及LCD显示屏的设置和测试。此外,还讲解了如何通过Flask框架搭建一个简单的Web服务器,实现从不同设备向LCD发送和显示消息的功能。适用于初学者和嵌入式系统开发爱好者。

g5h6i的博客 146

微电网模型Matlab Simulink,风光储微电网,永磁风机并网仿真,光伏并网仿真,蓄电池仿真

通过探究风光储微电网、永磁风机并网仿真、光伏并网仿真、蓄电池仿真、柴油发电机以及光储微电网和风储微电网等方面的技术,我们可以更好地理解微电网的工作原理和优化方法,从而为微电网的发展做出更大的贡献。微电网模型Matlab Simulink,风光储微电网,永磁风机并网仿真,光伏并网仿真,蓄电池仿真,柴油发电机,光储微电网 风储微电网 Matlab仿真平台搭建的风光储微电网模型,风光柴储微电网,pwm控制,风力发电,光伏发电,微电网并网离网切换,并网孤岛切换,功能强大。永磁风机的并网仿真是一个非常重要的环节。

sjbextz的博客 399

《深入浅出强化学习原理入门》学习笔记(三)机器人找金币应用实例

《深入浅出强化学习原理入门》学习笔记(三)MDP应用实例

lxs3213196的博客 3187

【Kingbase人大金仓】授权文件更换

本文介绍了金仓数据库授权文件更换的步骤:1.通过ksql或客户端工具查询数据库版本;2.在官网下载对应版本的license.bat文件;3.替换前先备份原授权文件(使用tar命令压缩),再用新文件覆盖原文件。注意事项包括:版本号需严格对应,授权文件通常位于安装目录下,可使用find命令查找具体位置。操作需谨慎,建议先备份原文件以便恢复。

qq_34463511的博客 3459

倍福TwinCAT3 OPC UA配置全流程:从安装到无密码访问(附常见问题解决)

本文提供了倍福TwinCAT3 OPC UA配置的完整实战指南,重点讲解如何实现无密码游客访问。从软件安装、授权配置、服务器初始化到深度排错,详细解析了配置流程中的关键步骤与常见陷阱,帮助工程师高效打通PLC与上位系统的数据通讯通道。

vulkan6gpu的博客 472

反应动力学仿真软件:CHEMKIN_(12).CHEMKIN与其他软件的接口

通过上述介绍,我们详细探讨了如何将 CHEMKIN 与 MATLAB、Python、COMSOL、Aspen Plus 和 Ansys Fluent 等软件工具进行接口配置和数据交互。这些接口不仅能够显著提升 CHEMKIN 在反应动力学仿真中的应用效果,还能充分利用其他软件工具的强大功能,实现更复杂的数据处理和分析。希望这些内容对您在化学反应动力学仿真中的工作有所帮助。

kkchenjj的博客 1138

如何解决群晖Docker注册表查询失败/无法拉取镜像等问题

如何解决群晖Docker注册表查询失败/无法拉取镜像等问题

XiaoqiangClub的博客 1万+

把 ABAP 经验装进 GitHub Copilot 的按需大脑,Agent Skills 如何改变 ABAP 开发

2026 年 8 月,SAP Community 上出现了一次很有代表性的 ABAP 实验。开发者把标准 Flight Model 里的复制成自己的测试类,删除原有 ABAP Unit Test,再让 GitHub Copilot Agent 为方法重新生成测试代码。真正有意思的地方并不是 Copilot 会不会写,而是开发者给 Copilot 准备了两个专门的 Agent Skills,一个负责 ABAP Unit Test 的通用规则,一个负责 ABAP Test Double Framework。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 154

Python APP反爬实战:Frida+Charles抓包,破解签名校验

Charles抓包定位参数 → jadx-gui反编译找函数 → Frida Hook拿密钥/规则 → Python还原签名算法;Frida的核心价值:Hook住APP的加密函数,拿到“输入(密钥/参数)+输出(签名)”,无需懂复杂的逆向底层;严格对齐APP的参数排序、拼接规则、加密算法,差一点都会验证失败。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1535

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 【NanoPi Duo试用体验】+ 内核更新
下一篇: 【BeagleBone Black Rev. C试用体验】+内核更新
Sourcelink
博客等级 码龄12年 31粉丝 43原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值