自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 (imx6)LED驱动笔记

编写LED

2020-07-13 16:06:52 257

原创 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定时器

EPIT 的全称是: Enhanced Periodic Interrupt Timer,直译过来就是增强的周期中断定时器,它主要是完成周期性中断定时的。学过 STM32 的话应该知道, STM32 里面的定时器还有很多其它的功能,比如输入捕获、 PWM 输出等等。但是 I.MX6U 的 EPIT 定时器只是完成周期性中断定时的,仅此一项功能!至于输入捕获、 PWM 输出等这些功能, I.MX6U 由其它的外设来完成。EPIT 是一个 32 位定时器,在处理器几乎不用介入的情况下提供精准的定时中断,软件使能以后 EPIT 就会开始运行, EPIT 定时器有如下特点: ①、时钟源可选的 32

2020-11-03

imx6_ad7606.zip

硬件条件: 开发板:imx6dl 系统:linux3.0.15 AD7606是ADI公司的16位同步采样AD芯片,采样率高达200k,主要工作有通过寄存器直接操作io口,使用IO口模拟SPI来读取数据,实现应用层对ad7606的读取! 由于本人能力有限,若程序有重大优化,望告知!

2020-08-06

imx6处理器手册.zip

资源包含imx6处理器的数据手册(第一版本至第三版本)i.MX 6Solo / 6DualLite处理器代表飞思卡尔半导体的最新成就集成多媒体产品 高度的高性能处理功能集成以满足高端需求,需要先进的工业和医疗应用图形丰富且响应迅速的用户界面。适用于(MCIMX6U7CVM08AB、MCIMX6U7CVM08AC、MCIMX6S7CVM08AB、MCIMX6S7CVM08AC)

2020-07-13

MatlabNurbs-master.zip

这是一个在Matlab运行的NURBS曲线工具包,内容包括代码以及一篇NURBS文章,(注释是英文)

2020-05-29

空空如也

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

TA关注的人

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