
itop4412
zxy131072
嵌入式linux
展开
-
033_linux下的I2C驱动_基于设备树
平台介绍硬件环境 1、itop4412精英版 2、自购的一个mpu6050模块软件环境 1、宿主机:mint19.02系统 2、迅为提供的基于设备树的linux4.14.02内核源码,使用的迅为教程中新的linux4.14内核。 3、迅为提供的可以使用设备树的uboot 4、使用4.14内核下编译成功的设备树文件。 5、根文件系统使用busybox制作,系统运行没有问题。...原创 2019-10-20 10:01:45 · 1058 阅读 · 0 评论 -
静态申请字符类设备号
字符设备函数在文件 include/linux/fs.h 中内核提供了三个函数来注册一组字符设备编号,这三个函数分别是– register_chrdev_region()– alloc_chrdev_region()– register_chrdev()register_chrdev_region()是提前知道设备的主次设备号,再去申请设备号。alloc_chrdev_...原创 2018-12-22 20:41:31 · 306 阅读 · 0 评论 -
动态申请字符类设备号
字符设备函数在文件 include/linux/fs.h 中alloc_chrdev_region() 是动态分配主次设备号宏定义MAJOR提取dev_t数据中的主设备号 编写,编译测试源码:#include <linux/init.h>/*包含初始化宏定义的头文件,代码中的module_init和module_exit在此文件中*/#include &...原创 2018-12-22 20:51:48 · 294 阅读 · 0 评论 -
注册字符类设备
分配内存空间函数kmalloc – 分配连续的虚拟地址,用于小内存分配。在include/linux/slab.h文件中。– 参数1:申请的内存大小(最大128K)– 参数2:GFP_KERNEL,代表优先权,内存不够可以延迟分配 清空内存空间的数据函数memset – 可以清空内存空间,也就是全部写为0– 参数1:内存地址– 参数2:0– 参数3:...原创 2018-12-23 14:21:46 · 249 阅读 · 0 评论 -
生成字符类设备节点
函数class_create创建class类文件– 参数1:一般是THIS_MODULE– 参数2:设备名称– 创建一个设备类,用于设备节点文件的创建– 返回一个class结构体变量• class结构体变量– class是设备驱动模型中通用的设备类结构– 在头文件include/linux/device.h的280行 创建设备class函数class_de...原创 2018-12-23 14:31:55 · 216 阅读 · 0 评论 -
字符驱动完善
file_operations中的函数 int (*open) (struct inode *, struct file *)– 打开函数 int (*release) (struct inode *, struct file *)– 释放close函数 long (*unlocked_ioctl) (struct file *, unsigned int, uns...原创 2018-12-23 14:43:57 · 144 阅读 · 0 评论 -
Linux驱动之导出符号表
Linux 2.6的“/proc/kallsyms”文件对应着内核符号表,它记录了符号以及符号所在的内存地址。 模块可以使用如下宏导出符号到内核符号表:EXPORT_SYMBOL(符号名);EXPORT_SYMBOL_GPL(符号名);Module.symvers 存储了导出符号的信息头文件symbol.h源码:#ifndef __SYMBOL_HEAD_H#d...原创 2018-12-23 16:08:19 · 1902 阅读 · 0 评论 -
开发板上使用tftp方式传输文件
一、搭建TFTP服务器1、前提是在服务器端(一般为虚拟机)已经搭建好tftp服务器,并且测试成功,可以使用本地方式先进行测试,具体参考相关的播客。2、目标机(开发板)已经开启tftpd客户端服务。二、目标机下载宿主机下的文件至本地。命令: tftp -g -l dst_file -r src_file hostiptftp -g -l test_arm -r test_arm ...原创 2019-01-08 13:53:04 · 4794 阅读 · 0 评论 -
BusyBox 制作最小文件系统
一、配置busybox 1、拷贝busybox-1.21.1.tar.bz2,解压命令该文件。 2、进入到解压后的文件,使用命令 make menuconfig 配置Busybox。 3、选中Busybox Settings,然后按回车进入到Busybox Settings 界面。在Busybox Settings 配置选项里面需要修改两个地方,第一个是Buil...原创 2019-01-08 16:26:40 · 3403 阅读 · 0 评论 -
讯为4412精英版底板尺寸图
一、该图为讯为提供的底板的尺寸图,使用的是英寸。我把它换算成了mm,这样符合中国人的设计习惯,我也将每一个尺寸在讯为提供的PCB图中实际测量过,均是正确的,没有问题。 二、 在此基础上,我使用AD做了一般底板的框图,尺寸为100*90mm。核心板的位置经过实际测量,与原来的一样,这样将来的核心板可以扣在底板上。...原创 2019-04-09 17:53:17 · 320 阅读 · 0 评论 -
itop4412下搭建NFS挂载文件
1、硬件环境(1)虚拟机为virtual box,ubuntu 18.04(2)开发板为itop4412板子(3)一个路由器 网段为192.168.1.x。ubuntu为宿主机,itop4412为目标机,虚拟机通过桥接方式使用无线网卡连接到路由器,itop4412直接使用网线连接至路由器LAN口。2、宿主机环境搭建(1)安装nfs服务...原创 2019-04-13 07:48:33 · 997 阅读 · 2 评论 -
迅为4412开发板使用TF卡烧写uboot步骤
1、当核心板的uboot 被烧写了错误的文件,导致损坏,需要使用TF卡来烧写uboot。全新的TF 卡并不能直接用于烧写镜像,需要经过分区、烧写uboot 等步骤后才能用于烧写。2、首先确定TF卡是FAT32格式的,如果不是,需要将其格式化成FAT32的,并且需要使用一些第三方工具将隐藏的一些空间格式化,比如做系统的时候,会将其空间缩小一部分,需要将那些空间也格式化。将TF卡放...原创 2019-04-14 09:32:00 · 2894 阅读 · 13 评论 -
修改uboot使之能保存环境变量
说明:此文也是我在别人的基础上修改的,按照这个步骤新做的uboot,但是重新烧写不但没有成功,反而将我的板子搞成了砖,不过后来把砖弄好了,有机会的话还需要进一步研究。1、想要保存环境变量,就要使用saveenv命令。由uboot的命令体系可推测saveenv命令对应的函数是do_saveenv,可以在source insight工程直接搜索此函数。2、找到函数int do_saveen...原创 2019-04-14 09:47:58 · 2840 阅读 · 0 评论 -
itop4412开发板LED与蜂鸣器的寄存器地址
LED#define GPL2CON (*(volatile unsigned long *) 0x11000100)#define GPL2DAT (*(volatile unsigned long *) 0x11000104)#define GPK1CON (*(volatile unsigned long *) 0x...原创 2019-05-25 17:56:06 · 464 阅读 · 0 评论 -
iTOP-4412开发板使用telnet方式登录系统
硬件环境宿主机安装的windows10_64bitsiTOP-4412开发板软件环境4412开发板已经烧写了迅为电子提供的最小系统,并且可以正常登录进系统。设置步骤1、在/etc/init.d/rcS文件中添加如下内容 telnetd &2、宿主机与开发板在同一网段,且有线网卡与无线网卡不在一个网段,非常重要。 因为我的笔记本没有网口了,所以是将开发板通过路由器与主机...原创 2019-05-18 16:48:54 · 608 阅读 · 0 评论 -
arm-2009q3下载地址
arm-2009q3下载地址原创 2019-06-28 14:42:10 · 3514 阅读 · 0 评论 -
驱动模块传参数
传单个参数 头文件在 include/linux/moduleparam.h 内核模块可以通过module_param来传单个参数– module_param(name,type,perm)– name:模块参数的名称– type: 模块参数的数据类型(支持int long short uint ulong ushort类型)– perm: 模块参数的访问权限(S_...原创 2018-12-22 20:09:55 · 268 阅读 · 0 评论 -
GPIOS驱动
1、去掉占用GPIO的驱动去掉占用调用的GPIO驱动,包括leds,buzzer,camera ov5640,WIFI mt6620 VIDEO_OV5640 – Device Drivers– Multimedia support(MEDIA_SUPPORT [=y])– Video capture adapters(VIDEO_CAPTURE_D...原创 2018-12-22 19:52:12 · 1054 阅读 · 0 评论 -
点亮一个LED驱动
LED管脚的调用、赋值以及配置——头文件• Linux中申请GPIO的头文件– include/linux/gpio.h• 三星平台的GPIO配置函数头文件– arch/arm/plat-samsung/include/plat/gpio-cfg.h– 包括三星所有处理器的配置函数• 三星平台EXYNOS系列平台,GPIO配置参数宏定义头文件– arch/arm...原创 2018-12-22 18:37:03 · 267 阅读 · 0 评论 -
讯为iTOP4412烧写最小Linux系统
烧写最小linux系统,需要四个文件:1、u-boot-iTOP-4412.bin 系统引导2、zImage 内核3、ramdisk-uboot.img 根文件系统4、system.img 最小linux系统 烧写步骤:使用fastboo...原创 2018-12-01 11:43:27 · 2745 阅读 · 22 评论 -
讯为4412使用U盘方式运行应用程序
在UBUNTU下已经编写了一个源文件,里面内容如下:#include<stdio.h>int main(int argc, const char *argv[]){ printf("hello world!\n"); return 0;} 编写Makefile: CC=/home/skyfall/qt/arm-2014.05/bin/arm-no...原创 2018-12-01 16:42:03 · 531 阅读 · 0 评论 -
讯为4412使用SD卡方式运行应用程序
在UBUNTU下已经编写了一个源文件,里面内容如下:#include<stdio.h>int main(int argc, const char *argv[]){ printf("hello world!\n"); return 0;} 编写Makefile: CC=/home/skyfall/qt/arm-2014.05/bin/arm-no...原创 2018-12-01 16:55:09 · 500 阅读 · 0 评论 -
tftp服务器的搭建和测试
tftp服务器的搭建: 输入命令: sudo aptitude install tftp tftpd,安装 tftp 和 tftpd。 sudo aptitude install tftp-hpa tftpd-hpa,安装tftp-hpa和tftdp-hpa。 更改tftpd-hpa的配置文件,在/etc/default/tftpd-hpa下,如下图:建立 ...原创 2018-12-01 18:46:44 · 1222 阅读 · 0 评论 -
NFS网络文件系统的搭建
sudo aptitudeinstall nfs-kernel-server新建一个NFS挂载目录,该目录用于共享NFS下的目录,我的建立在家目录下的nfs目录下。修改其权限,保证所有者都可以读写、可以执行。chmod 777 -R /home/skyfall/nfs/修改配置文件,修改/etc/erports文件,在其最下面加入如下内容:其中前面的目录是挂载...原创 2018-12-01 19:41:15 · 222 阅读 · 0 评论 -
讯为4412蜂鸣器驱动实现
最近在搞讯为开发板的驱动,终于将讯为的蜂鸣器驱动搞定,现在进行一个总结。编写流程:(1)分析硬件原理图 要控制beep ----> gpd0_0 --->输出高:响;输出低:不响。 (2)分析该硬件所需配置的寄存器 物理地址: c...原创 2018-12-05 23:05:29 · 1640 阅读 · 0 评论 -
解决编译内核时“ Error: selected processor does not support ARM mode 'smc 0'”相关问题
最近在用arm-2014.05编译器编译Linux内核时,出现如下问题: Error: selected processor does not support ARM mode 'smc 0' 这是我使用的交叉编译器: 解决步骤:(1)arch/arm/mach-exynos/include/mach/smc.h文件: 在第54行...原创 2018-12-13 14:14:53 · 7967 阅读 · 2 评论 -
menuconfig Kconfig .config Makefile文件分析
Linux编译器通过.config文件确认哪些代码编译进内核,哪些被裁减掉。 menuconfig是生成.config的一个工具,menuconfig实现的代码在源码的scripts目录下。 Makefile用来定义哪些内容作为模块编译,哪些进行条件编译。子目录Makefile被顶层Makefile包含,这样层层调用,最终完成编译。 Kconf...原创 2018-12-16 16:20:05 · 245 阅读 · 0 评论 -
注册设备驱动总结
本总结图片来自于讯为提供的图片!原创 2018-12-16 16:22:45 · 196 阅读 · 0 评论 -
exynos_4412驱动之注册设备
exynos_4412驱动之注册设备: 打开源码目录下的配置平台相关文件,vim arch/arm/mach-exynos/mach-itop4412.c,在里面添加如下内容:#ifdef CONFIG_HELLO_CTLstruct platform_device s3c_device_hello_ctl = {.name = "hello",.id = -1,};...原创 2018-12-17 15:51:54 · 218 阅读 · 0 评论 -
驱动注册
platform_driver_register 函数和platform_driver_unregister 函数用于注册和卸载驱动。在Linux 源码目录下,打开如下位置文件可以查看到: vim include/linux/platform_device.h 注册驱动的函数:extern int platform_driver_register(struct platf...原创 2018-12-17 17:08:40 · 305 阅读 · 0 评论 -
exynos_4412驱动之驱动注册
驱动注册platform_driver_register 函数和platform_driver_unregister 函数用于注册和卸载驱动。在Linux 源码目录下,打开如下位置文件可以查看到: vim include/linux/platform_device.h 注册驱动的函数:extern int platform_driver_register(struct...原创 2018-12-22 16:38:01 · 276 阅读 · 0 评论 -
生成设备节点
杂项设备的主设备号是10,在任何Linux 系统中它都是固定的。这样杂项设备的引入即解决了设备号数量少的问题,又降低了使用难度,还能防止碎片化,一举多得。 杂项设备的头文件在“include/linux/miscdevice.h” extern int misc_register(struct miscdevice * misc);...原创 2018-12-22 17:08:21 · 853 阅读 · 2 评论 -
调用hello_ctl123设备节点
调用的函数– open函数是返回文件描述符– ioctl函数是应用向驱动传值– close函数是关闭打开的文件 • 编写应用程序的代码,编译 #include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include...原创 2018-12-22 17:38:30 · 326 阅读 · 0 评论 -
GPIO的初始化
在内核源码目录下 ls drivers/gpio/*.o, 可以看到“gpioexynos4”被编译进了内核 – 生成.o文件代表最终被编译进了内核 – 除了menuconfig配置文件,还可以通过.o文件来判定该文件是否编译进了内核 在 gpio-exynos4.c 文件最下面一行 – core_initcall(exynos4_gpiolib_ini...原创 2018-12-22 18:10:44 · 7133 阅读 · 0 评论 -
网络速度测试
Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多快的速度接收数据。 ...原创 2018-12-02 15:02:38 · 4396 阅读 · 0 评论