![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GEC6818
粤嵌6818的开发版,用这个回顾
鸭鸭打瞌睡
这个作者很懒,什么都没留下…
展开
-
usb分层解析
随便插入一台手机提示这个是android设备,请您安装驱动程序1.既然没有安装驱动程序,为何是android设备?因为windos有了usb总线驱动程序,接入usb设备后,从usb总线驱动程序中知道是一个 “android phone”提示安装的"设备驱动程序",而不是usb总线驱动程序usb总线驱动负责识别:usb设备,给插入的usb找到对应的驱动程序2.usb种类这么多,为什么插入电脑就知道是 androidpc和usb都会有一些规范 : 这样usb总线驱动会发出某些命令获取设备信息(原创 2022-02-11 15:49:59 · 430 阅读 · 0 评论 -
(一)互联智能车载终端系统,介绍,构思,搭建
最近打某高校挑战杯后面所有用到的都会分文章讲解做嵌入式组的题目,需要做一个互联智能车载终端系统带有:1.通过触摸屏查看油位,水温,车速以及控制车速2.通过触摸屏播放从sd卡当中的音乐,可以有多种循环得方式(单曲,列表,随机播放),同时还可以查看歌曲的各种信息包括进度条3.通过语音识别,智能的控制各种外设工作4.同时还可以通过网页端和安卓端控制硬件(兼容人不在车内的情况,想查看车的各种数据并且能控制的效果)成品图进行构思硬件6818开发板,led,滑动变阻器,继电器,温湿度传感器,声原创 2020-12-30 15:55:28 · 2292 阅读 · 0 评论 -
arm板上通过内核实现可滑动的电子相册
通过内核打开驱动,编写的应用能通过触摸控制相册上一张下一张我们实现这个功能就要分为:1,使用 LCD 设备,2链表3,获取触摸操作 这三小部分使用LCD准备LCD我们使用内核的LCD结构体 fb_var_screeninfo ,构造出我们的LCD// 准备好 LCD 设备 struct fb_var_screeninfo vinfo; bzero(&vinfo, sizeof(vinfo)); char *fbmem = init_lcd(&vinfo);...原创 2020-11-29 14:32:02 · 2891 阅读 · 0 评论 -
6818进行mjpg_stream移植,开发板连接摄像头传递到服务器
想对s5p6818进行摄像头(支持uvc)进行使用,把得到的视频放入web端嫌烦直接拿我的用就好啦我做好的mjpg_stream网上的移植过程很多,但是发现源码失效了,而且用最新的源码进行编译,有些地方也会出错所以我们来参考一下这篇文章参考文章配置内核,支持usb这个应该可以不用了,越新的开发板,基本内核里面都自动包含了jpeg库的移植按照参考文章这样写是没问题的划重点 移植mjpg-streamer最新的下载下载下面这个文件,里面有makefile,而不是cmake的这个把这个文原创 2020-11-17 15:11:57 · 1442 阅读 · 2 评论 -
6818重新编译boot.img,对占用gpio做解除
之前insmod驱动 发现已经busy了,好像卸载干净了,还是这样所以只能从内核入手,重新编译内核,更改驱动编译内核进入源码包先在这里执行一次mk增加环境export PATH=./GEC6818uboot/tools:$PATH 进入我们的kernelcp ./gec6818_linux_config .configmake menuconfig退出保存make -j4 ARCH=arm CROSS_COMPILE=../prebuilts/gcc/linux-x原创 2020-10-23 10:29:49 · 662 阅读 · 2 评论 -
反汇编arm的.so库,查看源码,嵌入式工程师学习IDA (教程)
最近写摄像头,有些函数封装在库里函数看不见,只有头文件,我们作为嵌入式工程师,不看源码,只看头文件,知道怎么调用是不行的所以我们今天用IDA pro 进行反汇编(术语不太准确,应该是把汇编代码,变成我们能看的C代码)引入IDA pro开发ARM要用到,附带ARM汇编的IDA 版本不能出错IDA下载下载下面的版本破解教程吾爱大神写的很好了,照着安装就行用这个来进行我们 arm库的查看查看.so库很多时候,只提供.so库,和.h文件,进行函数调用和说明所以我们可以自行建立一个 .c文原创 2020-09-23 14:30:30 · 2168 阅读 · 0 评论 -
(二)arm里使用mmap--->虚拟地址映射:编写驱动和应用共享内存
很多时候我们驱动和应用要共享一段存储空间我个人理解是,copy_to_user 只是用来传递数据,当应用需要实时读取数据时,就要共享内存了编写驱动驱动程序要做的事情有 3 点:① 确定物理地址② 确定属性:是否使用 cache、buffer③ 建立映射关系在file_operation里面建立mmap进行mmap的函数编写这样在驱动程序的内存空间就被建立了映射,用应用程序访问读取,都行应用程序编写打开驱动的文件进行buf的读取应用程序里mmap共享属性分析设立私有属性为原创 2020-08-22 21:18:55 · 885 阅读 · 0 评论 -
(一)arm里使用mmap--->虚拟地址映射:探究虚拟内存
cpu操作的内存和实际内存不相同cpu得到的是mmu分配的虚拟地址,而嵌入式操作的硬件一般都是实际的想操作物理地址–>寄存器,frameniffer所以我们要得到 物理地址,虚拟地址,完成映射1 虚拟地址: get vaddr —>内核帮做了2 物理地址: get paddr —>我们自己坐3 完成映射: map vaddr --> paddr应用程序占据的地址空间把我们的程序经过静态编译,和动态编译得到两个运行程序得到这个程序的进程号ps再查看这原创 2020-08-20 16:15:49 · 528 阅读 · 0 评论 -
arm里中断引进tasklet处理复杂工作
在中断里引进tasklet表示的为中断分为上下两个部分,上部分处理必要处理的中断部分,要求的是快速处理完毕,下半部分处理一些时间久,需要等待的事情这时候我们引进tasklet ,用来处理下半部分中断处理有两个原则1.不能嵌套,2.越快越好。在处理当前中断时,即使发生了其他中断,其他中断也不会得到处理,所以中断的处理要越快越好。但是某些中断要做的事情稍微耗时,这时可以把中断拆分为上半部、下半部。在上半部处理紧急的事情,在上半部的处理过程中,中断是被禁止的;在下半部处理耗时的事情,在下半部的处原创 2020-08-18 23:40:28 · 159 阅读 · 0 评论 -
arm里使用定时器
定时器可以在中断里处理抖动比如按键中断里,按键参数会进行跳变,所以要等待数值的稳定时候,才进行上报我们可以把数值设置的大一点,模仿机械跳变,这样就可以看得出来,定时器真的被使用了驱动编写给每个按键提供定时器在结构体里放入定时器初始化定时器1.给每个定时器设置,触发函数,并且为出发的函数提供数据setup_timer(&buttons[i].timer, x6818_buttons_timer,(unsigned long)&buttons[i]);2. 设置第一次的定时原创 2020-08-18 00:38:09 · 1522 阅读 · 0 评论 -
arm里使用工作队列
工作队列和的定时器、下半部 tasklet效果差不多,但是用于处理花掉的时间更久的事情因为定时器、下半部 tasklet,它们都是在中断上下文中执行,它们无法休眠。如果使用线程来处理这些耗时的工作,那就可以解决系统卡顿的问题:因为线程可以休眠—>工作队列驱动编写内核线程、工作队列(workqueue)都由内核创建了,我们只是使用。怎么在驱动中使用工作队列呢?1.构造工作队列的结构体在这里我们用原来的按键驱动改写工作队列所以为每一个按键分配一个工作队列的结构体2.给工作队列里面注册进原创 2020-08-14 16:54:40 · 231 阅读 · 0 评论 -
arm自作室内人群检测驱动,人流进出检测驱动+应用
人群检测,人流进出构思想在门口只做一个检测人流量的多少,和监控室内进出人群就用一个人体红外感应器来触发中断,用两个红外传感器来判断人是进入还是出去(不用光敏电阻,不够灵敏)大概就是这样检测,因为人体红外的广域检测,红外传感是直线的,所以人体红外来触发中断构思示意图连线示意图代码上手...原创 2020-08-11 10:47:42 · 535 阅读 · 1 评论 -
arm温湿度传感器(二)修改app和驱动
根据上一篇可以在内核里增加自己的驱动这次我们让程序跑起来app可以从驱动中提取出自己想要的值发现传感器在arm上 有明显抖动所以读取数值之前,大约要进行15次的数据读取,才能得到正常的数据测试结果最后app得到的数据已经稳定代码second_drv.c#include<linux/module.h>#include <linux/sched.h>#include <linux/delay.h>#include <linux/platfor原创 2020-08-01 11:50:17 · 457 阅读 · 0 评论 -
arm里编写光敏电阻模块的驱动和应用
把stm32的光敏模块移植到arm上使用的是s5p6818的开发板先找电路的连接对应的就是gpioB29 我们把光敏模块经行连接驱动应用编写second_drv.c#include<linux/module.h>#include <linux/sched.h>#include <linux/delay.h>#include <linux/platform_device.h>#include <asm/mach-types.h&g原创 2020-07-31 17:37:34 · 406 阅读 · 0 评论 -
arm温湿度传感器(一)在内核中增加新的驱动
想对我的板子原创 2020-07-11 00:53:00 · 836 阅读 · 1 评论 -
buildroot三分钟入门,修改文件,对内核进行编译
之前编写驱动都是自己单独编译内核,看完粤嵌GEC6818的文档傻眼了,用的是buildroot,好像和别人的buildroot还不一样一般来说应该是先进入build rootmake helpmake linux-menuconfig 就和以前一样可以进行 menuconfig想给内核去掉一个驱动找到编译脚本,对命令进行查看进入6818的源码包没有那个选项,只能去看shell脚本,看是怎么进行编译的解压完后,有个可执行的mk文件 ,好就是他了在里面找到内核编译的脚本export原创 2020-06-23 15:46:45 · 2949 阅读 · 2 评论 -
S5P6818电子数码相框(一) 中文和英文汉字点阵实现
先实现在LCD上面的中文,英文显示一个单纯的应用软件#include <sys/mman.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <linux/fb.h>#include <fcntl.h>#include <stdio.h>#include <string.h>#define FONT原创 2020-05-25 09:46:49 · 712 阅读 · 0 评论 -
GEC6818,s5p6818 第一个裸机程序(烧写为重)led和蜂鸣器 tftp和nfs传输
开发环境粤嵌的GEC6818ubuntu:16gcc version 4.5.1 (ctng-1.8.1-FA)在测试中发现在 start.S (用来启动关看门够狗,设置寄存器建立链接,再跳转到main.c)之前还有一步让sd卡和板子适配这样裸机才能在开发板上跑,所以这里使用网络tftp传递我们的裸机程序所以这篇文章分析的程序分析小意思点灯上图中,开发板上电后,无需按任何按键,VCC3P3_SYS 会产生 3.3V 的电压,其中D26 无需 GPIO 控制,为常亮状态,即我们所说的电原创 2020-05-22 19:20:37 · 4347 阅读 · 1 评论