- 博客(16)
- 资源 (4)
- 收藏
- 关注
原创 linux内核无法使用数学函数解决方法
linux内核无法使用数学函数解决方法1、在linux内核中调用用户空间的程序2、linux 内核调用用户程序(带程序)3、自己写一个数学函数(指数与对数)
2021-03-03 15:00:08 387 1
原创 Linux内核浮点运算
首次在linux内核驱动使用浮点型运算时出现了undefined reference to `__aeabi_uidiv’等错误,主要参考:Vedic的博客toradexsh的博客根据Vedic的博客修改makefile即可!
2020-11-11 20:09:28 756
原创 linux内核中使用定时器
一、使用Linux 内核定时器Linux 内核定时器采用系统时钟来实现, Linux 内核定时器使用很简单,只需要提供超时时间(相当于定时值)和定时处理函数即可,当超时时间到了以后设置的定时处理函数就会执行,和我们使用硬件定时器的套路一样,只是使用内核定时器不需要做一大堆的寄存器初始化工作。在使用内核定时器的时候要注意一点,内核定时器并不是周期性运行的,超时以后就会自动关闭,因此如果想要实现周期性定时,那么就需要在定时处理函数中重新开启定时器。 Linux 内核使用 timer_list 结构体表示内核定
2020-11-03 19:55:13 873
原创 linux 串口波特率的修改与sdma的设置
最近这几天准备用串口实现DMA的传输数据,刚开始研究三天DMA,结果是一脸懵逼,无奈之下,只能跑去研究串口,结果发现Linux系统串口和DMA是真的难(小白,而且没人一起研究!),芯片手册对应的页数可以让人放弃,最后还是放弃看芯片手册,从网上百度开始,看看前人的总结,最终写下以下总结笔记。系统:linux3.0.15cpu:imxdl一、DMA二、串口波特率设置与SDMA传输三、测试...
2020-08-26 14:28:25 2027 1
原创 imx6的PWM计数
由于imx6并没有PWM计数功能,本次PWM计数主要通过中断进行PWM计数,本文使用linux3.015的内核,没有设备树。1、照葫芦画瓢,参考其他的中断,利用platform_get_irq函数获取中断号。/******Pwm.h中****************/struct pwm_device { struct list_head node; struct platform_device *pdev; const char *label; struct clk *clk; in
2020-08-02 20:26:59 721
原创 qt4下的定时器使用及精度评估
由于要使用定时器定时采集数据,想用qt的定时器采集1000hz的信号(qt的定时器精度位ms级)废话不多,先上代码如下:timer_thread.h代码#ifndef TIMER_THREAD_H#define TIMER_THREAD_H#include <QTimer>#include <QThread>class TimerThread : public QThread{ Q_OBJECTpublic: TimerThread(QObject
2020-08-02 19:35:21 944
原创 关于QT4的一些学习杂记
一、关于QT中on_pushButton_10_clicked有定义没见调用却能使用具体参考Worldsing 博客这种写法是QtCreator默认的,也就是它背后帮你完成了connect。比如对象obj有信号A,你只需要在同一个类中完成如下形式的函数即可on_obj_a()。编译时QtCreator就会自动在背后处理,效果就是对象obj的信号a被连接到这个函数。推荐还是不这样做,这样做影响阅读。等多起来时自己也看不明白。也许不应该说是QtCreator的帮助,应该是moc的帮助恰当点。Qt Meta
2020-07-27 22:14:56 243
原创 将驱动编译到内核笔记
文件夹的选择把我们的驱动源文件(test.c)放到对应目录下,具体放到哪里需要根据驱动的类型和特点。一般情况下我们分为字节驱动和块驱动,他们分别对应的文件夹时drivers下的char文件夹与block文件夹。(实际上并不一定要放到这些文件,可以再新建文件夹)内核的配置系统组成可参考牧野星辰的博客将字符驱动编译到内核以test.c为例,将其添加到插入目录下,此时可分为两种情况。1、不创建子目录,直接将test.c拷贝到char目录打开char目录的Kconfig,仿写其他驱动的格式在menu
2020-07-27 10:42:47 141
转载 imx6PWM学习笔记1
使用zlg的m6708开发板时(内核kernel3.0.15),由于自带得开开发板系统只有一路PWM,并且该路PWM已经给了LCD作背光调节,为此接下来学习如何将其他io口修改为PWM输出。首先参考emb_hao的博客:Linux系统PWM驱动内核的配置在linux内核中有一个规律,Linux内核开发者把通用的东西都总结出来,个性化的东西就留出接口,和GPIO驱动类似,PWM驱动在内核中也提供了对应的接口函数,内核提供的接口函数声明在include/linux/pwm.h中//申请一个PWM资源s
2020-07-23 22:10:50 492
原创 imx6Q/6dl的GPIO宏定义
imx6dl的管脚定义其IO口宏定义在\arch\arm\plat-mxc\include\mach\iomux-mx6dl.h中,如CSI0_DAT10的定义。/*管脚模式的命名规则为:MX6Q_PAD_<padname>__<padmode>_ padname为管脚名,padmode为管脚模式。*/#define MX6DL_PAD_CSI0_DAT10__IPU1_CSI0_D_10 \ IOMUX
2020-07-18 21:41:59 381
转载 IMX6q GPIO功能的使用方法
假如我们要使用扩展口的第11脚EIM_D18。先在arch/arm/plat-mxc/include/mach/iomux-mx6q.h中找有EIM_18,可以找到MX6Q_PAD_EIM_D18__xxx。因为要作为gpio,所以使用MX6Q_PAD_EIM_D18__GPIO_3_18这个配置,将它加入board-mx6q_sabresd.h中。static iomux_v3_cfg_t mx6q_sabresd_pads[] = {…MX6Q_PAD_EIM_D18__GPIO_3_18
2020-07-15 20:08:40 459
原创 linux内核中的驱动查找
一、使用make menuconfig 可以查看具体编译了哪些驱动。在内核根目录下输入sudo make menuconfig 进入界面后,选择Device Drives,具体界面如下:进去后可以看到很多驱动名字,以I2C为例,选中后选择help键。进去后可以看到要编写到内核的驱动的目录二、查找.o或者.ko文件也可以查看是否该c文件被编译进入drives/i2c目录输入find -name "*i2c*"有以下信息再查看该目录下的kconfig与Makdefile可知,该驱动主要与上面的
2020-07-15 19:39:31 2044 1
原创 unbutu中的ARM字符驱动编译过程笔记(vscode)
添加内核库文件创建c_cpp_properties.json,添加包含的头文件库{“configurations”: [{“name”: “Linux”,“includePath”: [“${workspaceFolder}/**”,“/home/vmuser/testkernel/kernel-imx/include”,“/home/vmuser/testkernel/kernel-imx/include/linux”,“/home/vmuser/testkernel/kernel-i
2020-07-12 12:19:00 282
原创 Linux下uboot编译出错(/bin/bash: arm-none-linux-gnueabi-gcc: command not found )
网上给出了三种情况如下:一、arm-none-linux-gnueabi-gcc不能再64位系统下下编译ARM的32位库的问题解决方法如下:sudo apt-get install lib32stdc++6sudo apt-get install lib32ncurses5sudo apt-get install lib32z1二、交叉编译工具没有写入环境变量或写错,重新写入环境变量将交叉编译工具 bin 目录添加到系统 PATH 环境变量中:export PATH=$PATH:/opt/fs
2020-07-03 12:49:52 1520
原创 AD18的覆铜技巧
AD18的覆铜技巧设置覆铜的安全距离从工具中选择覆铜管理器设置覆铜的安全距离进入设计-规则·创建一个新的Clearance如下图:从工具中选择覆铜管理器从Create NEW polygon from……中选择Board Outline创建覆铜设置好后点击ok ,Apply即可...
2020-06-27 23:05:30 16140
linux EPIT定时器
2020-11-03
imx6_ad7606.zip
2020-08-06
imx6处理器手册.zip
2020-07-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人