自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 问答 (14)
  • 收藏
  • 关注

原创 Linux驱动开发 -- touch驱动注册

Linux i2c驱动开发 – touch 驱动文章目录Linux i2c驱动开发 -- touch 驱动前言一、i2c 驱动框架二、Linux的MODULE声明1. MODULE相关声明三、模块的初始化与卸载1. module_init()2. module_exit()四、驱动注册1. i2c_add_driver()介绍2. i2c_add_driver参数介绍前言  本章主要针i2c driver的注册,卸载以及probe函数的调用进行内容整理。初步学习,如有错误,还请指正。一、i2c

2022-02-23 16:08:08 1224

转载 linux -- MODULE_AUHTOR、MODULE_LICENSE介绍

MODULE模块介绍

2022-02-22 15:27:34 208

原创 Linux嵌入式开发 -- imx6ull 主频配置

imx6ull主频设置文章目录前言一、系统时钟来源二、7路PLL时钟源1. 介绍2. 主频设置3. 代码编写总结前言  对于imx6ull系列芯片而言,默认工作频率为396MHZ,但标准工作频率为528MHZ,甚至可以达到696MHZ,本章主要介绍如何将工作频率设置到528MHZ。一、系统时钟来源  打开开发板原理图:    --第一张图为32.768KHz的晶振,为imx6ull的RTC时钟源;    --第二张图为24MHz的晶振,其作为imx6ull内核以及其他外设的时钟源。.

2022-02-08 14:12:15 1830

原创 Linux嵌入式开发 -- 设置PLL及各路PFD

imx6ull系列芯片PLL各路PFD频率设定PLL参考手册第18章:Chapter 18:Clock Controller Module(CCM)文章目录前言一、System PLL中各PFD设定1. 代码编写二、USB1 PLL中各PFD设定1.代码编写三、注意事项前言  1. imx6ull芯片共有7路PLL,用于给外设提供时钟,部分PLL路还分4路PFD,本次设定主要针对System PLL及USB1 PLL以及对应的PFD进行设定,其他路根据实际需求再考虑是否设定。  2. 但是,Sy

2022-02-07 19:56:36 2021

原创 Linux -- VS Code显示空格及Tab

VS Code显示空格及Tab有时为了方便观察代码对齐,以及防止多打印不必要的空格或者Tab,可以将VS Code中进行设定显示方便查看。方法:  Settings -> 搜索render Control Characters -> 勾选后即可显示Tab,  Settings -> 搜索render WhiteSpace -> 将设置为all,即可将所有控制字符设置为空格显示。...

2022-01-26 15:13:11 2155

原创 Linux --VS Code安装与配置

VS Code安装  Linux下有两种下载安装方式,一个是sudo apt-get install指令,一个就是deb包安装,本次安装vs code通过在网页中下载其deb包进行下载安装。  VS Code下载网址:https://code.visualstudio.com/  进入官网下载deb包,下载完成后执行如下指令即可安装完成:sudo dpkg -i code_1.63.2-1639562499_amd64.deb //具体deb名称以实际下载为准  下载结束后,就需根据自己需求对V

2022-01-26 14:43:16 9572

原创 Linux -- 查找文件内容或文件位置

查找文件所在位置格式: find + 路径 + “-name” + 文件名命令行:touch@touch-VirtualBox:~/Driver Development$ sudo find /home/touch/ -name "5_led_bsp_manage"终端显示结果:/home/touch/Driver Development/5_led_bsp_manage查找文件内容对应的文件及其所在位置格式:grep -r + “关键字”命令行:touch@touch-Virtual

2022-01-25 16:40:07 2368

原创 嵌入式硬件介绍 -- 晶振 以及简述有源晶体与无源晶体区别

晶振**作用:  石英晶体制程的振荡器,可产生高度稳定的信号。故对于一些需求频率高度稳定的设备,一般采用晶振(晶体振荡器,也称有源晶体)。  能够产生中央处理器(CPU)执行指令时所必须的时钟频率信号,时钟频率越高,一般CPU处理速度越快。****工作原理  晶振具有压电效应,即在晶片两极外加电压后晶体会产生变形,反过来如外力使晶片变形,则两极上金属片又会产生电压。如果给晶片加上适当的交变电压,晶片就会产生谐振(谐振频率与石英斜面倾角等有关系,且频率一定)。晶振利用一种能把电能和机械能相互转

2022-01-25 14:03:36 561

原创 Linux(Ubuntu系统)-- Conky配置文件记录

Conky文件配置不禁觉得这匹狼配上conky配置有点小帅,特此记录一下。。。Conky配置文件:alignment top_right#设置屏幕位置background yes#是否嵌入桌面draw_borders no#是否绘制窗口边框border_width 1#窗口边框宽度cpu_avg_samples 2#default_color cornflowerblue#默认颜色default_shade_color black#默认字体阴影颜色#default_out

