嵌入式ARM
文章平均质量分 93
ora___
这个作者很懒,什么都没留下…
展开
-
hello world驱动设计(x86)
1. 这个驱动有啥不同 最近发现很多教程,上来就是往写led驱动,对于新手我来说,理解起来是十分费劲的,因为一个led的驱动涉及到许多的知识,加之写led驱动还需要开发板,这就受不了了,哪来那么多钱!所以最近在复习驱动设计时看到了陈莉君老师的视频教程Linux内核分析与应用[1],看到了一种更适合作为驱动设计Hello world的写法,因此有了这篇博文。事不宜迟主要介绍一下这个驱动设计有啥不同:不需要硬件操原创 2020-05-26 17:37:08 · 515 阅读 · 0 评论 -
Linux驱动简介及分类
1. Linux驱动简介在介绍Linux驱动之前,我们首先来看Linux系统分层关系:图1-1Linux系统分层关系Linux驱动主要具有如下几点作用:系统调用是应用程序和内核之间的接口,驱动程序是内核和硬件之间的接口; 驱动程序接受上层软件(应用程序、内核)的请求,完成对硬件的操作,屏蔽了硬件的细节; 驱动程序将硬件设备抽象成一个文件,应用程序操作文件即操作硬件,符合L...原创 2019-12-16 16:01:35 · 3296 阅读 · 0 评论 -
ioctl系统调用过程(深入Linux(ARM)内核源码)
1. 系统调用过程简述图1-1 系统调用过程图探究系统调用过程,以ioctl为例,通俗来说,其实就是探究操作系统实现应用程序的ioctl对应上特定驱动程序的ioctl的过程。由于应用程序的ioctl处于用户空间,驱动程序的ioctl处于内核空间,所以这两者之间不属于简单的函数调用关系;在者,考虑到内核空间操作的安全性,系统调用过程大量的安全性处理,进而使得系统调用看起来十分复杂,但是了解...原创 2019-12-13 16:27:11 · 7795 阅读 · 8 评论 -
Linux编程----动态库、静态库
1. 库是什么库(library),在计算机软件领域应该十分常见,从专业术语的角度来看,库是具有某种特定功能的封装好的模块。通俗来说,库是一堆函数的集合。那么为什么需要库呢?其实这是非常容易理解的,库的作用和函数的功能都是相似的,都是为了封装好功能模块,以便于代码重用,避免重复造轮子,而库和单纯的函数是有区别的,库属于文件,函数属于代码!举一个例子,在hello.c文件中,使用 abs()...原创 2019-12-08 22:07:42 · 380 阅读 · 0 评论 -
Linux根文件系统子目录功能讲解
1、/bin目录看到“bin”大家应该能想到bin文件,bin文件就是可执行文件。所以此目录下存放着系统需要的可执行文件,一般都是一些命令,比如ls、mv等命令。此目录下的命令所有的客户都可以使用。2、/dev目录dev是device的缩写,所以此目录下的文件都是和设备有关的,此目录下的文件都是设备文件。在Linux下一切皆文件,即使是硬件设备,也是以文件的形式存在的,比如/de...转载 2019-11-22 11:34:45 · 417 阅读 · 0 评论 -
嵌入式ARM板程序的生成器 ---- 交叉编译器
1. 什么是编译器以及交叉编译器对于C语言程序,编译器是啥?通俗的来讲编译器就是把C程序“翻译”机器语言(二进制)的“翻译官”,那么编译器和交叉编译器有什么区别?下面通过一张图感受一下:图1-1 编译器和交叉编译器对比图通过上面图我们可以很直观的看到使用编译器和交叉编译器去编译和执行程序大致流程是大同小异的,只不过交叉编译器的可执行程序需要从X86(PC)平台传送到ARM板平台提供用...原创 2019-11-20 10:51:36 · 996 阅读 · 0 评论 -
安装嵌入式ARM板的监视器 ---- minicom
0. minicom是啥minicom是一个串口通信工具,就像Windows下的超级终端。嵌入式板通常不会配置调试的屏幕,开发人员可以通过串口通行工具来输出内核打印的信息以及输入操作命令,在Windows环境下下,有 SecureCRT 和 xShell;在Linux环境小,可以使用minicom,安装使用十分方便,功能也足够强大!话不多说,我们接下来在Ubuntu环境下安装、配置、使用和卸...原创 2019-11-14 14:59:17 · 535 阅读 · 0 评论 -
C语言volatile关键字详解
1.volatile和什么有关百度翻译是这样子翻译volatile的: 图1-1 百度翻译volatile截图volatile属于C语言的关键字,《C Primer Puls》 是这样解释关键字的:关键字是C语言的词汇,由于编译器...原创 2019-11-03 21:33:19 · 28329 阅读 · 12 评论 -
编译器优化对多线程数据同步的影响(volatile详解实验二)
首先,这里没有博主的傻逼!由此可见(C语言volatile关键字详解),编译器优化会对多线程数据同步有影响,我们深入程序输出以及汇编程序去探讨为什么会产生影响!并解决问题1.上代码:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h&...原创 2019-11-03 16:43:48 · 2494 阅读 · 1 评论 -
编译器优化对自定义延时程序的影响(volatile详解实验一)
由此可见(C语言volatile关键字详解),编译器优化会对自定义延时程序有影响,我们深入汇编程序去探讨产生怎样的影响!首先是未加 volatie 使用和未使用编译器优化汇编程序的对比:有以下这么一个源程序(delay.c):#include <stdio.h>void delay(long val);int main(){ delay(100000...原创 2019-11-01 15:57:30 · 4088 阅读 · 1 评论 -
嵌入式系统框架----软件篇
1.overview 图1-1 嵌入式框架图嵌入式系统分为硬件以及软件两大部分,大多数人参与的是嵌入式软件设计,更多的是接触的是上层软件系统部分,可以分为两大类型嵌入式软件应用工程师以及嵌入式驱动工程师。前者主要负...原创 2019-10-30 11:43:18 · 7322 阅读 · 0 评论 -
嵌入式系统框架----硬件篇
1.系统框架图对于一个嵌入式系统,最重要的当然是运算以及存储单元,基本的嵌入式系统可以简化成如下系统框架图: 图1.1 系统框架图对于一个嵌入式系统,我们从常见的嵌入式ARM板进行分析:(从淘宝上截取了一张最多人用...原创 2019-10-28 09:40:06 · 2612 阅读 · 0 评论