自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 联想小新笔记本关机后鼠标灯仍保持常亮解决方法

笔记本关机后鼠标仍常亮解决方法

2022-08-14 23:58:56 4377 1

原创 git学习笔记

操作平台ubuntu推荐一个比较好的git 教程1 创建版本库创建一个新目录即可(mkdir)2 初始化版本库git init3 添加文件到仓库git add < file >4 文件提交到仓库git commit -m “xxx”5 查看仓库当前状态git status //此命令可以查看当前仓库中的文件与远端仓库中文件的区别,是否有修改、添加等6 查看具体修改的内容git diff < file >7 打印文件修改日志git log //打印出来的为

2021-11-02 17:18:27 213

原创 解决 uboot data abort报错

报错内容如下:

2021-09-07 15:09:30 2682

原创 Linux 命令行调节音量大小 (知道文本模式下的图形界面工具 寻找命令行模式下的命令)

平台:orangepi 3芯片:全志H6Linux使用 alsamixer 图像化界面可以选择声卡 并控制音量大小我使用的这个板子中 LINEOUT 这个条柱是控制音量的大小的 上下键可以改变音量值,如果没有出现这个条柱的话,可以按F6选择声卡后就会出现这个了。但是 一般产品中通常不会又界面来控制 声音的大小,因此就需要命令行了但是 这个alsamixer 工具的命令行模式下的命令是什么呢?一般情况下,如果不知道的话 就可以先找到 alsamixer 这个命令所在的位置 在我的板子上这个

2021-09-01 17:31:16 2043

原创 全志 H6 芯片分析

