自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 can设备调试 - linux driver

can控制器调试

2024-05-21 11:19:05 191

原创 bmi088-linux驱动(I2C)

截止频率就是能够通过的最大频率,采样频率一般为最大频率的2.56 (截止频率(fc)=采样频率(fs) / 2.56)。1. 通过PS引脚选择通讯协议,上拉引脚则选择的是I2C接口,(CSB1是给SPI片选使用的)。数据宽度:陀螺仪和加速度计都是16bit ,temp sensor是11bit,都是有符号数据。I2C读数据,定义buf[6],buf[0] ->0x12 …2. 上电后陀螺仪在正常模式,加速度传感器 处于抑制模式。在正常工作时,gyro 工作电流为5mA,acc 工作电流为150uA。

2024-05-14 14:00:32 264

原创 ADS1256-linux驱动

缩略写:

2024-05-06 11:25:22 809

原创 JOSM -- 使用及画图

将预设组合选项添加到工具栏,所以选中序号1,然后在右框中会出现预设选项序号2,双击序号2,进入选中里面的子选项然后点击序号3完成设置,最后点击OK即可。点表示单个物体,线表示车道和边界线,多边形表示区域。红绿灯属性设置:选中目标->选中预设选项->设置属性->New relation->检查修改确定。停车位属性设置:选中目标->选中预设选项->设置属性->New relation->检查修改确定。人行横道设置:选中目标->选中预设选项->设置属性->New relation->检查修改确定。

2024-02-28 14:41:40 929

原创 STM32F4XX - CAN设置

