- 博客(134)
- 资源 (7)
- 收藏
- 关注
原创 rt-thread通过spi连接W25Q32后无法读取ID
**不支持 SFDP 怎么办** :如果该 Flash 不支持 SFDP 标准,SFUD 会查询配置文件 ( [`/sfud/inc/sfud_flash_def.h`](https://github.com/armink/SFUD/blob/4bee2d0417a7ce853cc7aa3639b03fe825611fd9/sfud/inc/sfud_flash_def.h#L116-L142) ) 中提供的 **Flash 参数信息表** 中是否支持该款 Flash。
2022-11-28 09:52:22
1832
原创 TR-Thread ENV工具无法拉取线上组件包问题
在menuconfig里面配置了线上组件包,但是并没有将包拉下来,使用pkgs --update命令也没用。
2022-11-19 21:34:41
270
原创 STM32普通IO模拟SPI和W25Q32通信调试
目录1、参考网上的程序编写SPI读写函数2、参考w25q32的例程读取芯片ID3、读取芯片ID时遇到的问题问题1:没有返回数据问题2:返回芯片ID错误1、参考网上的程序编写SPI读写函数 w25q32可使用spi模式0和模式3. u8 redata;u8 SPI_FLASH_SendByte(u8 data){ u8 i; u16 j=0; redata = 0; for(i=0;i<8;i++) {// for(j=0;j&...
2022-05-16 18:48:28
3258
1
原创 GD32开发笔记
1、修改外部晶振频率的地方对于主频在120M以下的MCU,其外部晶振最好用8MHZ的, 这样倍频正好最大到120M,但是如果用的25M的晶振,那么只能用100M的主频了,在往上就要有小数了。所以在主频最高200M时的MCU采用25MHZ的晶振。那么怎么把25MHZ的外部晶振配成100MHZ的主频呢: 2、修改芯片容量的地方3、选择芯片容量使用哪个文件
2022-01-12 12:32:57
915
原创 EMC相关
目录1、EMC分类2、EMC三要素3、EMC处理的三大手法4、辐射发射5、传导发射1、EMC分类EMC(电磁兼容性(Electro Magnetic Compatibility))分为EMI(电磁干扰(Electro-Magnetic Interference))和EMS(Electro-magnetic Susceptibility(EMS)电磁敏感性)EMI分为CE(传导发射Conducted Emission)和RE(辐射发射radiated emission)EM
2021-02-17 22:45:28
1735
原创 高速信号基础知识
1、板材1.1、损耗在传输线系统中损耗的主要来源是导体损耗、介质损耗(还有辐射损耗)。普通FR4板材在低频下信号损耗主要为导体损耗,高频则以介质损耗为主。对于高速板材则可以大大减小介质损耗,使得板材的介质损耗在很高的一个频段内低于导体损耗。介质损耗指的是指介质材料在电场作用下,由于介质电导和介质极化的滞后效应,在其内部引起的能量损耗,这主要与PCB介质的损耗因子有关。导体损耗是指导体不理想,存在直流电阻,在电流通过时发热而引起的损耗,这主要与PCB导体的趋肤效应、粗糙度和导电率(电阻率)有关系。
2021-02-17 18:19:49
3049
原创 常用电磁仿真软件的特点
Siwave用来做电源完整性和提取S参数很方便;HFSS用来做3D仿真,提取复杂结构的S参数,是3D电磁仿真软件;ADS:系统级仿真工具,后处理数据做的比较好,看眼图方便,这几年的版本加入了3D电磁仿真,试过了,要切板,仿真速度较慢;1、CST是基于FDTD(时域有限差分法)电磁 场求解算法的仿真器,适合仿真宽带频谱结果,因为只需要输入一个时域脉冲就可以覆盖宽频带。2、HFSS(High Frequency Structure Simulator)是基于FEM(有限元法)电磁场求解算法的仿真器
2021-02-13 18:05:52
5148
原创 直流有刷电机驱动器
1、编码器是将信号或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。2、编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺。3、编码器的分辨率如何理解,常见的编码器类型有绝对式编码器和增量式编码器,绝对和增量的概念大家应该清楚,最大的区别就是绝对位置是带有记忆的,编码器旋转的每个刻度都带有标记,断电重新上电后是可以记住位置的,而增量式的就是一个技术,旋转多少计多少数,断电后不记住位置。编码器配合电机可应用于角度、长度测量、转速测量、定位等场合。4、常见的编码器输出信号有
2021-02-13 17:15:20
1678
原创 Linux应用程序——用户层检测按键输入状态
stm32mp157 盘古开发板 Linux内核版本4.191、背景在我的博客《Linux驱动分析——input输入子系统》中已经大概了解了按键输入的来龙去脉,博客链接:https://blog.youkuaiyun.com/fang_yang_wa/article/details/1132543962、测试情况:应用层测试用代码:#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>..
2021-02-05 19:48:56
3277
原创 linux ps命令,查看某进程cpu和内存占用率情况, linux ps命令,查看进程cpu和内存占用率排序。 不指定
背景:有时需要单看某个进程的CPU及占用情况,有时需要看整体进程的一个占用情况。目录一、 linux ps命令,查看某进程cpu和内存占用率情况二、linux ps命令,查看进程cpu和内存占用率排序一、 linux ps命令,查看某进程cpu和内存占用率情况[root@test vhost]# ps auxUSER PID%CPU%MEMVSZ RSS TTYSTATSTART TIME COMMAND解释:linux ...
2021-02-05 10:08:53
1196
原创 Linux应用程序——用户层操作GPIO
stm32mp157 盘古开发板 Linux内核版本4.19目录1、拜兔核i2SOM的wiki上关于gpio应用的说明2、gpio操作相关的数据结构3、测试代码:4、参考链接1、拜兔核i2SOM的wiki上关于gpio应用的说明链接:http://wiki.i2som.com/pages/viewpage.action?pageId=22479311以下是链接中的复制内容:GPIO操作在Linux系统上是常用功能,STM32MP1芯片平台也同样支持。从Linu...
2021-02-02 19:55:55
4307
原创 射频天线知识(一)——基础知识
1、对于倒L天线,在天线的输入端电压最小,电流最大,阻抗最小;在天线的开路端,电压最大,电流最小,阻抗最大。2、50欧姆阻抗的由来:原来的同轴电缆在30欧姆时能够承载的功率最大,在70欧姆时传输效率最大(损耗最小),折中后规定的50欧姆阻抗。3、4、5、6、7、8、9、10、11、12、13、...
2021-02-01 17:31:15
4560
3
原创 Linux驱动分析——块设备驱动
stm32mp157 盘古开发板 Linux内核版本4.19因为目前没有用到这一块,所以这里只是简单了解并记录一下,待后面用到了再来完善。目录1、朱有鹏老师视频课程笔记和示例代码1、朱有鹏老师视频课程笔记和示例代码第一部分、章节目录5.10.1.正确理解块设备驱动的概念5.10.2.块设备驱动框架简介5.10.3.块设备驱动案例分析15.10.4.块设备驱动案例分析25.10.5.块设备驱动案例分析3第二部分、章节介绍5.10.1.正确理解块设备驱动的概念 本...
2021-01-30 17:59:53
746
原创 Linux驱动分析——网卡驱动
stm32mp157 盘古开发板 Linux内核版本4.19目录1、朱有鹏老师视频课程笔记和源码2、找到我系统上面网卡驱动的位置3、dwmac-stm32.c文件中DW是什么意思1、朱有鹏老师视频课程笔记和源码第一部分、章节目录5.11.1.网络设备驱动概述5.11.2.虚拟网卡驱动分析15.11.3.虚拟网卡驱动分析25.11.4.DM9000驱动源码分析15.11.5.DM9000驱动源码分析第二部分、章节介绍5.11.1.网络设备驱动概述 本节对网络...
2021-01-30 17:43:06
2383
1
原创 Linux驱动分析——I2C子系统
stm32mp157 盘古开发板 Linux内核版本4.19目录1、朱有鹏老师视频笔记2、I2C子系统的4个关键结构体3、关键文件4、i2c-core.c初步分析4.1、smbus代码略过4.2、模块加载和卸载:bus_register(&i2c_bus_type); 在i2c-core-base.c中4.3、I2C总线的匹配机制4.3.1、match函数4.3.2、probe函数4.4、核心层开放给其他部分的注册接口5、adapter模...
2021-01-28 20:58:13
972
原创 Linux驱动分析——input输入子系统
1、朱有鹏老师的视频课程笔记和应用测试代码:***********《朱有鹏老师嵌入式linux核心课程》 ***********《5.linux驱动开发-第5部分-5.8.input子系统基础之按键》--------------------------------------------------------本课程由朱老师物联网大讲堂推出并提供技术支持,课件可打包下载网盘地址:http://yunpan.cn/cjVy3RAgfDufK 访问密码 4ad7技术交流QQ群:朱老师物联网讲堂
2021-01-27 18:09:34
1759
转载 学习笔记(1):framebuffer驱动详解-linux驱动开发第7部分-5.7.1.framebuffer介绍
本课程是linux驱动开发的第7个课程,主要内容是linux的framebuffer驱动详解,本课程带大家分析fb驱动的框架、构成以及一些代码细节,目标是让大家彻底掌握fb驱动在内核中的配置和移植方法、掌握显示设备驱动的关键点。...
2021-01-23 16:35:18
198
原创 Linux驱动分析——pwm-leds
stm32mp157 盘古开发板 Linux内核版本4.19pwm-leds就是用pwm来控制LED亮度1、内核相关文档linux-st\Documentation\devicetree\bindings\leds\leds-pwm.txtLED connected to PWMRequired properties:- compatible : should be "pwm-leds".Each LED is represented as a sub-node of the..
2021-01-20 21:09:45
3335
原创 Linux驱动分析——定时器子系统
stm32mp157 盘古开发板 Linux内核版本4.19这个定时器字系统,严格的来说应该是stm32-timer-trigger1、内核相关文档设备树配置文档linux-st\Documentation\devicetree\bindings\iio\timer\stm32-timer-trigger.txtSTMicroelectronics STM32 Timers IIO timer bindingsMust be a sub-node of an STM32 Timer..
2021-01-20 15:19:53
721
原创 Linux驱动分析——PWM子系统
stm32mp157 盘古开发板 Linux内核版本4.191、首先了解在Linux系统上面怎么使用PWM,比如设置某个引脚输出某个PWM脉冲内核文档linux-st\Documentation\ABI\testing\sysfs-class-pwm描述:What: /sys/class/pwm/Date: May 2013KernelVersion: 3.11Contact: H Hartley Sweeten <hsweeten@visionengravers.com&..
2021-01-19 15:57:04
2613
转载 Linux设备模型(9)——device resource management
转载:http://www.wowotech.net/device_model/device_resource_management.html1. 前言蜗蜗建议,每一个Linux驱动工程师,都能瞄一眼本文。之所以用“瞄”,因此它很简单,几乎不需要花费心思就能理解。之所有这建议,是因为它非常实用,可以解答一些困惑,可以使我们的代码变得简单、简洁。先看一个例子: 1: /* drivers/media/platform/soc_camera/mx1_camera.c, line 695
2021-01-14 19:20:47
448
1
转载 Linux设备模型(8)——platform设备
转载:http://www.wowotech.net/device_model/platform_device.htm1. 前言在Linux设备模型的抽象中,存在着一类称作“Platform Device”的设备,内核是这样描述它们的(Documentation/driver-model/platform.txt):Platform devices are devices that typically appear as autonomous entities in the system. T
2021-01-14 16:45:27
1061
转载 Linux设备模型(7)——Class
转载:http://www.wowotech.net/device_model/class.htm1. 概述在设备模型中,Bus、Device、Device driver等等,都比较好理解,因为它们对应了实实在在的东西,所有的逻辑都是围绕着这些实体展开的。而本文所要描述的Class就有些不同了,因为它是虚拟出来的,只是为了抽象设备的共性。举个例子,一些年龄相仿、需要获取的知识相似的人,聚在一起学习,就构成了一个班级(Class)。这个班级可以有自己的名称(如295),但如果离开构成它的学生(de
2021-01-14 16:29:42
447
转载 Linux设备模型(6)——Bus
转载:http://www.wowotech.net/device_model/bus.html1. 概述在Linux设备模型中,Bus(总线)是一类特殊的设备,它是连接处理器和其它设备之间的通道(channel)。为了方便设备模型的实现,内核规定,系统中的每个设备都要连接在一个Bus上,这个Bus可以是一个内部Bus、虚拟Bus或者Platform Bus。内核通过struct bus_type结构,抽象Bus,它是在include/linux/device.h中定义的。本文会围绕该结构,描述
2021-01-14 15:40:53
567
转载 Linux设备模型(5)——device和device driver
转载:http://www.wowotech.net/device_model/device_and_driver.html1. 前言device和device driver是Linux驱动开发的基本概念。Linux kernel的思路很简单:驱动开发,就是要开发指定的软件(driver)以驱动指定的设备,所以kernel就为设备和驱动它的driver定义了两个数据结构,分别是device和device_driver。因此本文将会围绕这两个数据结构,介绍Linux设备模型的核心逻辑,包括:设备及
2021-01-14 15:17:21
992
转载 Linux设备模型(4)——sysfs
转载:http://www.wowotech.net/device_model/dm_sysfs.html1. 前言sysfs是一个基于RAM的文件系统,它和Kobject一起,可以将Kernel的数据结构导出到用户空间,以文件目录结构的形式,提供对这些数据结构(以及数据结构的属性)的访问支持。sysfs具备文件系统的所有属性,而本文主要侧重其设备模型的特性,因此不会涉及过多的文件系统实现细节,而只介绍sysfs在Linux设备模型中的作用和使用方法。具体包括:sysfs和Kobject的关
2021-01-13 17:55:41
215
转载 Linux设备模型(3)——Uevent
转载:http://www.wowotech.net/device_model/uevent.html1. Uevent的功能Uevent是Kobject的一部分,用于在Kobject状态发生改变时,例如增加、移除等,通知用户空间程序。用户空间程序收到这样的事件后,会做相应的处理。该机制通常是用来支持热拔插设备的,例如U盘插入后,USB相关的驱动软件会动态创建用于表示该U盘的device结构(相应的也包括其中的kobject),并告知用户空间程序,为该U盘动态的创建/dev/目录下的设备节点,更
2021-01-13 17:39:17
575
转载 Linux设备模型(2)——Kobject
转载:http://www.wowotech.net/device_model/kobject.html1. 前言Kobject是Linux设备模型的基础,也是设备模型中最难理解的一部分(可参考Documentation/kobject.txt的表述)。因此有必要先把它分析清楚。2. 基本概念由“Linux设备模型(1)_基本概念”可知,Linux设备模型的核心是使用Bus、Class、Device、Driver四个核心数据结构,将大量的、不同功能的硬件设备(以及驱动该硬件设备的方法),以树
2021-01-13 17:30:29
307
转载 Linux设备模型(1)——基本概念
转载:http://www.wowotech.net/device_model/13.html1. 前言在“Linux内核的整体架构”中,蜗蜗有提到,由于Linux支持世界上几乎所有的、不同功能的硬件设备(这是Linux的优点),导致Linux内核中有一半的代码是设备驱动,而且随着硬件的快速升级换代,设备驱动的代码量也在快速增长。个人意见,这种现象打破了“简洁就是美”的理念,是丑陋的。它导致Linux内核看上去非常臃肿、杂乱、不易维护。但蜗蜗也知道,这不是Linux的错,Linux是一个宏内核,它必
2021-01-13 17:03:02
258
转载 Linux驱动分析——gpiolib子系统
stm32mp157 盘古开发板 Linux内核版本4.191、简述(摘自https://blog.youkuaiyun.com/zhoutaopower/article/details/98082006)GPIO 资源是相对来说较为简单,而且比较通用(比如 LED 灯),而 Linux 的 GPIO 驱动属于 Linux Driver 中较为容易上手的部分,但是简单归简单,在 Linux 系统中,要使用 GPIO 资源,还是需要了解一些内容。Linux Kernel 中对 GPIO 资源进行了抽象,抽..
2021-01-12 18:17:23
871
原创 Linux驱动分析——pinctrl子系统
stm32mp157 盘古开发板 Linux内核版本4.191.Linux Pinctrl子系统简介在许多soc内部都包含有pin控制器,通过pin控制器的寄存器,我们可以配置一个或者一组引脚的功能和特性。在软件方面,Linux内核提供了pinctrl子系统,目的是为了统一各soc厂商的pin脚管理。2.Linux Pinctrl子系统提供的功能 (1)管理系统中所有的可以控制的pin,在系统初始化的时候,枚举所有可以控制的pin,并标识这些pin。 (2)管理这些p...
2021-01-12 10:35:10
1069
原创 关于Linux内核中的机器匹配
在盘古开发板的内核设备树文件的根节点里面有一个机器名字,这个名字是怎么匹配到内核里面的查找发现在内核里面有一个board-dt.c文件:这个board-dt.c文件里面:
2021-01-08 16:26:00
130
1
原创 Linux驱动分析——LED子系统+驱动框架简介
1、驱动是谁写的:(1)驱动开发工程师(2)内核维护者2、驱动编程写作要求:(1)接口标准化(2)尽量降低驱动开发者难度3、到底什么是驱动框架:(1)内核中驱动部分维护者针对每个种类的驱动设计一套成熟的、标准的、典型的驱动实现,然后把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好,再把不同部分留出接口给具体的驱动开发工程师来实现,这就叫驱动框架。(2)内核维护者在内核中设计了一些统一管控系统资源的体系,这些体系让内核能够对资源在各个驱动之间的使用统一协调和分配,保证整个内
2021-01-08 16:18:22
2142
2
原创 M645开发一个类似路由器配置IP的web应用
即,在M645上面做一个功能,电脑网线连接上M645以后在浏览器里面输入M645的ip地址就可以打开一个配置页面,在这个页面里面可以配置和修改M645的IP地址、网关等参数。首先,HTML文件是有了,这里要明白一个事情:HTML文件是在浏览器里面被解释和运行的,也就是HTML代码会被发送到浏览器,然后浏览器解析这个HTML代码然后将其以页面的形式呈现出来。然后,那么这个HTML里面的数据怎么传给我的Linux系统呢?只能以接口的形式来传输了,也就是传统的前端和后端了,HTML相当于前端,需要有一个后
2020-12-26 10:21:41
480
2
原创 M645(STM32MP157A)配置应用程序开机自启
需要在STM32MP157A板子上配置应用程序开机自启。1、网上查询得出,Linux下应用程序开机自启有两种方式:开机要启动的脚本qidong.sh[root@c69-01 scripts]# vim /server/scripts/qidong.sh[root@c69-01 scripts]# cat /server/scripts/qidong.sh#!/bin/bash/bin/echo $(/bin/date +%F_%T) >> /tmp/qidong.log
2020-12-18 17:24:20
850
1
原创 M645基站配置过程
1、通过SD卡烧录TF-A、U-Boot和Linux Kernel;2、设置静态IP,参考博客《嵌入式Linux平台上安装NTP服务并同步网络时间》
2020-12-18 10:52:05
213
原创 Linux内核配置文件生成详解
今天想把Linux内核裁剪一下,即关掉一些用不到的功能。正常来说应该是命令:make menuconfig,弹出图形化配置界面,配置完成后的配置信息保存在内核源代码的根目录下的.config文件中。但是,盘古开发板的wiki上面给出的内核编译命令是:问题来了,它这里怎么不是makeconfig,而是makei2som_panguboard_defconfig,为什么会是make这个文件呢?百度发现,i2som_panguboard_defconfig这个配置文件位于内核源代码根目录...
2020-11-23 17:05:23
1702
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人