- 博客(39)
- 资源 (3)
- 收藏
- 关注
原创 rk3568 中loader模式的usb驱动是如何调用的呢
从uboot的启动流程和配置可以知道的board目录的头文件和源文件是适配了很多芯片产商的板卡配置,比如:u-boot\board\rockchip\evb_rk3568,里面就是针对rk3568做的适配。xhci_hcd_init : u-boot\drivers\usb\host\xhci-omap.c //但这个是主机模式,升级的时候,板卡应该是设备模式,所以其调用应该在usb_gadget_initialize。U_BOOT_CMD_ALWAYS注册进去的命令。
2025-03-27 16:28:54
235
原创 ais camera 的ais_server调用流程
4)max96712_sensor_detect_device_channels中还需要对解串器初始化,然后调用到的sensor里面的detect接口除了分配好串行器的地址后,还需要分配好sensor的地址,通过串行器的0x41,0x42寄存器配置。到这个流程为止,sensor状态应为SENSOR_STATE_DETECTED,为init_link作准备max96712_sensor_init_setting -> max96712_set_init_sequence->以上流程重点就是这个入口函数。
2025-03-27 11:54:32
372
原创 Awtk 如何添加开机画面
我们知道在工程中,Ui是一个线程,并且需要一直存在,当我们使用的开机画面在这个线程开启就直接展示的时候,因为awtk的界面是window_open入栈的,即首次打开的窗口会记录在top,往后的窗口会依次往后存放,并记录位置,当跳回主界面的时候,此时调用的window_manager_back_to_home/window_manager_get_top_window会出现开机界面,因此开机画面如果不做回收释放,就会一直存在。
2025-02-11 14:49:48
395
原创 sa8295 qnx ais_camare如何支持一个摄像头两路vc输出?
当一个摄像头可以输出两路vc,并且格式不同。根据每一路的vc图像数据格式修改串行器中maxxxx_mode_t里面的数组mode参数(以下仅为例子)qcarcam测试的时候会有3路输出,但硬件上其实只接了2个摄像头。并且在驱动中的getlink中修改支持两路vc图像获取,同时解串器的寄存器也要配置支持两路vc。
2025-02-09 16:01:51
319
原创 步进电机基本知识
细分越细,走到的角度位置越细,但是细分改变不了电机的运转精度,也就是每一步的角度偏差。同时电机会存在丢步/超步现象,可能是电机运动久,温度上升,引起扭矩加大,那么一个脉冲走出去的角度变小,或者出现带动不了的情况,就产生丢步。但细分只能改变其分辨率,不改变其精度。空载启动频率,就是电机在没有带动负载的时候转动需要的频率,由于频率最高,反电动势越大,力矩就越小,所以在带负载的电机控制,其频率不能大于空载启动频率 可以实现一个加速过程:启动时候先低频,按一定速度达到高频,电机转速就是低速到高速(频率高,转速大)
2024-09-03 23:26:11
781
原创 xilinx Mailbox 中的ipi message地址计算方式
适用于openAmp mailbox ipi id对应的ipi message地址计算方式官方openamp硬件配置解析openamp官方设备树versal系列文档可以从上面得知,ipi1基地址是0xff3f0600 并通过这个地址划分了512字节大小。从上面知道每一个通道会划分每一个32字节给其他通道通信,并依顺序排序为psm,pmc,IPi0, ipi1, .....
2024-04-24 22:09:31
1006
原创 c++设计模式笔记
根据中文翻译的不同,建造者模式又可以称为生成器模式。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用(通过链表等保存生成的对象,在后续使用中,如果该对象符合使用要求,就返回给对象指针,如果不满足就生成多一个对象并放置在链表、map等)。可以定义一些独立的类来封装不同的算法,每一个类封装一个具体的算法,在这里,每一个封装算法的类我们都可以称之为策略(Strategy),为了保证这些策略的一致性,一般会用一个抽象的策略类来做算法的定义,而具体每种算法则对应于一个具体策略类。
2024-01-20 14:54:59
1089
原创 非petallinux操作的xilinx zynqmp openamp核间通信框架搭建核测试(APU :linux2021 + rpu1(裸机))
正确运行rpu后,在/sys/bus/rpmsg/devices下会产生节点,并且此时加载 modprobe rpmsg_char.ko才能在/dev下面看到rpmsg_ctrl节点此时。运行apu的echo_test可以通信。前提设备树中配置的remoteproc如果要使用rpmsg,就不能开启ipi_mailbox相关属性。如果配置了rpu的box等属性后,rpu加载启动固件会引起ipi死机,导致挂掉。Echo_test.c下载。
2023-11-10 19:16:05
2133
1
原创 zynqmp 设备树中断号描述在芯片中的对应
可以看到实际IPI通道的中断号在芯片中标记的是61~67,PL端到PS端的中端号是group0=121~128 对应PL端中断号0~7。查看系统注册的中断号如下:使用cat /proc/interrupts。group1=136~143 对应PL端中断号8~15。
2023-09-16 13:27:01
812
原创 zynqmp APU(linux)和RPU(裸机)通过IPI中断实现同步
APU核RPU可以通过共享内存交互数据,APU向共享内存写数据后,RPU收到ipi中断,然后读取完数据,将触发中断告知APU。从内核ipi_mailbox源码触发自己实现APU(linux)和RPU(裸机)核间同步操作。RPU ipi中断可以参考官方例子,vitis生成的例子。
2023-09-05 16:34:42
1781
原创 使用ubuntu-base制作根文件系统
前期需要uboot和kernel都能识别到mmc,然后使用randisk进去系统,针对mmc做格式化和分区:使用Fdisk指令和mke2fs mmcblk0。将/usr/bin/qemu-arm-static/(64位拷贝)qemu-aachr64-static到解压的目录中的/usr/bin中。Tty需要根据板卡设置的串口进行设置,操作如下:ttyPS0是kernel和uboot,设备树中配置开启的终端输出串口。如果电脑的源已经可以使用的就不用自己添加源,需要修改的话修改一下文件。
2023-08-05 16:59:28
2006
原创 zynqmp 外接fpga linux内核驱动修改
linux-xlnx-xilinx-v2021.2/Documentation/devicetree/bindings/fpga/xilinx-slave-serial.txt,修改)slave-serial需要将fpga的m0-m2引脚配置为slave-serial模式,在内核中开启配置。使用内核自带的linux-xlnx-xilinx-v2021.2/drivers/fpga/xilinx-spi驱动,做serial slave模式,设备树更改如下(根据。//spi-cpha;开启了也会报以下错误。
2023-04-25 14:35:34
934
2
原创 MLX90615驱动笔记---IIC库函数(非IIC模拟)
MLX90615芯片是一种红外温度传感器芯片,用于非接触式测量物体温度,以下总结了开发过程1:从MLX90615的芯片手册可以看到,芯片是16为adc数据,兼容Smbus和PWM协议其中温度的数据是存在于Ram中的,而相应的芯片配置,ID,模式选择,发射率等是存在芯片的EEprom中的,其中需要注意的是EEprom中尽量不要去操作的是04到0D地址之间,其芯片默认出厂地址为0x5...
2020-02-26 10:10:12
4379
3
原创 dac104s085芯片驱动讲解
dac104s085芯片驱动讲解dac104s085芯片时10位的4路dac数据输出芯片一般应用于将数字信号转换为模拟信号,通常用于波形输出驱动分析1:拿到芯片手册一般做的时浏览芯片手册,把重要信息标志:一般就是涉及到与主控芯片时有几种通信方式各种通信方式的频率,位数,校验,通信时序,通信波形等我们从手册上得知,此芯片适合spi,Qspi通信方式,频率可以最大达到40Mhz左右,...
2019-11-18 11:02:22
3093
2
原创 rtthread中的spi驱动外设设备的挂载知识点
rtthread中的spi驱动外设设备的挂载知识点:1:再rtthread的官方4.0.0版本中,在scons工具中添加spi的设备注册,可以看到spi的驱动文件drv_spi,使用spi需要把rtthread中的drivede中的spi_core,spi_dev文件添加进去在spi_core中可以看到以下函数rt_err_t rt_spi_bus_register(stru...
2019-11-14 09:50:36
7705
7
原创 rtthread开发笔记心得
一env使用1.1:使用env构建rtthread项目:安装env_released_1.1.1,打开env命令终端可以对rtthread的项目进行配置,在env中使用menuconfig命令进行图形界面的选择配置,menuconfig除了系统自带的根目录,外设的设备添加选项由项目的kconfig配置得到,将kconfig添加想添加的外设,使用menuconfig配置后,保存,会把相应的配置更...
2019-09-01 18:23:50
10730
原创 关于rt-thread的外设驱动原理(例子spi)
一:有关SPIrt中用户需要添加spi的注册和初始化文件如:drv_spi,里面需要做的是static struct rt_spi_ops gd32_spi_ops ={configure,xfer};初始化上面的结构体的两个函数,rt的底层spi中有用到这个结构体的两个函数然后再初始化中将result = rt_spi_bus_register(&...
2019-08-09 15:13:32
2038
原创 针对python3 django使用数据库的配置
针对python3 django使用数据库的配置:1 python3不支持mysqldb,所以改为使用mysqlclientmysqlclient可以在python官网https://pypi.org/project/mysqlclient/#files或者https://www.lfd.uci.edu/~gohlke/pythonlibs/# 找到mysqlclient-1.3.13-cp36-...
2018-10-29 16:20:49
495
原创 Python的crc16直接计算方法程序
这个出crc16 的程序是根据c语言上的crc16算法改过来的,网上几乎找不到Python的crc16直接计算例程亲测可用:已经使用在项目上。因为在crc16校验中,计算出来的crc16数值是16位(uint_16)的,因为Python的整数是没有最大值的,所以计算出的16位的数值是跟c语言的不一样。但是传输数据使用8位的数据,所以需要分为两个8位的数据才可用,分出来的计算结果跟c语言计算的结果是...
2018-06-02 14:32:54
12153
2
原创 pywinusb使用
pywinusb是一个python用usb hid模式通信的模块,安装和下载方法这里不说在使用这个模块进行usb通信的时候,发送和接收数据需要注意一点:在定义的发送数据的端点使用的是0的时候,发送数据的列表的 第一个元素必须为0,因此列表的长度实际就为65,端点0 即在write函数中表象为report[0]:,如果使用的是usb的其他端点,相对应的report[0]改为其他的端点标识,usb通信...
2018-06-02 14:19:02
8298
6
原创 uboot的makefile文件分析
VERSION = 1PATCHLEVEL = 3SUBLEVEL = 4EXTRAVERSION =U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) 打印uboot版本号VERSION_FILE = $(obj)include/version_autogenerated.h 编译才能在i...
2018-05-27 14:17:41
334
原创 tmp432驱动头文件
不好意思,上篇忘记贴上头文件了,附在这里好了tmp432.c文件请看这里:https://blog.youkuaiyun.com/lilijianqun/article/details/80468875#ifndef __tmp432_H#define __tmp432_H#include "stm32f10x.h"#define I2C_SCL GPIO_Pin_6 //PB10#define I2C_...
2018-05-27 14:13:27
499
原创 tmp432远程温度传感器
根据数据手册编写初始化代码,通过模拟IIc协议驱动,源码如下:(有必要注明一点,这是自己根据手册和网上参考写的,有兴趣的可以自己买一个试一下,有问题欢迎交流),stm32驱动程序如下#include "includes.h"#include "tmp432.h"//读取输入GPIO_ReadOutputDataBit( GPIOC, GPIO_Pin_11);//void delay_us(u16...
2018-05-27 13:59:43
1300
原创 start_armboot分析
*(C) Copyright 2002-2006 *Wolfgang Denk, DENX Software Engineering, wd@denx.de. * *(C) Copyright 2002 *Sysgo Real-Time Solutions, GmbH <www.elinos.com> *Marius Groeger <mgroeger@sysgo.de>...
2018-05-06 13:48:24
362
原创 stm32驱动hc595
根据网上资料: 595具体使用的步骤:第一步:目的:将要准备输入的位数据移入74HC595数据输入端上。方法:送位数据到_595。第二步:目的:将位数据逐位移入74HC595,即数据串入方法:SH产生一上升沿,将DS上的数据移入74HC595中.从高到低第三步:目的:并行输出数据。即数据并出方法:ST产生一上升沿,将由DS上已移入数据寄存器中的数据送入到输出锁存器。 源码://三引脚都接5V上啦电...
2018-05-03 11:05:03
3897
原创 mkconfig文件讲解
#!/bin/sh -e # Script to create header files and linksto configure# U-Boot for a specific board.## Parameters: Target Architecture CPU Board [VENDOR] [SOC]## (C) 2002-2006 DENX Softwa
2018-04-15 15:38:36
1159
原创 lowlevel.init函数分析
/* *Memory Setup stuff - taken from blob memsetup.S * *Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and * Jan-Derk Bakker(J.D.Bakker@its.tudelft.nl)
2018-04-15 15:33:22
3028
原创 dram.init讲解
int dram_init(void)//是关于ddr的初始化,在会汇编阶段已经初始化过ddr,否则也无法relocate到第二阶段//这里再次初始化是因为这里是在给gd->bd里面关于ddr配置部分的全局变量赋值,让gd->bd数据记录下来//当前的开发板的ddr的配置信息,以便在uboot中使用内存//(3):从代码上看。其实就是初始化gd->bd->bi_dra...
2018-04-14 16:18:22
1691
原创 uboot之第一阶段start.S讲解
/* *Memory Setup stuff - taken from blob memsetup.S * *Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and * Jan-Derk Bakker(J.D.Bakker@its.tudelft.nl) * *Modifi...
2018-04-14 16:16:41
524
原创 stm32的几种读保护措施讲解
综合网上讲解的几种读保护措施,这里简单总结下:采用stm32唯一ID作为加密的字符,使用固定密码,采用16位字节AES加密的方式生成密文,然后写进flash,,app程序执行的时候需要判断读取的stm32唯一ID号和AES解密出来是否一致,是执行程序,否则不执行,测试过,但这个方案针对生产比较麻烦,这里不采用 ChipUniqueID[2] = *(__IO u32 *)(0X1FFFF7F0);...
2018-04-10 16:09:29
7545
1
原创 DAC7512驱动原理
通过阅读DAC7512的数据手册,其是16位DAC数据,12位精度采集我们可以知道如下信息:因为其最大通信频率可以达到30Mhz,因此其驱动通信协议支持DSPI和SPI,根据下图说明明驱动的时候需要向DAC写进数值,范围0-4095,其经过String 寄存器后,数值被分配到不同的路径,相应的开启通路的电阻进行分压,得出输出电压数据手册上针对如何驱动写明了,数据需要在怕片选拉低的时候送进去有效,根...
2018-04-03 10:06:22
9849
原创 Rc522 直接使用stm32串口驱动成功
本工程师自己通过网上资料和在正点原子的串口例程修改的,自己专门在网上买的串口接口驱动的rc522驱动成功 淘宝上只有51的串口直接驱动,这里我改为stm32 的点击打开链接...
2018-03-28 15:11:05
9250
原创 ucosiii在stm32f103ZEt6上的移植,自测可行
本程序是在官方源码Micrium\uC-Eval-STM32F107上移植过来的,如果需要添加中断函数,需要在中断函数的前面加上两个函数调用,主要是进中断处理和退出保存的设置:移植过来的注意事项不多,可以自行参照网上的。源码链接:https://download.youkuaiyun.com/download/lilijianqun/10276935...
2018-03-09 09:49:12
923
drvtimer.zip
2019-08-16
ucosiii-stm32f103ZET6移植可行
2018-03-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人