2022-01-21 18:47:03 1355 1

原创 C语言基础学习 -- volatile关键字作用

Volatile关键字参考文献: https://blog.csdn.net/weixin_44363885/article/details/92838607 https://blog.csdn.net/weixin_30342639/article/details/91356608两个方面: 1. volatile,英译为“易变的”,在进行程序编译时,告诉编译器被volatile修饰的变量在(单/多线程中)是随时可能发生变化的,故让编译器在进行程序优化时不对volatile修饰的变量进行优化,就

2022-01-21 14:38:51 1854

原创 C语言基础学习 -- static关键字作用

static关键字主要有三个作用:  1. 用static修饰的变量,与普通的全局变量一样,存储在全局数据区,系统为其分配存储内存,即使作为局部变量,也可保持其值不变;  2. 用static修饰的变量,只可作用与当前文件,即使同一工程下的其他文件,也不可访问;  3. 用static修饰的函数,同样只作用与当前文件。关于2、3点,这样做的好处就是即使不同文件起同样的名字,只要用static修饰就互不影响,可以防止不必要的错误。若想了解详细,可参考大神文章:https://blog.csdn.n

2022-01-21 13:24:47 367

原创 Linux嵌入式开发--bss段起始地址设置问题

bss段起始地址通常在链接脚本中,可自由设定代码每个段的链接地址;而针对bss,我们每次需进行bss清除操作,故需要提供bss的地址给汇编中;由于bss段字节对齐一般为4字节对齐(即地址最低位为0, 4, 8, C),所以起始地址也需要4字节对齐,否则会清除数据错乱而导致程序无法运行。比如,若bss段地址非4字节对齐:0x20000289,由于bss段数据一般为4字节对齐(也可8字节,16字节对齐,一般32位SOC而言,用4字节),故再进行清除时,汇编会根据起始地址在0x20000288开始清除操作

2022-01-20 16:52:46 975

原创 Linux嵌入式开发--bsp管理模式 及其 Makefile(主要介绍Makefile)

bsp管理模式及Makefile1. bsp管理bsp管理,说白了,就是只将相同内容或属性的文件放在同一个目录下,不同属性的文件分开存放,这样可以方便文件管理及查找。以imx6ull芯片实现跑马灯为例:  --led亮灭过程实现三步骤:时钟使能,led初始化(GPIO管脚功能设定),延时设定;  --bsp管理:    1)将三部分的文件分别存放不同文件夹下:clk.c/clk.h放于clk文件夹,led.c/led.h存放于led文件夹下,delay.c/delay.h存放于delay文件夹下

2022-01-19 17:34:17 1004

原创 Linux嵌入式开发--汇编清除.bss段(stmia、cmp、ble指令)

汇编清除.bss指令(stmia, cmp, ble).global _start.global _bss_start_bss_start: .word __bss_start //代表_bss_start=__bss_start变量的值 //__bss_start的值来源于链接脚本.lds的.bss段获取的起始地址 //链接:[https://blog.csdn.net/qq_45804423/article/details/122548136](https://

2022-01-18 17:36:15 2823 3

原创 Linux嵌入式开发--gcc交叉编译

在Makefile中编写objs = start.o main.o //目标文件用一个变量表示,下方依赖调用时通过$(objs)实现ledc.bin: $(objs) //$(objs)代表上方所定义的几个文件,此处为ledc.bin(目标文件)的依赖文件 arm-linux-gnueabihf-ld -Ttext 0x87800000 $^ -o ledc.elf //Ttext + 地址 -> 代码段链接地址 //$^代表依赖文件集合 //-o 后加输出文件名,链接输出格式为elf

2022-01-17 21:22:10 1062

原创 Linux嵌入式开发--链接脚本

链接脚本文件格式名: .ldsSECTIONS{//精确控制了输入段在输出文件中的顺序、位置和所在段 .= 0X87800000; //. 为地址符号,该处申明链接的起始地址 .text: //.text代表从上述地址(代码段的起始地址)开始填入代码段信息 { start.o //其中一部分代码段 *(.text) //表示剩余所有代码段 } .rodata ALIGN(4) : {*(.rodata)}

2022-01-17 21:20:14 530

原创 PyQt5多线程处理

PyQt5多线程的使用UI界面经常遇到,当执行某个按钮时,其内部逻辑函数处理时间较长的话会导致UI几面假死,此时需要将按钮对应函数放在另一个线程中去处理。如下为线程代码:一、线程函数from PyQt5.QtCore import Qt,QThread,pyqtSignalclass Rule_Thread(QThread): _rule = pyqtSignal(str) #设置触发信号传递的数据类型,此处为 str类型 def __init__(self): super(Rule_Thr

2021-04-16 10:22:35 706

空空如也

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

TA关注的人

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