- 博客(70)
- 资源 (9)
- 收藏
- 关注
原创 嵌入式里驱动 接口提供之平台接口
1、server端BSP_INT32 BSP_ServerInit(BSP_VOID){ BSP_INT32 lFdServer = 0; BSP_UINT32 ulAddrLen = 0; struct timeval stTimeOut; struct sockaddr_un stServerAddr = { .sun_family = AF_UNIX, .sun_path = {BSP_ADDR_SER
2023-03-16 12:48:45 258
原创 编译脚本build_zu6cg.sh
#!/bin/shTPWD=`pwd`DO_MODULE=allDOCLEAN=0BOOTCLEAN=0KERNELCLEAN=0ROOTFSCLEAN=0REUNZIP=0BOOTREUNZIP=0KERNELREUNZIP=0ROOTFSREUNZIP=0DORECOVER=0softwareVersion=1.3.1bootloaderVersion=b1.3.0bspomVerison=b1.3.0fpgaVerison=b1.3.0linuxVeris.
2022-11-22 15:37:08 448
原创 Makefile --- filter filter-out
filer-out函数是一个反过滤函数,功能和filter函数恰恰相反:该函数会过滤掉所有符合PATTERN模式的单词,保留所有不符合此模式的单词。filter函数用来过滤掉字符串TEXT中所有不符合PATTERN模式的单词,只留下符合PATTERN格式的单词。中,使用filter-out %.c 过滤掉所有的.c文件。filter-out 函数。
2022-09-24 10:45:00 2253 1
原创 buildroot制作跟文件系统
1、提供源码下载地址buildroot官网源码 上面红色标记处进入历史版本选择: 笔者选择的是buildroot-2019.02.6.tar.bz2 这个版本2、下载与解压下载后拷贝至服务器或者虚拟机上;解压命令: tar vxjf buildroot-2019.02.6.tar.bz2上面就是buildroot源码3、 这个是支持图形化配置界面的 执行 make menuconfig提示如下错误 : 使用sudo后成功:...
2022-05-17 14:00:34 2011
原创 基于shell的自动化编译脚本 <一>
1、基于shell的一键式编译脚本<一>多参数传入编译脚本;<<COMMENT如果要写一个编译脚本有很多选项采用如下方式:shift 将传入的参数前移;假如脚本名字是start_compile.sh ;运行命令行: sh start_compile.sh 条件1 条件3 执行输出: 条件1 条件3 end while: case 条件: 条件1) echo "条件1" shift ;; 条件2) echo "条件2"
2022-04-26 14:18:08 1001
原创 tcpdump抓包
tcpdump -helptcpdump version 4.99.1libpcap version 1.5.3Usage: tcpdump [-AbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [--count] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ --.
2022-04-25 10:29:38 3786
原创 tcpdump移植到开发板上
首先注明参考的一些博主们:因为最近在调试1588的时钟同步功能,所以用到了tcpdump抓包工具;第一次使用记录一下,搜索了一下这个工具很强大也很好用,和wireshark一起配合使用特别好用;1、首先了解下tcpdump:对网上的数据报进行截获分析工具,tcpdump可以将网络中传输的数据包头完全解惑下来提供分析。支持【网络层、协议、主机端口的过滤】提供and or not等逻辑语句来进行过滤;一般使用tcpdump抓包然后使用wireshark工具分析;2、嵌入式系...
2022-04-25 09:46:09 1185
原创 linux 异步通知实例
////////////////////////////////////////////////////////////////////////////////linux驱动的异步通知(kill_fasync,fasync) ---- 驱动程序向应用程序发送信号/////////////////////////////////////////////////////////////////////////////////////////////////////////////////.
2022-04-19 15:17:11 217
原创 更改uboot命令行前缀
在配置文件中.config或者在对应平台下的 XXX_defconfig下修改CONFIG_SYS_PROMPT="123123#"u-boot/u-boot-xlnx-xilinx-v2018.3/configs/xxx_defconfigCONFIG_SYS_PROMPT="ffffasdf>"
2022-04-19 14:14:37 331
原创 ubuntu 18.04.6安装后无法上网
首先参考这个大兄弟的操作步骤:1、 ubuntu虚拟机nat方式上网;2、我根据这个方式操作过后发现还是不能上网;虚拟机-》编辑-》虚拟网络编辑器 弹出如下设置框之后启动虚拟机:在设置中-》有线连接 -》 选择红色框的设置切换到ipv4,添加一个新的ip ,网关和子网掩码来自虚拟网络编辑器中的NAT设置中的网关和子网掩码;ip地址在 【起始ip地址和结束ip地址内】边界可取按照步骤1中来尝试ping主机(pc的)ip;有...
2022-04-14 10:27:07 1678
原创 linux i2c 驱动二 IIC控制器
系列文章目录linux i2c 驱动一linux i2c 驱动二提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、IIC调试(不是
2022-03-08 16:08:29 2042
原创 设备树 二
设备树基本语法:soc厂商一般会提供.dts文件,我们需要新增或者修改设备树;设备树的头文件 .dtsi文件以zcu102为例: 在内核源码中有三个设备树文件:zynqmp-zcu102-revB.dts zynqmp-zcu102-revA.dts zynqmp-zcu102-rev1.0.dtszynqmp-zcu102-revA.dts: dtsi是dts的头文件 但也可以用#include 引用.h和dts文件#include "zynqmp.dtsi"#include
2022-02-28 16:43:41 958
原创 设备树 一
1、什么是设备树?设备树的文件(DTS)用来以树状接口描述设备信息。例如: cpu数量 内存 IIC接口 SPI上有哪些设备等2、DTS、DTB、DTC是什么?DTS 是设备树源码 .dts .dtsi相当于是dts的头文件也是设备树源码DTB 是将设备树编译后得到的二进制文件DTC 编译设备树的工具 在 源码/scripts/dts目录下 MakefileDTC工具依赖于 dtc.c。。。等源码,最后编译链接出来dtc 主机文件3、如何编译设备树? m...
2022-02-19 10:27:47 590
原创 linux 动态库编译链接
创建三个文件:testa.c testb.c testc.c so_test.h使用这三个文件编译动态库libtest.sotesta.c#include "so_test.h"void test_a(){ printf("this is in test_a...\n");}testb.c#include "so_test.h"void test_b(){ printf("this is test_b .. \n");}testc.c#i
2022-02-17 15:01:10 1537
原创 c++中解析ini 文件的simpleIni库
simpleIni库简介:一个跨平台库,它提供了一个简单的 API 来读取和写入 INI 样式的配置文件。它支持 ASCII、MBCS 和 Unicode 中的数据文件。它被明确设计为可移植到任何平台,并已在Windows,WinCE和Linux上进行了测试。使用MIT许可证以开源和免费的方式发布。功能:1】加载和保存 INI 样式的配置文件2】自由接受文件格式3】支持char或wchar_t变成接口4】通过用户编写的转换器类支持非标准字符类型或文件编码5】支持以编程方...
2022-02-15 20:35:09 2837
原创 python --离线安装wxPython包
官网下载和python版本还有个人pc相对应的包网址:wxPython · PyPI.如下:如何确定版本号:1、python版本号确定windows +r 输入cmd输入 python 就可以看到版本号2、下载文件的版本号:举例:wxPython-4.1.1-cp39-cp39-win_amd64.whl4.1.1表示: wxPython的版本cp39 表示: python版本 3.9win表示: windowsamd64: 表...
2022-02-09 16:02:29 2966
原创 块设备驱动 <概念和字符设备区别一>
系列文章目录块设备概念和字符设备区别块设备驱动框架块设备驱动程序及验证提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言驱动分为三大部分:字符设备驱动,块设备驱动,网络设备驱动;字符设备: 以字节为单位的即时数据传输的设备。块设备:以块为单位的数据传输(读写)非随机即时性访问;一、块设备概念及和字符设备区别?块设
2022-01-13 10:38:52 369
原创 uboot中添加自定义命令和驱动
首先U_BOOT_CMD(_name, _maxargs, _rep, _cmd, _usage, _help)解析一堆的宏定义最终的目标就是定义一个结构体并且定义一个section(段),引入lds链接脚本这个东西:我是用的是xilinx的板子,所以链接脚本的目录在: bootloader源码/arch/arm/mach-zynq/u-boot.lds先看下这个文件内容:OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-l
2022-01-04 10:16:40 3525 5
原创 lrz | lsz 工具传输文件
1、串口设置2、secure crt设置3、板子上有lrz二进制文件(一般跟文件系统都有):4、单板输入 lrz就会弹出文件选择框文件传输:
2021-12-29 16:03:55 5600
原创 串口重定义
正常情况下我们驱动和平台的调试是通过串口调试的,但是和其他模块通信一般使用的是网口。如何将当前串口信息的输出重定向到网口:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <sys/ioctl.h>#include <unistd.h>#define STDOUT_FD (1)int main(int
2021-12-21 11:25:28 1034
原创 makefile 中$@ $< $^含义
宏观编译对应的微观编译步骤:对应步骤如下:编译: 预编译 : 展开头文件和宏定义 编译compile : main.c -> main.s arm-linux-gcc -S main.c 汇编assembly: main.s -> main.oarm-linux-as -o main.o main.s 链接link :...
2021-11-05 16:23:15 983
原创 linux i2c 驱动一
系列文章目录1、i2c协议简述2、i2c驱动框架3、i2c实例目录系列文章目录文章目录前言一、i2c协议简述二、linux 下 i2c驱动框架1.首先掌握如何使用2.理解原理三、实例1、设备树2、驱动代码总结文章目录 前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示..
2021-09-21 17:46:36 244
原创 linux内核任务调度-- wait_event
linux内核中经常需要进行进程的调度struct wait_queue_head { spinlock_t lock; struct list_head head;};struct wait_queue_head *wq_head,#define wait_event(wq_head, condition) \do { \ ...
2021-07-17 16:21:12 2852
原创 List.h 修改 --结合上篇使用
复制后可迁移篇结合编译就可以测试验证 list相关操作;上篇:双向链表内核数据结构#ifndef _MY_LIST_H#define _MY_LIST_H#ifndef ARCH_HAS_PREFETCH#define ARCH_HAS_PREFETCHstatic inline void prefetch(const void *x) {;}#endif#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->.
2021-07-17 10:19:34 118
原创 linux内核数据结构基础 -- 双向链表
本文如下部分:1、内核中双向链表定义2、常用方法列举 及原理分析3、举例目录本文如下部分:1、内核中双向链表定义2、常用方法列举 及原理分析3、举例1、内核中双向链表定义双向链表:struct list_head { struct list_head *next, *prev;};所在目录:include/linux/list.h单纯的两个指针,描述前后项;2、常用函数(宏函数) 双向链表定义和初始化 #define LIST_HE
2021-07-17 10:15:12 493 2
原创 uboot中环境变量 sf
这个命令是 uboot实现了 对flash 的读写初始化功能,挂载在spi总线下;执行sf probe 就是对spi总线和 flash的初始化;命令声明: u_BOOT_CMD大家都知道就是定义uboot模式下的命令行;然后uboot在main_loop下循环检测串口指令来解析调用相应命令U_BOOT_CMD( sf, 5, 1, do_spi_flash, "SPI flash sub-system", "probe [[bus:]cs] [hz] [mode] - init fla.
2021-07-03 15:44:15 2477
原创 uboot中给内核传入分区的参数
在uboot 环境变量如何进行配置分区??在uboot源码cmd/mtdparts.c中 提供工了这样一段注释 * Three environment variables are used by the parsing routines: * * 'partition' - keeps current partition identifier * * partition := <part-id> * <part-id> := <dev-id>,p
2021-07-03 11:15:29 1068
原创 加载ko模块时报错unknown symbol in module, or unknown parameter
创建两个ko, A.ko B.koA.ko中的函数要被B.ko所引用;在A.ko中使用 EXPORT_SYMBOL_GPL(func);在B.ko中使用 func 编译和加载会报错;方法如下:1、将 A.ko编译进内核, 任意目录的makefile中添加 obj -y+= A.koobj -m += B.ko 如果A,B不在一个目录会报错方法一:拷贝A目录中的Module.symvers 到B目录中,之后编译B.ko =========》 测试通过方法二:在...
2021-07-02 17:55:00 5461 1
原创 基于dts的SPI框架 ADC9009驱动
SPI的dts配置:&spi0 { is-decoded-cs = <0>; num-cs = <1>; status = "okay"; device@0{ compatible = "adrv9009_1"; //compatible = "xlnx"; reg = <0x0>; spi-max-frequency = <0x100000>;
2021-05-29 15:56:06 2185
原创 git push时报错
目的: 修改了一些代码想要合入到 master上;操作如下:1、从远端更新代码到本地git pull origin master:master2、git status 查看3、git add =》 git commit -m " 内容注释"4、提交代码 ---- 这里报错了命令:git push origin master :master error: dst ref refs/heads/master...
2021-05-26 17:43:01 350
原创 xilinx ps-pl间的共享中断如何使用
首先环境介绍:Zynq UltraScale+ 参考文档 ug1085-zynq-ultrascale-trm.pdf需求:使用pl提供使能中断寄存器regEn,通过控制regEN使PL端发送中断,PS接收中断并在用户态处理中断;分析:1、处理中断实在PS端并且在用户态;那就涉及内核通知用户的机制,只有异步通知,通过信号来做比较合理;2、PS使用PL属于内部中断 至于有哪些中断类型参考: ug1085-zynq-ultrascale-trm.pdf 第13节 下载地址3...
2021-05-11 19:37:51 1906 6
原创 git 删除远端文件 /文件夹
linux上丢弃工作区变动# 尚未暂存以备提交的变更:# (使用 "git add <file>..." 更新要提交的内容)# (使用 "git checkout -- <file>..." 丢弃工作区的改动)git checkout -- misc/bspinit/bin/ssh_loglinux 上 git删除远端文件 /文件夹git rm misc/xxxx/src/deviceLayer/test/*相当于多次执行 git rmrm 'm
2021-05-08 17:02:38 304
原创 周-周内秒转化为utc时间 c语言实现
#include <stdio.h>#include <time.h> const static double gpst0[]={1980,1, 6,0,0,0}; //起始时间#define LEAPS 18typedef struct { /* time struct */ time_t time; /* time (s) expressed by standard time_t */ double se.
2021-04-02 16:27:43 4842 1
转载 单板上查看gpio使用情况
转载:查看GPIO使用情况_weixin_34205076的博客-CSDN博客Linux通过内核查看芯片gpio配置使用情况Dwyane05 2018-05-04 14:30:05 6133 收藏 6文章标签: Linux gpio版权用户空间使用gpio输出试,出错;使用PB08输出1-----对应40:32*(B-A) + 08 = 40# echo 40 > exportsh: write error: Device or resource busy#...
2021-03-26 09:15:03 705 1
原创 i2c_tools记录
i2c_tools是一个帮助调试i2c的开源工具;使用说明:i2c-stub-from-dump i2cdump i2cset i2cdetect i2cget i2ctransfer i2cdetect:直接在板子上敲i2cdetect,就会弹出帮助:可以看到:有命令: i2cdetect -y -a 总线 试一下看看可以看到...
2021-03-24 09:32:32 1084 1
原创 输入子系统框架分析 --- 第一节
本模块分为两节:第一节: 分析输入子系统框架 第二节: 输入子系统代码举例第一节内容: 以按键作为输入分析源码框架1\回忆字符设备驱动程序编写步骤:确定主设备号 或者由系统分配记录主设备号 构造file_operations 结构: 包含的相关函数open, read, write, release等 把这个file_operations 结构注册到内核 使用函数 major = register_chrdev(主设备号, 名字, &third_drv_fops)...
2021-03-15 17:52:33 98
转载 dd命令转载
一、dd命令的解释dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
2021-03-15 17:52:11 588
原创 jz2440 内核启动打印信息
加载完文件系统和内核重启后打印信息:OpenJTAG> print uboot起来之后打印的参数bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 内核传递参数:b...
2021-02-21 10:19:53 289
平台提供接口框架 socet-server-client
2021-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人