- 博客(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
1434
原创 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
2032
原创 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
2221
原创 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
2262
原创 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
11282
原创 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
2663
原创 嵌入式硬件介绍 -- 晶振 以及简述有源晶体与无源晶体区别
晶振**作用: 石英晶体制程的振荡器,可产生高度稳定的信号。故对于一些需求频率高度稳定的设备,一般采用晶振(晶体振荡器,也称有源晶体)。 能够产生中央处理器(CPU)执行指令时所必须的时钟频率信号,时钟频率越高,一般CPU处理速度越快。****工作原理 晶振具有压电效应,即在晶片两极外加电压后晶体会产生变形,反过来如外力使晶片变形,则两极上金属片又会产生电压。如果给晶片加上适当的交变电压,晶片就会产生谐振(谐振频率与石英斜面倾角等有关系,且频率一定)。晶振利用一种能把电能和机械能相互转
2022-01-25 14:03:36
666
原创 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
1534
1
原创 C语言基础学习 -- volatile关键字作用
Volatile关键字参考文献: https://blog.youkuaiyun.com/weixin_44363885/article/details/92838607 https://blog.youkuaiyun.com/weixin_30342639/article/details/91356608两个方面: 1. volatile,英译为“易变的”,在进行程序编译时,告诉编译器被volatile修饰的变量在(单/多线程中)是随时可能发生变化的,故让编译器在进行程序优化时不对volatile修饰的变量进行优化,就
2022-01-21 14:38:51
1906
原创 C语言基础学习 -- static关键字作用
static关键字主要有三个作用: 1. 用static修饰的变量,与普通的全局变量一样,存储在全局数据区,系统为其分配存储内存,即使作为局部变量,也可保持其值不变; 2. 用static修饰的变量,只可作用与当前文件,即使同一工程下的其他文件,也不可访问; 3. 用static修饰的函数,同样只作用与当前文件。关于2、3点,这样做的好处就是即使不同文件起同样的名字,只要用static修饰就互不影响,可以防止不必要的错误。若想了解详细,可参考大神文章:https://blog.csdn.n
2022-01-21 13:24:47
409
原创 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
1081
原创 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
1103
原创 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.youkuaiyun.com/qq_45804423/article/details/122548136](https://
2022-01-18 17:36:15
3080
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
1159
原创 Linux嵌入式开发--链接脚本
链接脚本文件格式名: .ldsSECTIONS{//精确控制了输入段在输出文件中的顺序、位置和所在段 .= 0X87800000; //. 为地址符号,该处申明链接的起始地址 .text: //.text代表从上述地址(代码段的起始地址)开始填入代码段信息 { start.o //其中一部分代码段 *(.text) //表示剩余所有代码段 } .rodata ALIGN(4) : {*(.rodata)}
2022-01-17 21:20:14
592
原创 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
781
空空如也
安卓启动何时挂载文件系统
2022-06-13
宏定义--用于给寄存器写值方面
2022-01-17
请问我去爬取一个有用户权限的网页,该用户权限是添加在一个用户组里,请问怎么爬取
2021-08-18
Qdialog对话框
2021-06-16
Linux——bitmap请教
2021-05-25
VS2019 无法引用 System.Windows.Forms
2021-03-08
小白提问:makefile引用另一个makefile问题
2021-02-22
asctime_s加下划线的问题
2021-01-28
input_mt_init_slots函数是B协议专有的函数吗?
2021-01-27
传递一个非整数param
2021-01-25
传递了一个非整数作为_Param_(4),而对“printf”的调用需要一个整数
2021-01-25
第一个detchar执行后,为什么第二个getchar还没输入任何东西就执行其他语句?
2021-01-15
putchar与getchar在函数中如何实现字符串逆序输出?
2021-01-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人