logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux驱动-SPI-移植官方 mcp2515 驱动

从零编写了一个 mcp2515 的驱动程序, 旨在对 SPI 驱动相关的知识进行学习, 但实际上 mcp2515 的驱动程序在内核中已经提供了, 在本章节将会讲解如何移植官方mcp2515 驱动。厂家一般会提供常用外设的驱动程序 ,实际开发中直接移植对应的驱动程序到内核里面即可。如果是第三方外设 或者 其它系统的外设,需要移植到自己的内核中 是外设能够正常被驱动。也就是常见的系统移植。学会系统移植

文章图片
Linux驱动-SPI-MCP2515 写函数(收发操作)

在上个学习内容Linux-SPI-位修改指令-屏蔽字节-修改CANINE寄存器的值-修改工作模式中对 mcp2515 的工作模式进行了修改, 从配置模式修改为了环回模式, 而这里学习将会继续对 mcp2515 的驱动程序进行完善, 加入 mcp2515 的写函数和读函数, 从而实现数据的发送和接收这里写函数是什么呢?其实就是文件系统操作里面对外开放的接口:那对外释放的接口,我们这里实验最终要做什么

文章图片
Linux-SPI-位修改指令-屏蔽字节-修改CANINE寄存器的值-修改工作模式

在之前笔记中,特别在Linux驱动-SPI-MCP2515外设模块写CNF1-CNF2-CNF3-RXB0CTRL寄存器值文章中, 我们对寄存器进行了写入操作。CNF1/CNF2/CNF3 寄存器值在MCP2515 进行复位以后,首先要对几个寄存器进行写值操作,其实就是设置波特率操作。除了要配置 CNF1、 CNF2、 CNF3 三个 CAN 波特率配置寄存器之外, 还需要对 RXB0CTRL 接

文章图片
Linux驱动-SPI-MCP2515外设模块写CNF1-CNF2-CNF3-RXB0CTRL寄存器值

晶振本质:晶振利用石英晶体的压电效应(给电压会变形,变形会产生电压),当外界电信号频率与晶体的固有机械振动频率一致时,它会剧烈谐振,输出一个频率极其纯净的正弦波。时钟本质:晶振产生物理振荡,经过芯片内部电路整形后,输出给外设(如CAN控制器、串口)的稳定方波信号,才叫“时钟”(Clock)。#define CNF1 0x2a // 寄存器定义#define CANCTRL 0xf // CAN控制

文章图片
Linux驱动-SPI-mcp2515 复位函数

这里只简单写一个复位函数,为什么要写复位函数是通过外设数据手册来的,所以要先搞懂数据手册,通过数据手册来分析驱动业务流程,然后一步一步进行外设的驱动的业务无外乎读写外设寄存器进行控制。所以驱动连接外设后,在驱动第一步就是复位 进入配置模式。#define MCP2515_CMD_RESET 0xC0 // 复位指令 1100 0000会看使用手册、原理图、通过原理图接线设备树的配置相关技能,必须根

文章图片
MySql数据源、用PowerDesigner15自动将数据库里的表生成ER图

需求:需要从数据表中直接生成ER图。  操作方法:Sybase的PowerDesigner可以将数据库里的表关系反应到ER中。  一,配置Windows ODBC(也可根据不同数据库选择相应jar的方式连接数据库)  控制面板=>管理工具=>数据源(ODBC)点击添加=>名称选择 Microsoft ODBC for MySql=>数据源名称项填写一个标识符(myd

驱动开发-开发工具-VsCode 提高生产效率_代码补全

VsCode 只是一款编辑器、IDE开发工具而已,但是我自己这么多年用的AS、IDEA、PCharm比较多,对VS 其实不太熟悉。但是VS强大确实如此,好多编程语言都用它这里主要针对自己在学习 驱动内核过程中,需要引入指定的文件夹下的头文件并可以有代码提示的功能,加快学习、开发效率这里主要是为了实现代自动补全功能,无论在Linux、windows、mac 环境下,配置方式基本一致。

文章图片
Ubuntu安装5.7mysql坑,需要注意的问题

最近在ubuntu平台安装最新版本mysql5.7,遇到坑:Mysql出现任何用户不用密码|使用任何密码都能登录的问题修改用户密码,提示没有password字段对于第一个坑直接导致结果是:项目上线后,发现连续几天有人半夜共计服务器数据库,导致mysql数据库再也连接不上,整个产品线数据请求接口瘫痪。对于第二个坑无法实现更改用户密码,以前版本一直都是这样的呀。解决方案:坑1:...

MTK-Android13-Dialer 通话界面定制修改(二)

如下,基本需求:强烈建议参考之前的总结知识点:MTK-Android13-Dialer 通话界面定制修改有相关的源码阅读、理解。 方便自己熟悉源码 或者 借用AI 直接熟悉源码,针对性理解源码、理解相关模块。 针对性修改相关需求问题。这个主要做部分UI隐藏工作的。路径:2、移动功能面板位置-底部对其-frag_incall_voice更改位置,控制高度,路径:就是如下效果:路径:也是控制通话界面中

文章图片
Framework-自定义服务 + AIDL 与应用通信(二)

这里有两个目的:对比之前文章系统定制服务-IPC实战-系统新增aidl接口-实现自定义系统服务功能,在已经实现的基础上进一步讨论相关问题、核心知识点、弊端。进一步改进,按规范改进, 为什么要改进。不同实现方案的区别和联系,要搞清楚自定义服务这样一个简单的常用需求下的知识点细节和实现方案细节。服务实现写在:frameworks/base/services/core/AIDL接口定义写在:framew

文章图片
    共 18 条
  • 1
  • 2
  • 请选择