例如总线上10个节点发隐性位而1个节点发显性位的时候,总线上呈现出的是显性位。隐性电平: 其他 对应的逻辑电平是1。电气连接图如下:(显性电平时逻辑电平为0,隐性电平时逻辑电平为1.具备线与的能力)在线与逻辑关系下,0才具有这种能力(1·1·1·……为什么显性电平对应的逻辑电平值为0,而隐性电平对应的逻辑电平是1?灰色为显性,白色为隐性,浅蓝色表示可以是显性也可以是隐性。因为在总线上,需要令显性位具有“覆盖”隐性位的能力。

2024-02-24 17:32:02 406

原创 STM32F4XX - ADC设置

/使能ADC1时钟。

2024-02-23 16:30:06 968

原创 STM32F4XX - uart设置

/Enable the gpio clock //使能GPIO时钟。//Enable the Usart clock //使能USART时钟。

2024-02-23 14:42:24 853

原创 STM32F4XX - 系统定时器(SysTick)设置

AHB时钟后又经过分频得到APBX的时钟(程序中可设置为2和4等),存储器、DMA以及cortex_m4系统定时器的时钟(可设置为1和8).以上设置都可以根据实际情况进行。SysTick: cortex_m4 核心内置的系统定时器(系统定时器,又名系统嘀嗒定时器). 定时器的设置需要参考cortex_m4的技术文档。ms的延时相对更简单了,先使用实时系统的延时函数vTaskDelay进行ms的延时,然后再使用us的函数接口进行us的延时处理.fac_ms=1000/configTICK_RATE_HZ;

2024-02-23 13:17:17 543

原创 STM32F4XX - GPIO设置

每次开始需要使用gpio引脚,都需要线使能相应GPIO总线时钟。-----------这个时钟看上去是与总线相关(后面看uart adc时会看到,使用外设时还需要使能外设时钟)这个是指定引脚,比如GPIOA组的第几个引脚。设置GPIO模式也就是用途。作为普通gpio时,设置速度为100MHz。设置为上拉,增加驱动能力。

2024-02-22 17:04:53 459

原创 STM32F4XX - 总线时钟设置

系统时钟

2024-02-22 14:55:25 362

原创 网络编程 之 epoll

【代码】网络编程 之 epoll。

2023-01-31 11:38:17 358

原创 工程管理方式之小技巧,小知识

工程管理工具之小知识和小技巧

2023-01-30 13:12:07 388

原创 zynq7020使用hdl库

使用环境:ubuntu18.04vivado2019.2ZYNQ7020adau1761由于zynq7020使用ADAU1761需要使用hdl库里的axi_i2s_adi ip核.切到这个仓库分支版本的最高分支remotes/origin/hdl_2019_r2. 申明vivado2019.2环境变量.source /opt/vivado2019.2/Vivado/2019.2/settings64.sh进入到工程目录hdl/projects/adv7511/zc702,然后直接mak

2021-10-14 10:22:13 609

原创 驱动调试接口-debugfs

创建目录spidev->root_dir = debugfs_create_dir(SPIDEV, NULL);在目录下创建文件节点 spidev->debug_level = debugfs_create_file("debug_level", 0664, spidev->root_dir, spidev, &debug_level_ops); if (spidev->debug.

2021-09-27 14:19:20 125

原创 设备驱动篇-1

注册字符设备register_chrdev(SPIDEV_MAJOR, "spi", &spidev_fops);这个注册字符设备方式会连续注册0~255个次设备号,使它们绑定在同一个file_operations操作方法结构体上,在大多数情况下,都只用极少的次设备号,所以会浪费很多资源.创建类class_create(THIS_MODULE, HOBOT_SPIDEV);找到一个空闲的次设备号find_first_zero_bit(minors, N_SPI_MINOR.

2021-09-27 11:10:08 89

原创 正则表达式

local chip_reg='^CONFIG__[R,P][X,V,K][0-9ESX]{1,5}'^表示匹配每行的开头.[]表示其中的任何一个字母{}表示匹配1到5次.如上可以是 # - PX30, PX3SE # - RK????, RK????X # - RV????

2021-09-10 09:25:38 90

原创 交叉编译opencv4.0.0

opencv4.0.0下载链接地址mkdir buildcmake-guicmake …/make错误1:/home/zw/swap/opencv/3399opencv/opencv-4.0.0/3rdparty/protobuf/src/google/protobuf/stubs/common.cc:52:2: error: #error "No suitable threading library available." #error "No suitable thr

2021-09-09 17:24:17 377

原创 shell脚本小技巧

PARA_ARGS=$(getopt -o c:v:k:e:E:hb:f:d:r:u:m:t:a:o:p:s:g:x:lqFi::I --long selinux, -- "$@")获取参数 $@代表目标eval set -- "${PARA_ARGS}"将参数设置为输入参数while true; do case "$1" in --selinux)将输入参数的第一个做循环处理.可以参考链接eval set用法例子...

2021-09-01 16:27:36 131

原创 docker命令记录

当本地有docker镜像,查看有哪些镜像时.rd@rd-virtual-machine:~/docker_dir$ sudo docker images -a[sudo] rd 的密码: REPOSITORY TAG IMAGE ID CREATED SIZExilinx/petalinux2019.2 v1.1 45d049202a9b 19 minutes ago 17.8GBxilinx/peta.

2021-05-18 16:56:03 63

原创 g++和gcc编译工具编译文件区别

三个测试文件加一个Makefile文件mian.c#include <iostream>#include "test.h" int main(int argc, char *argv[]){ int fd; process(fd); processcplus(fd); }test.c#include <stdi

2021-05-14 13:12:00 121 1

原创 stdio.h 之 printf

使用c库中通用的printf,调用流程为先将需要打印的东西按照所需的格式放入到char型的buffer中,然后再将buffer中的内容发送至stdout中.如果我们更换了串口,可能需要对相应的串口做重定向工作.如stm32struct __FILE{int handle;};FILE __stdout;int fputc(int ch, FILE *f){HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);//更具实际

2021-05-07 13:52:42 593

原创 qt MainWindow窗口类

创建mainwindow工程mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainW

2020-12-16 16:03:47 893

原创 i2c设备时序

i2c有时钟信号线和数据信号线默认情况下数据信号线拉高。当数据信号线由高电平变换到低电平时,表示数据传输开始。数据传输时,数据在时钟信号低电平时进行变换。然后主设备开始发送从设备地址,8位。当每个字节发送完成后,从设备在第九个时钟周期,会发送一个回应ack信号。当一方需要停止传输,需要回复no ack信号停止信号,当时钟信号为高电平时,数据信号由低电平转化为高电平。...

2019-07-03 17:23:00 248

原创 usb枚举过程

描述枚举:当设备插入时,检测端口信号线的电平,若电平由低电平变换为高电平,则表示有设备接入。检测到有设备接入后,主机会对这个设备发起重新启动操作,通过获取端口状态辨别是否已经重启。并通过信号线的电平状态辨别是低速还是高速状态。然后获取设备描述符第一次获取配置描述符获取所有描述符获取字符串描述符主机得到设备的信息后,开始安装对应驱动程序。加载驱动后设置配置描述符。枚举结束。...

2019-07-03 13:45:46 81

原创 putty设置reg

Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\192.168.104.163]“Present”=dword:00000001“HostName”=“192.168.104.163”“LogFileName”=“putty.log”“LogType”=d...

2019-05-05 10:29:47 401

转载 usb描述符

USB技术论坛 USB 产品 USB技术文档 USB开源项目 USB开发网 ...

2018-07-26 19:12:55 198

原创 常使用的命令集合

 sudo scp test [email protected]:/home/efy/

2018-07-09 12:45:30 145

原创 编译ubi工具

一.下载源代码。1. sudo wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz2.sudo wget http://zlib.net/zlib-1.2.11.tar.gz3.sudo wget http://debian.mirror.inra.fr/debian/pool/main/m/mtd-utils...

2018-07-03 14:05:23 545

原创 shell脚本替换文件含空格

1 sudo find ./ -name *.c|sudo xargs -I {} rm -f {}  2 find ./|grep -wv  *.ge|sudo xargs -I {} rm -f {}  3 find ./ -name '*[^g][^e]'|sudo xargs -I {} rm -f {  4  find ./ -name Makefile|sudo xargs

2018-01-16 12:51:48 1211

原创 软中断知识

参考:http://blog.csdn.net/yiyeguzhou100/article/details/49909787 http://blog.csdn.net/adaptiver/article/details/6177646 http://yaoyang.blog.51cto.com/7657153/1261841 在说软中断前,先说一下preempt_cou

2017-08-23 17:58:41 344

原创 irq中断子系统

参考:http://blog.csdn.net/adaptiver/article/details/6834337 1 因为当中断发生的时候系统由中断门 进入时自动关中断(对于x86平台就是将eflags寄存器的if位置为0),在irq_exit中恢复中断 2 貌似在handle_edge_irq中也有对中断关闭和打开的操作 3 两点说明:一是因为linux不支持 中断优先级,因此任何中断都

2017-08-23 17:57:05 1042

原创 gpio子系统之2440

先看板级定义的结构体struct s3c_gpio_chip s3c24xx_gpios[] = { [0] = { .base = S3C2410_GPACON, .pm = __gpio_pm(&s3c_gpio_pm_1bit), .config = &s3c24xx_g

2017-08-21 18:07:45 491

原创 sd卡记录

首先 检测是否有卡插入 有个上电有个等待上电完成 设置SPI速度为低速 对寄存器spi的设置 先产生>74个脉冲,让SD卡自己初始化完成 发送循环连续发送CMD0,直到SD卡返回0x01,进入IDLE状态,超时退出。返回的是r1 0x01CMD0 CMD8 CMD55+ACMD41 cmd1 cmd16 cmd58 cmd9 cmd17 cmd18 cmd23 cmd24

2017-08-10 18:07:53 862

原创 动态加载驱动之热拔插之usb驱动

1.USB主机端的USB集线器监听它的每个端口电压信号的变化。若usb插入主机后,引起信号线的电平信号发生变化,此时主机就知道有新设备插入了。USB 主机检查到设备插入后: 1)首先会重新启动这个设备,接着主机发出Get_Port_Status请求来验证设备是否已经重启,设备重启后主机通过检测根信号线的电平状态判断设备的速度。 2)主机会向设备的控制端点发送Get_Descriptor来了解很

2017-07-26 17:59:22 1332

原创 编译内核出现错误

rd@rd-virtual-machine:~/sda3/green/linux/build$ sh build.sh# configuration written to .config#scripts/kconfig/conf --silentoldconfig Kconfig*** Error during update of the configuration.scripts/kco

2017-07-05 13:01:55 5681

原创 移植无线网卡驱动至开发板(PXA16x)

将无线网卡插入任何可以识别USB的机器,此处将360随身WIFI插入虚拟机中。通过以下命令查看VID和PID号。可得出使用的是联发科的MT7601U芯片。rd@rd-virtual-machine:~/sda3/4310$ lsusbBus 001 Device 002: ID 148f:760b Ralink Technology, Corp. MT7601U Wireless Adapter

2017-06-29 15:58:55 686

转载 SKB包的接收,从网卡驱动到TCP层的处理流程

在开发模块过程中,遇到一个问题:在NF_INET_LOCAL_IN钩子处截获数据包后,如果操作失败,还要把这些截获的数据包重新传递到TCP层处理。但是这个操作是在内核线程中完成,不知道会不会对正常的数据包接收过程产生影响?因此,需要知道数据包在从网络层传递到传输层时的上下文环境(指的是是否禁止内核抢占、是否需要获取锁等)。为了解决这个问题,决定将数据包的接收过程从驱动程序到TCP层的处理流程梳理了一

2017-06-02 14:13:04 547

原创 串口调试所遇到问题,总结与借鉴

问题确定串口接收数据丢失,用串口工具发送一串字符数据时,有时会出现会丢失一两个数据。 可能原因1:cpu处理速度过慢,在下一次中断来临时,此次中断还未处理完。 解决方法:使用ringbuffervoid USART0_IRQHandler( void ) interrupt 4 using 2{ uint8_t count; if(SFR_RI)

2017-05-26 17:44:06 6470

转载 hotplug认识

mdev原理mdev 是busybox 自带的一个简化版的udev,适合于嵌入式的应用埸合。其具有使用简单的特点。它的作用,就是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程序所需的节点文件。在以busybox 为基础构建嵌入式Linux 的根文件系统时,使用它是最优的选择。使用过程:(1)在编译时加上对mdev 的支持(我是使用的是busybox1.10.1):Linux System U

2017-05-18 16:04:55 786

原创 uboot之flash初始化

nand_init()函数其实现过程与内核nand驱动大致差不多,涉及到的结构体有pxa3xx_nand,此结构体包含mtd_info,mtd_info结构体在注册进mtd子系统时需要用到 比较重要的结构体还有nand_chip,这个结构体实现对nand操作的基本方法。应该提供:选中,发命令,发地址,发数据,读数据,判断状态的功能void nand_init(){ struct

2017-05-17 18:07:39 936

bmi088 linux驱动及应用测试程序

bmi088 linux驱动及应用测试程序

2024-05-15

ads1256 linux 驱动

ads1256 linux 驱动

2024-05-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除