![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式Linux
文章平均质量分 56
流岚虹霓
擅长嵌入式Linux
展开
-
嵌入式Linux基本开发环境搭建
#! /bin/bash#-----------------------------------------------------------------------------------#Author: Qyzhu#Date:2020/11/28#EVersion:V0.1#Function: Modify software source# Install build-essential# vsftpd# o...原创 2020-11-28 14:23:38 · 315 阅读 · 0 评论 -
不带缓存I/O和标准I/O(带缓存)之间的区别
先来看看不带缓存的I/O和标准(带缓存的)I/O都有那些不带缓存的I/O: read,write,open......标准(带缓存的)I/O: fgets,fread,fwrite.....这里使用两个对应的函数进行比较:ssize_t write(int filedes, const void *buff, size_t nbytes)size_t fwrite(cons...转载 2018-11-18 17:45:08 · 1126 阅读 · 3 评论 -
摄像头驱动框架(v4l2)详细分析
在分析v4l2(video for linux 2.0)框架之前,我们需先了解驱动程序分层的概念。 所谓分层,其实是利用了面向对象的思想---继承,我们知道,子类继承父类,并且对于父类提供的资源,合则用,不合则改(重载)。对于某一类驱动程序,内核把这一类驱动相同的部分提取出来单独作为一层,这一层称为核心层,它向应用层提供这一类驱动程序的统一接口。而这一类驱...原创 2018-12-18 23:13:47 · 2521 阅读 · 0 评论 -
I2C总线设备驱动框架
编写I2C驱动程序,我们可以参考 \linux-3.4.2\Documentation\i2c 中的一些文档(1)大致框架app: open read write-----------------------------------------------------------------------设备驱动层:知道数据的含义xxx_read() xxx_write(...原创 2019-02-27 11:37:54 · 192 阅读 · 0 评论 -
spi总线设备驱动模型详解(Linux3.4)
(一)spi总线设备驱动框架: app: open() read() write() ------------------------------------------------------------------ 系统调用 ---------------------...原创 2019-04-01 11:54:38 · 1458 阅读 · 1 评论 -
Ubuntu16.04安装gcc-3.4
第一步:下载所需gcc安装包(.deb格式)手动:老版本gcc下载地址:http://old-releases.ubuntu.com/ubuntu/pool/universe/g/;http://archive.ubuntu.com/ubuntu/pool/universe/g/自动:wgethttp://old-releases.ubuntu.com/ubunt...转载 2019-06-01 09:56:09 · 6623 阅读 · 2 评论 -
Input子系统详解-基于Linux2.6.22内核
(1)输入子系统框架Input子系统框架app: open() read() write()---------------------------------------------内核: xxx_drv的 fos 结构体里面的 xxx_open() xxx_write xxx_write-----------------------------...原创 2019-06-06 12:14:30 · 263 阅读 · 0 评论 -
(1)电源管理-S3C2440芯片电源管理模块解析
(1)电源模块解析 电源管理块通过软件控制系统时钟,以降低S3C2440的功耗。这些方案涉及锁相环、时钟控制逻辑(FCLK、HCLK和PCLK)和唤醒信号。图1显示了S3C2440A的时钟分布。 图...原创 2019-06-01 16:46:17 · 4291 阅读 · 0 评论 -
Nand Flash驱动程序编写(linux 3.4.2内核)
参考文件 drivers\mtd\nand\s3c2410.c(当内核启动时,会打印相关nand的信息,搜索相关打印信息,找到这个文件) 内核提供的nand flash 驱动例子,从这个例子中我们可以总结出nand flash 的框架,进而总结出如何写一个nand_flash驱动程序。(1)内核源代码中支持s3c开发板的nand flash 驱动程序分析。s3c2410...原创 2019-07-02 21:56:50 · 351 阅读 · 0 评论 -
sysfs和proc文件系统解析
(1)sysfs 1.1)Linux设备驱动模型中的总线、驱动和设备都可以在sysfs文件系统中找到对应的节点。当内核检测到在系统中出现了新设备后,内核会在sysfs文件系统中生成一项新的记录它会产生一个包括所有系统硬件的层级视图。 1.2)把连接在系统上的设备和总线组织成一个分级的文件,他们可以由用户空间存取,向用户空间导出内核数据结构以及它们的属性。sys文件系...原创 2019-07-02 22:01:52 · 1913 阅读 · 1 评论 -
JZ2440开发板移植Qtopia2.2.0
参考文献: 《嵌入式Linux应用开发》韦东山编著 http://emb.hqyj.com/column/column97.htm(1)移植环境: 环境:ubuntu9.10 gcc: 4.4.1 arm-linux-gcc: 3.4.5(2)移植Qtopia依赖的库 ① 编译、安装j...原创 2019-07-12 15:44:53 · 470 阅读 · 0 评论 -
虚拟机下Ubuntu16.04桥接模式不能上网问题解决
桥接模式老是无法上网,查看本机IP发现被分配了一个私网地址,猜测应该是虚拟DHCP服务器没有打开,于是查看Ubuntu的网络配置: /etc/network/interfaces发现没有dhcp配置的信息,只有loopback:手动添加:# The primary network interfaceauto ens33iface ens33 inet dhcp(在添加之前先...转载 2018-10-27 17:04:35 · 7488 阅读 · 1 评论 -
输入子系统框架详解
输入子系统框架详解(1)为什么要使用输入子系统框架 我们在刚开始学习字符设备驱动程序的编写时,都会用到这样一个框架: 首先分配一个主设备号( alloc_chrdev_region(),推荐用这个函数 ),接着填充file_opreation 结构体(这是字符设备驱动程序编写的关键点),再接着在入口函数里面调用字符设备注册函数等,最后编写出口函数,不要忘记修饰入口...原创 2018-09-16 13:59:19 · 847 阅读 · 0 评论 -
S3C2440芯片时钟配置
S3C2440A芯片中的时钟控制逻辑可以生成所需的时钟信号,包括用于CPU的FCLK、AHB (Advanced High-performance Bus) 总线外围设备的HCLK,以及APB (Advanced Peripheral Bus)总线外围设备的PCLK。S3C2440A有两个相锁循环(PLLs):一个用于FCLK、HCLK和PCLK,另一个用于USB块(48 Mhz)...原创 2018-06-09 15:19:35 · 1354 阅读 · 0 评论 -
用串口实现简单的printf函数
在VC6中,打开printf函数的源代码,发现这个函数的代码量无比巨大,闲来无事,自己用C写了一个简单的printf函数,只实现了VC库中printf函数的部分简单功能,贴出自己写的代码只为抛砖引玉,娱人娱己,仅此而已! printf.h 头文件#ifndef _prinrf_h#define _printf_h#include "uart.h"typedef char ...原创 2018-06-16 17:12:39 · 7514 阅读 · 0 评论 -
s3c2440芯片串口操作
S3C2440A通用异步接收器和发射机(UART)提供了三个独立的异步串行输入/输出(SIO)端口,每个端口都可以在中断或基于dma的模式下运行。换句话说,UART可以生成一个中断或DMA请求来在CPU和UART之间传输数据。UART可以使用系统时钟,支持波特率高达921.6 Kbps。如果外部设备提供UEXTCLK,那么UART可以以更高的速度运行。每个UART通道包含两个64字节...原创 2018-06-10 15:23:49 · 848 阅读 · 0 评论 -
Nor Flash的一般操作(通用)
Nor Flash具有其独特的数据保护机制,它可以像内存一样读,但是它不可以像内存一样写,这就会导致我们在向Nor Flash中写数据时会稍显麻烦。这篇文章介绍Nor Flash 的一般操作,适合大多数的Nor Flash芯片,笔者使用的芯片是MX29LV160D T/B,容量为2MB。 拿到一款Nor Flash芯片,我们首先简明扼要的浏览数据手册上芯片的特性(FEATURES...原创 2018-07-24 11:58:28 · 15175 阅读 · 0 评论 -
ARM指令集详解
ARM指令集详解1. 汇编1.1. 通用寄存器 通用寄存器37个寄存器,31个通用寄存器,6个状态寄存器,R13堆栈指针sp,R14返回指针,R15为PC指针, cpsr_c代表的是这32位中的低8位,也就是控制位CPSR有4个8位区域:标志域(F)、状态域(S)、扩展域(X)、控制域(C)MSR - Load specified fields of...转载 2018-07-18 23:48:27 · 48948 阅读 · 4 评论 -
深入理解nandflash基本特性
nandflash作为嵌入式中的”磁盘”, 被广泛的应用, 以(K9F2G08U0B)为例,其他型号都差不多nandflash的结构 nandflash的结构有页(page), block(块)的概念,其中页是真实概念,而块儿是虚拟概念(目的是为了更好的管理存储空间) page: 一个page大小为2K + 64bytes, 如上图所示,其中的64bytes是所在页的infomatio...转载 2018-07-25 11:44:54 · 1001 阅读 · 0 评论 -
代码重定位解析
一 代码的组成程序至少包含:代码段+数据段代码段:.text数据段:.data一般存储全局变量,初值不为0的经过初始化的全局变量 如:char g_char ='A'; //初值为A的字符型全局变量只读数据段:.rodataconst的全局变量,只读数据段.bss:初值为0,或者没有初值的全局变量,不保存在bin文件中 如:int g_A =0; ...原创 2018-07-15 18:04:59 · 3099 阅读 · 1 评论 -
三步搞定32位芯片中断程序的编写
(1)初始化 1.1 设置中断源,让它能够发出中断信号。 1.2 设置中断控制器,让它能够把中断信号传递给CPU,一般是设置中断屏蔽寄存器,中断优先级控制寄存器。 1.3 设置CPU,使之能够接受中断,即开系统中断。 (2)处理中断 2.1 在启动文件中,设置相应中断的堆栈指针,接着保护现场,执行入栈操作 2.2 在启动文...原创 2018-07-21 17:43:28 · 666 阅读 · 0 评论 -
Makefile 使用总结
1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力.非常感谢 gung...转载 2018-08-27 18:51:39 · 266 阅读 · 0 评论 -
Linux设备驱动之poll机制
应用程序调用的任何库函数,最终将会调被库函数封装的系统函数 ,此过程中发生swi中断,用户进程从用户状态变成了核心态,当我们的应用程序调用pool() 函数时,最终调用的是 sys_poll() 函数。 sys_poll()的函数原型如下: asmlinkage long sys_poll(struct pollfd __user *ufds, uns...原创 2018-09-08 19:02:28 · 369 阅读 · 0 评论 -
Ubuntu下VI编辑器命令总结
vi编辑器有三种模式1)命令行模式(光标移动、复制、粘贴、删除)(command mode)2)插入模式(编辑文本) (insert mode)3)底行模式(查找和替换) (last line mode)注意:1)当不知道处于何种模式时,按ESC键返回到命令行模式。2...原创 2018-06-05 10:51:49 · 9211 阅读 · 0 评论