选择特殊符号
选择搜索类型
请输入搜索
《嵌入式Linux开发技术及实践》是2015年西安电子科技大学出版社出版的图书,作者是青岛东合信息技术有限公司。
买arm11内核的吧,6410芯片,听说arm9要停产了。 ———答案来自希赛教育Linux...
无所不在的嵌入式系统 多年前,比尔.盖茨曾经预言,随着后PC时代的到来,PC将无处不在。今天,伴随着二十一世纪的曙光,嵌入式系统和3G移动互联网的迅猛发展正验证了比尔.盖茨的预言,人类正迎来一个充满希...
无所不在的嵌入式系统多年前,比尔.盖茨曾经预言,随着后PC时代的到来,PC将无处不在。今天,伴随着二十一世纪的曙光,嵌入式系统和3G移动互联网的迅猛发展正验证了比尔.盖茨的预言,人类正迎来一个充满希望...
嵌入式linux的LED实验
嵌入式linux的LED实验
基于嵌入式Linux的LED驱动开发与应用
简要介绍了基于嵌入式ARM处理器芯片LPC3250的嵌入式Linux的LED驱动程序的开发原理、流程以及相关主要接口硬件电路的设计。实际运行结果表明,该设计完全达到预期效果。
嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,大概分3个阶段:
1、嵌入式Linux上层应用,包括QT的GUI开发
2、嵌入式Linux系统开发
3、嵌入式Linux驱动
Linux是开源免费的,而且其源代码是开放的,更加适合学习嵌入式。
(1) C语言是所有编程语言中的强者,因此必须非常熟练的掌握。
(2)Linux操作系统就是用C语言编写的,所以也应该先学习下Linux方面的编程,只有会应用了,才能近一步去了解其内核的精髓。
(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。
(6) 驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
以上是大概的框架,
推荐学习平台:
iTOP-4412开发板涵盖嵌入式技术热点,支持linux,android,QT,Ubuntu系统
核心板参数
尺寸:50mm*60mm
高度:连同连接器在内0.26cm
CPU:Exynos4412,四核Cortex-A9,主频为1.4GHz-1.6GHz
内存:1GB 双通道 DDR3(2GB 可选)
存储4GB EMMC(16GB 可选)
电源管理:低功耗动态三星S5M8767电源管理,最优架构!
工作电压:2.65V--5.5V (推荐4.0V)
系统支持:Linux-QT/Android4.2/Ubuntu操作系统
USB HOST:板载USB3503,引出高性能HSIC,实现2路USB HOST输出
引角扩展:引出脚多达320个,满足用户各类扩展需求
运行温度:-25度至+80度区间,设备工作正常,运行良好!
底板参数
尺寸:110mm*190mm
SWITCH:电源接口
RESET:1个复位按键
POWER:电直流电源输入接口,5V/2A电源输入
TF Card:1个标准TF卡接口
USB Host:2路USB Host,支持USB2.0协议
USB OTG:1路USB OTG 2.0
以太网口:10M/100M自适应网口
PHONE:支持耳机输出
MIC:支持MIC输入
串口:2路串口
A/D:1路
User Key:5个功能按键
DIP SWITCH:1个
GPIO:20PIN(电源和地)
CAMERA接口:1个(可支持200万和500万摄像头)
WIFI接口:1个
HDMI接口:标准HDMI v1.4,1080p高清分辨率输出
LCD接口:共3个,2个LVDS接口,1个RGB接口
LCD电源开关:1个
MIPI接口:1个
实时时钟:内部实时时钟,带有后备锂电池座,断电后系统时间不丢失
BUZZER:1个蜂鸣器
JTAG接口:1个
串口、矩阵键盘、GPS接口:1个
Linux系统中有关/dev/null和/dev/zero文件说明
提示:这个题目完全可以作为一个面试题考考运维的应聘者:
面试题:请解释Linux中/dev/null和/dev/zero两个文件的作用和区别。
在类Unix操作系统中,设备节点并不一定要对应物理设备。没有这种对应关系的设备被称之为伪设备。操作系统运用了它们实现多种多样的功能,/dev/null和/dev/zero就是这样的设备,类似的还有/dev/urandom、/dev/tty等。
先检查下/dev/null和/dev/zero两个文件的属性:
[root@oldboy ~]# ls -l/dev/null /dev/zero
crw-rw-rw-. 1 root root 1, 3Jul 15 00:11 /dev/null
crw-rw-rw-. 1 root root 1, 5Jul 15 00:11 /dev/zero
提示:从文件属性可以看出这两个文件都是字符设备文件。
1、/dev/null
1)/dev/null介绍
大家都知道宇宙中“太阳黑洞”吧,所有的天体(含地球)一旦进入了太阳黑洞都会消失的无影无踪。这里的/dev/null就是Linux系统中的"黑洞"。
在类Unix系统中,/dev/null(空设备文件或黑洞文件)是一个特殊的设备文件,所有写入其中的数据,都会被丢弃的无影无踪,/dev/null通常被用于丢弃不需要的数据输出,或作为用于输入流的空文件。这些操作通常由重定向完成。
2)/dev/null实践
范例1-1:清空文件。
[root@oldboy ~]# cp/etc/hosts{,.ori} #<==备份。
[root@oldboy ~]# cat /dev/null>/etc/hosts #<==将读取黑洞设备写入到/etc/hosts,表示清空hosts文件。
[root@oldboy ~]# cat/etc/hosts #<==果然没了。使用上述备份恢复回来。
范例1-2:将无用的输出流写入到黑洞丢弃。
当取一个地址响应头的第一行时,加上管道就会出现下面的特殊结果:
[root@oldboy ~]# curl -Iwww.oldboyedu.com|head -1
% Total % Received % Xferd AverageSpeed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
HTTP/1.1 200 OK
执行上述命令时,会凭空多出来的几行无用信息,此时就可以使用将错误信息定向到黑洞(2>/dev/null)的方式丢弃无用信息。
[root@oldboy ~]# curl -Iwww.oldboyedu.com 2>/dev/null|head -1 #<==将错误信息定向到黑洞。
HTTP/1.1 200 OK
当然了curl命令也提供了实现参数,这里暂且不多表。
[root@oldboy ~]# curl -I -s www.oldboyedu.com|head-1
HTTP/1.1 200 OK
范例1-3:将定时任务脚本结尾加上>/dev/null 2>&1
在书写定时任务总,规范的写法就是将所有定时任务脚本结尾加上>/dev/null 2>&1,让所有的输出流(包括错误的和正确的)都定向到空设备丢弃。
[root@oldboy ~]# crontab -l
#time sync by oldboy at2010-2-1
*/5 * * * * /usr/sbin/ntpdatetime.windows.com >/dev/null 2>&1
#bak all db
00 01 * * * /bin/sh/server/s/mysqlbak.sh >/dev/null 2>&1
2、/dev/zero
1) /dev/zero介绍
和/dev/null类似,/dev/zero也是一个特殊的字符设备文件,当我们使用或读取它的时候,它会提供无限连续不断的空的数据流(特殊的数据格式流)。
/dev/zero文件的常见应用场景有二:
a./dev/zero文件覆盖其他文件信息。
b.产生指定大小的空文件,例如:交换文件、模拟虚拟文件系统等。
2)/dev/zero实践
范例1-5:产生指定大小的空文件。
[root@oldboy ~]# dd if=/dev/zeroof=test.data bs=1M count=2 #<==生成块大小1M,含有2个块的文件。
2+0 records in
2+0 records out
2097152 bytes (2.1 MB) copied,0.00279345 s, 751 MB/s
[root@oldboy ~]# ls -lhtest.data
-rw-r--r--. 1 root root 2.0MJul 15 20:20 test.data #<==一共2M大小。
[root@oldboy ~]# filetest.data
test.data: data #<==特殊的数据文件格式。
提示:在使用dd命令产生空文件时常用/dev/zero作为字符流的源。
范例1-4:利用/dev/zero文件覆盖其他文件信息
[root@oldboy ~]# echo oldboy>new.txt #<==生成一个新文件写入oldboy字符串。
[root@oldboy ~]# ddif=/dev/zero of=new.txt bs=1M count=10 #<==用空的字符流覆盖存在的new.txt文件。
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied,0.0475368 s, 221 MB/s
[root@oldboy ~]# cat new.txt #<==数据丢失了。
更多干货请关注老男孩公众号
本书由田泽编著。
田泽,现任中航工业西安航空计算技术研究所副总工程师兼航空微电子技术研究室主任。长期以来从事VLSI设计、SoC设计方法学、嵌入式微处理器体系结构与VLSI实现、嵌入式应用系统开发的科研及管理工作。荣获“2008年陕航局优秀共产党员”、“2007—2008年六三一所优秀干部”等光荣称号。出版著作、译著、教材14本,获授权的国家发明专利两项,主持国家及省部级项目20多项,发表学术论文60多篇,获“2009年中国嵌入式系统十大杰出青年”。