
嵌入式
文章平均质量分 60
飞飞快跑
是我,没错
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
网络编程的进阶1------------tftp协议
我们在学完网络编程TCP/UDP客户端,服务端之后可能就觉得网络编程差不多就那样了,的确如此,其他知识都从这些基本的知识扩展开来的,我们现在就去学习基于这些扩展的知识---------tftp协议什么是tftp协议?TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议。和使用TCP的文件传输协议(FTP)不同,为了保持简单短小FTP协议在日常生活中我们用的还是比较多的,用来传输大文件,而tf原创 2021-06-21 11:36:40 · 444 阅读 · 1 评论 -
嵌入式面试题汇总 (持续更新)!
1. C语言中,修饰符volatile含义是什么?其应用场合有哪些? volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址(内存)中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储(直接从cache中读取),可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。 2. 关键字volatile有什么含义,并给出几个应用场合。 volatile的本意是“易变的” 由于访问寄原创 2020-11-27 12:31:05 · 1280 阅读 · 0 评论 -
关于tiny4412的重力传感器MMA7600实验以及解析
在tiny4412底板集成了重力传感器mma7600这是一款三轴加速度传感器以及角速度传感器(陀螺仪)linux内核中以及为我们写好了驱动代码,现在我们卸载该驱动然后写一个属于我们自己的mma7600驱动,mma7600该芯片支持的通信协议有很多,目前主流的都是使用IIC协议阅读这篇文章需要有一点的IIC,驱动框架,输入子系统作为知识铺垫我们就不介绍IIC协议的通信原理了,不了解的童鞋可以在优快云上搜索,...原创 2020-09-07 12:51:46 · 351 阅读 · 0 评论 -
驱动开发-----定时器(蜂鸣器)-------------------基于tiny_4412
首先来说一下这个linux中的定时器,这个定时器会在特定的时间去调用特定的函数已达到实现某操作的目的,和我们的定时闹钟差不多下面来说下具体的参数代表的含义:jiffies:全局变量,用来记录自系统启动以来(也就是开发板上电以来)产生的节拍总数。启动时内核将该变量初始化为0;此后每次时钟中断处理程序增加该变量的值。每一秒钟中断次数HZ,jiffies一秒内增加HZ。系统运行时间 = jiffi...原创 2020-04-26 16:37:06 · 840 阅读 · 0 评论 -
构建一个platform总线模型
在此之前我们已经完成了自己创建一个总线并且在里面注册了dev和drv现在我们利用系统已经帮我们创建好的platform总线注册自己的platform_device和platform_driver这个过程其实和上一章的思路差不多在dev中我们要用 platform_device_register(&my_dev);注册到总线中并且实现platform_device结构体的方法st...原创 2020-04-24 00:44:45 · 230 阅读 · 0 评论 -
平台总线Bus介绍 并创建自己的总线bus,dev,drv
arm公司发布的arm坂本从arm9的2440,2410,cortexA8的S5pv210再到A9的4412,其实有些驱动已经做得很好了,没有必要再重复写,我们把以前的驱动继承然后拿过来用就好了,但是现在涉及到一个问题,不同的平台寄存器的地址是不一样的,但是操作是一样的,我们将相同的操作写成一个driver驱动,不同的device中写入不同的资源,这样我们的一个驱动drv就可以去同时适应多个平台的...原创 2020-04-23 20:01:06 · 1720 阅读 · 0 评论 -
驱动开发----中断下半部
中断下半部,什么是中断下半部呢?其实我们之前做的中断都是中断的上半部为什么需要中断下半部呢?原因是当我们在正常运行程序时候,如果与遇到中断会直接停止然后去执行中断程序,如果中断的程序用时很长,那么主程序将被一直阻塞不能执行,所以就需要把中断分成两部分,一个是上部分一个是下部分,上部分完成对全局变量的初始化,并且启动下半部分,而下半部分则执行耗时的操作,放在全局,在后台慢慢执行,不影响主程序。...原创 2020-04-19 18:05:27 · 517 阅读 · 0 评论 -
学嵌入式以来踩到的坑!!!持续更新
1.由于虚拟机所在环境为64位,而交叉编译工具和其他工具大部分是32位的,所以要安装32位的工具sudo apt-get install lib32ncurses52.make menuconfig出现 'make menuconfig' requires the ncurses libraries. sudo apt-get install ncurses-dev 3.make ex...原创 2020-04-18 19:34:45 · 528 阅读 · 0 评论 -
中断处理------文件IO模型 (四)异步通知 基于tiny4412开发板
之前说的几个模型都是主动去监控的,那么这个异步通知就和之前说的不一样,是被动的,当中断发生时候去通知CPU,CPU就会过来做这件事,然后昨晚再跳回去做原来的事...原创 2020-04-18 17:28:46 · 145 阅读 · 0 评论 -
中断处理------文件IO模型 (三)POLL机制 基于tiny4412开发板
使用了阻塞模型,虽然把资源浪费的问题给解决了,但是又出现了新的问题,当我们没有按下按键时候,进程休眠,如果不按下按键,进程就一直休眠一直阻塞在那里,效率很明显就低了所以就引出有一种叫做poll机制的模型...原创 2020-04-18 17:23:34 · 197 阅读 · 0 评论 -
中断处理------文件IO模型 (二)阻塞模型 基于tiny4412开发板
在上一章实现了简单的按键驱动,但是我们通过insmod到内核,按下按键以后,查看CPU资源运行情况,发现就是一个简单的按键驱动竟然用了20%多的资源,tiny4412可是一个4核的cpu!!!为神马会出现这种情况,我们来分析一下并且改进它...原创 2020-04-15 00:15:44 · 168 阅读 · 0 评论 -
中断处理------文件IO模型(一)按键驱动的实现基于tiny4412开发板
按键驱动其实和简单的字符设备驱动一样,只是用特定函数实现特定的功能,下面就来写一个简单的按键驱动。我们将一个普通的字符的设备驱动给拿过来#include <linux/module.h>#include <linux/init.h>ssize_t my_read (struct file *filp, char __user *buffer, size_t cou...原创 2020-04-15 00:02:36 · 210 阅读 · 0 评论 -
如何在网线孔,micro usb坏的情况下写裸机,驱动(逆境学习法)
假如你买到一块开发板,网线孔,micro usb都坏了,那么基本代表着你不能按照视频中的方法下载到开发板,不能进行nfs,tftp,以及minitools的使用。这个时候不要放弃,方法还是有的,只需要一根串口线就可以完成裸机,和驱动的开发。首先是裸机,一般视频是用dnw来下载到开发版的,因为dnw是需要网线孔的,但是现在我们的坏了,这时候有一个神奇的工具叫做kermit....原创 2020-04-01 11:36:34 · 273 阅读 · 0 评论