芯片框图H6 使用4核 cortex a53 处理器。cortex a53 采用 ARMv8 架构,且完全向后兼容ARMv7,并支持 AArch64,也支持了新技术 Trust Zone(Trust Zone:该技术是系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理、企业服务和基于 Web 的服务。),支持NENO(ARM 架构处理器扩展结构,是适用于ARM Cortex-A系列处理器的一种128位SIMD(Single Instruction, Multiple Da

2021-09-01 13:31:00 9487

原创 arm Linux 对于浮点数据的运算

参考连接:ARM 浮点运算,软浮点,硬浮点浮点数据的运算在ARM 中有软浮点和硬浮点两种。硬浮点:编译器将代码直接编译成 硬件浮点协处理器(浮点运算单元FPU)能够识别的指令,这些指令在执行的时候CPU会直接把它转给协处理器执行。浮点协处理器通常有一套额外的寄存器用来完成浮点参数的传递和运算 ,使用实际的硬件浮点协处理器会使CPU 性能进一步提升。软浮点:编译器把浮点运算 转换成浮点运算的函数调用和库函数调用。没有FPU 的指令调用,也没有浮点寄存器传递参数。浮点数据的传递也是通过ARM 寄存器或

2021-09-01 10:31:49 777

原创 ZYNQ 无DDR 启动

ZYNQ 无DDR 启动1 fsbl_bsp 相关修改Translation_table.sxil_exception.cfsbl 相关修改main.cfsbl.hfsbl_handoff.Sfsbl_hooks.cfsbl_hooks.himage_mover.cpcap.cqspi.cqspi.hlscript.ld添加宏定义2 applicationapplication.clscript.ld3 生成BOOT.BIN1 fsbl_bsp 相关修改Translation_table.s该文件

2021-08-18 20:16:24 2898 17

原创 Linux 线程优先级设置(内含C语言版线程创建、绑定CPU和优先级设置代码)

参考链接:https://blog.csdn.net/wushuomin/article/details/80051295 //详细讲解pthread_create 函数https://blog.csdn.net/heybeaman/article/details/90896663 //讲解pthread_join的使用//线程优先级设定1 线程创建线程创建使用的函数接口为:pthread_create()函数原型如下:#include <pthread.h>int pthrea

2021-07-02 15:12:58 9363

原创 orangepi uboot 启动提示找不到设备树文件 无法启动内核

平台:orangepi 3芯片:全志 H6Linux 内核版本:4.9.118uboot 版本: 2014.07最近项目上总是遇见一个问题 ,就是uboot 启动过程中提示** File not Found /boot/dts/sunxi/sunxi-orangepi-3.dts** libfdt fdt_check_header:FDT_ERR_BADMAGIC但是直接查看内存卡后看到设备树文件存在 并且在该目录下,并且 在uboot中使用fdt 命令查询设备树都可以查看到 ,使用了fd

2021-06-25 11:22:33 2530 3

原创 ARMv7架构U-boot 启动流程分析

首先分析 u-boot-spl.lds 链接文件 该文件决定了一个可执行程序的各个段的存储位置 及入口地址文件内容如下:MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\ LENGTH = CONFIG_SPL_MAX_SIZE }MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ LENGTH = CONFIG_SPL_BSS_MAX_SIZE }/* 内存分

2021-06-24 16:21:38 1053 1

原创 博通 bcmdhd 网卡驱动分析

内核版本 4.9.118网卡驱动 博通 bcmdhd 驱动平台 全志H6 orangepi 3 开发板我看的这个驱动不知道是不是orangepi 官方自己修改后的驱动orangepi 3 的4.9版本内核的设备树 和平常看到的设备树表示方式也不同。一般我见到的都是 对不同的板子有不同的dts 文件,该文件包含有描述SOC 内部外设信息的dtsi文件,如果自己要添加或者修改直接修改dts文件即可,但我使用的这个版本的设备树的所有文件都在同一个dts文件中,修改的话也是直接修改该文件。首先设备驱动需

2021-06-16 17:42:39 2697

原创 ARM Linux 字符设备驱动程序

才疏学浅 只是本人对字符设备驱动程序的一些理解 如有错误 欢迎指出字符设备驱动主要实现file_operations结构体 包含常使用的read write ioctrl等函数 实现应用程序按照(应用程序 - C库 - 内核系统调用 - 具体驱动)到具体硬件的控制。驱动程序可以直接编译进内核 (obj-y 生成.o文件) 也可以编译成模块(obj-m 生成.ko文件)模块使用insmod xxx.ko 加载驱动 – module_init(xxx_init)rmmod xxx.k

2021-05-14 14:48:45 100

原创 arm linux 修改debug串口为普通串口

这个问题本来应该很简单 网上也有很多资料但是网上大部分提出的里面都有 修改根文件系统中/etc/inittab文件,S0:12345:respawn:/sbin/getty 115200 ttyS0自动修改为默认的1:12345:respawn:/sbin/getty 115200 tty1但是我使用的ubuntu 20版本的内核中没有这个文件我的系统中系统启动项的配置使用的是systemd在我查看了我的systemd 管理的service 中找到了有关getty的一项进去之后发现了seri

2021-05-14 14:33:53 760 2

原创 Ubuntu 20.04 apt update 时遇见 CommandNotFound 问题

参考连接: https://bugs.launchpad.net/ubuntu/+source/command-not-found/+bug/1876034遇见的问题具体内容如下:Traceback (most recent call last): File "/usr/lib/cnf-update-db", line 26, in <module> col.create(db) File "/usr/lib/python3/dist-packages/CommandNotF

2021-04-16 14:22:43 3273

转载 ReactNative之Redux详解

作者:青玉伏案出处:http://www.cnblogs.com/ludashi/本文版权归作者和共博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果文中有什么错误,欢迎指出。以免更多的人被误导。用redux有一段时间了,感觉还是有必要把其相关的知识点系统的总结一下的,毕竟好记性不如烂笔头。上篇博客更新了关于《ES6中的迭代器、Generator函数以及Generator函数的异步操作》的内容,该内容时saga的基础,稍后会总结s

2020-09-09 21:29:15 546

转载 React数据获取为什么一定要在componentDidMount里面调用?

转载自:https://segmentfault.com/q/1010000008133309/a-1020000008135702这与React组件的生命周期有关,组件挂载时有关的生命周期有以下几个:constructor()componentWillMount()render()componentDidMount()上面这些方法的调用是有次序的,由上而下,也就是当说如果你要获取外部数据并加载到组件上,只能在组件"已经"挂载到真实的网页上才能作这事情,其它情况你是加载不到组件的。compon

2020-08-20 10:51:57 689

原创 Linux netlink回调函数 void (*input)(struct sock *sk, int len) 与 void (*input)(struct sk_buff *skb)

最近在搞毕业设计 想用语音模块控制 2440 播放动画 写了一个驱动程序 利用中断 实现 语音模块儿对开发板的控制 但播放动画 使用 mplayer 1.avi 命令 但驱动里不能实现 system 函数 请教了一位大神后得知可以使用 netlink 通信机制 说实话 这是我第一次听说这么个玩意儿 就学习一下内核版本 2.6.22Netlink 通信机制Netlink 套接字...

2020-07-02 21:18:48 255

原创 简易云台制作记录(内含MPU6050角度的求法)

开发板:STM32F103RCT6最小系统开发板舵机 :SG90运动处理传感器 : MPU-6050

2020-07-01 23:13:31 4406 8

原创 STM32中断和事件

如图 红线代表中断的发生,绿线代表事件的产生,从上图可以看到,编号3电路是一个或门电路,软件中断寄存器和上升沿/下降沿出发选择寄存器中只要有一个为 1 输出就可以为 1 ,因此可以说明软件和硬件都可以对中断或事件进行控制。编号4受中断屏蔽寄存器和编号3的输出控制,为一个与门电路,当中断屏蔽寄存器的值为0时无论编号3输出为1还是为0都不能产生中断,只有当中断屏蔽寄存器的值为1时,编号4 的输出才...

2020-03-31 16:46:03 439

原创 函数指针数组在实际工作中的使用

前几天工作接了一个任务,需要按顺序写好多个函数,调用的时候也比较有规律,早就听说过函数指针数组,一直也没使用过,这次查阅了资料使用了一下,巨好用。网上也很多关于函数指针数组的介绍及指针使用的各种方法,这里就不对定义做详细说明了,推荐一本书,C和指针,写的非常好。关于指针方面,我也是从这本书里学到的,以后有机会认真在看一遍,再详细写一下关于C语言的指针。先贴代码/* 各数字表示 i 表示第几个...

2020-03-31 14:26:22 179 1

原创 DMA传输数据给定时器捕获比较寄存器以输出不同波形

在工作中接到一个任务需要使用定时器输出不同的波形,在网上查阅了资料后发现可以使用DMA给定时器的捕获比较寄存器地址传输数据来控制输出PWM。话不多说先贴代码void TIM3_GPIO_INIT(){ GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENAB...

2020-03-31 11:06:16 1104 6

原创 jz2440 ARM9 开发板移植 mplayer

1 、所需工具mplayer版本 MPlayer-1.0rc2.tar.bz2 (我试了最新版本 一直出错 便还是选择了这个版本)libmad版本 libmad-0.15.1b.tar.gz(libmad)是一个开源的高精度 MPEG 音频解码库,完全是定点计算,非常适合没有浮点支持的平台上使用。2、编译libmad先解压libmadtar xf libmad-0.15.1b.t...

2020-02-17 17:35:16 574

原创 Linux input输入设备驱动程序

1.1输入子系统在Linux中,输入子系统是由输入子系统驱动层,输入子系统核心层、输入子系统事件处理层组成。其中,设备驱动层提供对硬件各寄存器的读写访问和将底层硬件对用户输入访问的响应转化为标准的输入事件,再通过核心层提交给事件处理层。而核心层向下提供了设备驱动层的编程接口,向上又提供了事件处理层的编程接口。而事件处理层就为用户空间的应用程序提供了统一访问设备的接口和处理驱动层提交的事件。所以这...

2020-02-14 17:23:37 471

原创 Ubuntu安装 qtcreator时缺少库的解决办法

安装qtcreator时会显示缺少很多库刚刚发现一条命令即可sudo apt-get install qt5-default qtcreator./qtcreator: error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or directory解...

2019-08-20 09:43:32 2941

原创 学习笔记--i2c驱动框架

i2c驱动框架一一一一一一一一一一一一一一一一一一一一一一一一一软件层 open read write一一一一一一一一一一一一一一一一一一一一驱动 drv_open drv_read drv_write i2c设备驱动:知道数据含义一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一i2c总线驱动程序 :a.识别b.提供读写...

2019-08-12 16:29:46 145

原创 学习笔记---驱动程序probe函数

今天跟着老师写了个nand驱动程序 老师没有用probe函数 的那我想试试 没想到 我的程序驱动不能用了查了点儿资料 才好使了。probe函数是一个入口函数,本来写驱动是直接再init函数里面直接操作使用probe后 这个函数便是正儿八经的入口函数本来我也不懂static int ly_nandf_init(void){ return platform_driver...

2019-08-10 18:11:44 2982

原创 学习笔记--韦东山视频输入子系统程序

听视频记的笔记和自己凭笔记写的代码输入子系统的驱动程序只需要控制设备层即可1,分配一个input_dev2, 设置 按键类事件evbit – 能产生哪些事件keybit — 能产生这些事件中的哪些按键3,注册4,硬件相关操作首先编写入口 出口函数 + GPL协议static int input_key_drv_init(void){}static int in...

2019-08-04 15:18:21 286

原创 学习笔记--韦东山驱动视频之input子系统框架分析

框架分为两层核心层 设备软件层核心层—input.c —input_init里面有一个register_chrdev 函数 里面的file_operation 结构体里面只有一个 open 函数怎么实现读写呢struct input_handler *handler = input_table[iminor(inode) >> 5];根据打开节点的次设备号 找到一...

2019-08-04 10:50:59 210

原创 学习笔记--韦东山视频学习uboot,内核,最小根文件系统

之前跟着老师做出来一个小系统 但无奈后来做字符设备挂接的时候 rmmod不好使决定再重新编译一个内核对于Windows一上电–>PC --> BIOS --> 引导操作系统的Windows --> 识别C盘 D 盘 —> 运行应用程序对于嵌入式操作系统上电----------->Bootloader -----> Linux内核 -------...

2019-08-01 17:14:30 291

原创 Mobaxterm 无法连接服务器

今天打开Mobaxterm 时 突然不能连接服务器了 开发板也连不上 filezilla也连不上我查看了一下 是之前 ping开发板的时候把Ubuntu设置为桥式连接了 我换回 nat连接时就可以用ssh服务 但再换回桥式又不能用了sudo /etc/init.d/ssh start桥式连接的时候 我试了一下这个命令 ssh服务又可以用了?????????难道换了...

2019-08-01 13:41:38 5573

原创 韦东山视频学习笔记--字符设备驱动

今天跟着老师 写字符设备驱动 make时 出现了很长的错误出现了这样的情况make -C /work/system/linux-2.6.22.6 M=`pwd` modulesmake[1]: Entering directory '/work/system/linux-2.6.22.6' ERROR: Kernel configuration is invalid. ...

2019-07-30 22:32:57 413

原创 jz2440开发板以nfs启动

1,ping通关防火墙 虚拟机桥连接 设置为同一网关 采用 电脑连WiFi 开发板接路由器模式2,修改Ubuntu上的 /etc/exports 加上要共享的目录 按照格式修改3,重启NFS 服务sudo /etc/init.d/nfs-kernel-server restart4,修改开发板uboot命令行参数bootargs noinitrd root=/dev/mt...

2019-07-30 11:21:36 387

原创 学习笔记--关于韦东山老师裸板视频定时器注册函数

理一下写这类函数的思路首先 定义一个函数指针 数组写注册函数,实现把函数指针填充进数组里,需要的话 写取消注册函数,让数组里对应的函数为空,注册函数的用途:把需要定时器处理的函数一次执行。不需要很麻烦的每次都修改timer.cvoid timer_irq(void){ int i; for (i = 0; i < TIMER_NUM; i++) { if (tim...

2019-07-17 21:31:41 116

原创 学习笔记--韦东山裸板视频之中断

1)MRS R1,CPSR ; 将CPSR状态寄存器读取,保存到R1中MRS R2,SPSR ; 将SPSR状态寄存器读取,保存到R2中MSR CPSR, R1 将R1中的值加载到CPSR寄存器中2)ldr r1, =und_string 含义是将und_string这个变量的地址加载到r1中3)处理未定义指令的汇编文件,定义一个复位代码段 一个未定义指令...

2019-07-17 21:09:18 184

原创 学习笔记--jz2440 LCD程序

今天决定自己尝试写LCD程序,遇到问题自己解决 看芯片手册 原理图。努力变得更好。还是很多根据韦东山老师视频的思路 我看了一遍,想了下,觉得要自己手动写一下可能会学到更多。首先 大概思路:根据面向对象编程的思路,写上层函数套用下层函数,lcd.c 里面写 lcd所需要的参数的结构体,供下层函数lcd.c调用。框架与准备需求:让jz2440屏幕上能实现画点线圆配置寄存器 写需求函...

2019-07-16 23:32:33 214

原创 学习笔记--面对对象编程以及韦东山ARM裸机编程LCD一节

韦老师的视频教程是一套很好的教程,但是每天看视频,跟着老师写代码,让我觉得收获没那么多,甚至记住的东西也不多,所以以后准备写日志,记录每天学到的东西,遇到的问题的解决办法。希望很努力的 变得更好。今天学习了教程上的LCD一节,视频分好多节,还没看完,但觉得面对对象编程的思想我应该很熟练的掌握。于是输出一下。以前也接触过面对对象编程,但一直没有深入的理解,今天结合代码以及老师的讲解才觉得真正的了...

2019-07-15 19:20:35 228

云台5.0(使用OLED显示出当前角度).zip

本人博文 简易云台制作记录(内含MPU6050角度的求法)配套源码

2021-07-20

空空如也

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

TA关注的人

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