嵌入式系统
xjbclz
有多年APP与手机软件开发和管理工作经验,出版了两本书:《Android APP开发实战》和《App Inventor2定制与二次开发》
展开
-
嵌入式系统和嵌入式操作系统
嵌入式系统和嵌入式操作系统 一 什么是嵌入式系统 嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于PC中BIOS的工作方式,具有软件代码小、高度 自动化、响应速度快等特点,特别转载 2016-07-09 16:54:42 · 10563 阅读 · 1 评论 -
ADS下的分散加载文件应用实例
ADS下的分散加载文件应用实例load_region_name start_address | "+"offset [attributes] [max_size]{ execution_region_name start_address | "+"offset [attributes][max_size] { module_select_p转载 2016-07-06 22:10:12 · 821 阅读 · 0 评论 -
ARM 必须知道的知识
寄存器和工作模式:7种工作模式:fiq/irq/abt/und/sys/usr/svc。通过"MSR cpsr_c,#0xdx"切换。上电时进入svc模式。svc和usr的区别是:svc可以通过"MSR cpsr_c,#0xdx"自由切换到其它任何模式,但是usr不可以。各模式下有自己的堆栈。要在程序启动后依次进入各个模式分别设置自己的堆栈,最后进入usr模式。好多个寄转载 2016-07-06 22:09:15 · 2356 阅读 · 0 评论 -
ARM编译程序参考
介绍ARM编译程序的ARM特有方面,包括:Pragmas 编译指示Function keywords 函数关键字Variable declaration keywords 变量声明关键字PragmasARM编译程序可识别一下格式的编译指示:#pragma [no转载 2016-07-06 21:25:17 · 286 阅读 · 0 评论 -
ARM初学宝典
一直都在听说ARM有多么好,有多神奇,有多难学。故学它时都兴奋加恐惧。呵呵,我刚好用ARM也有一段时间了。写点东西给ARM的初学者,希望能起到帮助作用。1,记住:ARM很简单,就如从51转换到PIC或者转换到AVR一样简单。ARM的一个功能就如同掌握一个其他IC的使用一样,如时钟芯片,存在芯片,等等,甚至更简单。所以ARM的那些功能就可以忽略了。2,和51系列相比,arm的寄存器不在存储空转载 2016-07-06 21:24:09 · 259 阅读 · 0 评论 -
Scatter file文件格式
Scatter file (分散加载描述文件)用于armlink的输入参数,他指定映像文件内部各区域的download与运行时位置。Armlink将会根据scatter file生成一些区域相关的符号,他们是全局的供用户建立运行时环境时使用。(注 意:当使用了scatter file 时将不会生成以下符号 Image$RW$Base, Image$RW$Limit, Image$RO$Base转载 2016-07-06 21:22:50 · 1330 阅读 · 0 评论 -
Bash基本编程中的环境变量
在 bash 和几乎所有其它的shell 中,用户可以定义环境变量,这些环境变量在以 ASCII 字符串存储。环境变量的最便利之处在于:它们是 UNIX 进程模型的标准部分。这意味着:环境变量不仅由 shell 脚本独用,而且还可以由编译过的标准程序使用。当在 bash 中“导出”环境变量时,以后运行的任何程序,不管是不是 shell 脚本,都可以读取设置。一个很好的例子是 vipw 命令,它转载 2016-07-06 21:22:09 · 325 阅读 · 0 评论 -
gcc编译c语言中内嵌汇编
--AT&T and Intel 汇编语法对照寄存器命名:AT&T: %eaxIntel: eaxAT&T 语法源地址在左侧,目的地址在右侧与Intel 方式语法相反将eax值传入ebxAT&T: movl %eax, %ebxIntel: mov ebx, eaxAT&T 语法在立即数前有前缀$. AT&T: movl x0h, %eax转载 2016-07-04 22:36:39 · 2432 阅读 · 0 评论 -
Linux下创建静态、动态库
Linux下创建静态、动态库源码-----------a.cpp---------------#include int a(int i){ std::printf("in a(int a) %d\n", i); return 0;}-----------b.cpp----------------#include i转载 2016-07-04 22:35:41 · 227 阅读 · 0 评论 -
嵌入式Linux开发简介
Linux 正在嵌入式开发领域稳步发展。因为 Linux 使用 GPL(请参阅本文后面的参考资料),所以任何对将 Linux 定制于 PDA、掌上机或者可佩带设备感兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发。许多 Linux 改良品种迎合了嵌入式/实时市场。它们包括 RTLinux(实时 Linux)、uclinux(用于非 MMU 设备的 Linux)、Montavis转载 2016-07-04 22:34:28 · 1172 阅读 · 0 评论 -
多任务系统看门狗的实现
摘自《电子工程专辑》 看门狗分硬件看门狗和软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器转载 2016-07-04 22:33:02 · 2150 阅读 · 0 评论 -
ARM寄存器和处理器模式
ARM寄存器和处理器模式ARM 处理器有二十七个寄存器,其中一些是在一定条件下使用的,所以一次只能使用十六个... 寄存器 0 到寄存器 7 是通用寄存器并可以用做任何目的。不象 80x86 处理器那样要求特定寄存器被用做栈访问,或者象 6502 那样把数学计算的结果放置到一个累加器中,ARM 处理器在寄存器使用上是高度灵活的。 寄存器 8 到 12 是通用寄存器,但是在切换到转载 2016-07-06 22:12:07 · 442 阅读 · 0 评论 -
什么是IP核
我们常说的IP核,也就是知识产权IP( Intellectual Property ),是那些己验证的、可重利用的、具有某种确定功能的IC模块。分为软IP (soft IP core )、固IP (firm IP core)和硬IP (hard IP core )。软IP是用某种高级语言来描述功能块的行为,但是并不涉及用什么电路和电路元件实现这些行为。固IP除了完成软IP所有的设计外,还完转载 2016-07-06 22:13:07 · 4927 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之三:内存操作
数据指针 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况: (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址; (2转载 2016-07-07 20:51:37 · 890 阅读 · 0 评论 -
ARM下的对齐处理
from DUI0067D_ADS1_2_CompLib3.13 type qulifiers有部分摘自ARM编译器文档对齐部分对齐的使用:1.__align(num) 这个用于修改最高级别对象的字节边界。在汇编中使用LDRD或者STRD时 就要用到此命令__align(8)进行修饰限制。来保证数据对象是相应对齐。 这个修饰对象的命令最大是8个转载 2016-07-09 16:53:09 · 733 阅读 · 0 评论 -
Linux 2.4.x内核软中断机制
软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和"信号"有些类似,同时,软中断又是和硬中断相对应的,"硬中断是外部设备对CPU的中断","软中断通常是硬中断服务程序对内核的中断","信号则是由内核(或其他进程)对某个进程的中断"(《Linux内核源代码情景分析》第三章)。软中断的一种典型应用就是所谓的"下半部"(bottom half),它的得名来自于转载 2016-07-09 16:51:44 · 349 阅读 · 0 评论 -
Linux手机DIY.库文件专题.知识准备
一、序 软件移植过程中,Linux操作系统的库文件着实令人头疼,这方面资料也比较少。通过一段时间搜索查询推敲,写点总结吧,也算是有点成果。不过这篇内容大多都是抄的,这里对原创作者表示深深的敬意~二、重要提示 为了方便更好的理解本文,提供下面链结。 全系列的文章地址,手机应用开发专栏:http://blog.csdn.net/liwei_cmg转载 2016-07-09 16:49:16 · 331 阅读 · 0 评论 -
Linux电源管理研究笔记—动态电源管理(DPM)
Linux电源管理研究笔记—动态电源管理(DPM) 转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd作者联系方式:Li XianJing 更新时间:2006-12-19 在手持设备设计中,电源管理历来为重要的研究课题之一。我们日常所说的省电就属于电源管理的范畴,这也是我们最关心的一个部分。通过挂起不必要的设备、降转载 2016-07-09 16:48:44 · 337 阅读 · 0 评论 -
嵌入式系统开发工具及RTOS平台
嵌入式处理器是一个复杂的高技术系统,要在短时间内掌握并开发出所有功能是很不容易的,而市场竞争则要求产品能够快速上市,这一矛盾要求嵌入式处理器能够有容易掌握和使用的开发工具平台。提高用户和程序员的时间投入回报率(ROT1)。 从事嵌入式开发的往往是非计算机专业人士,面对成百上千种处理器,选择是一个问题,学习掌握处理器结构及其应用更需要时间,因此以开发工具和技术咨询为基础的整体解决方案转载 2016-07-07 20:58:18 · 2131 阅读 · 0 评论 -
Nucleus Plus在嵌入式系统应用
Nucleus Plus是美国源代码操作系统商ATI公司推出的新一代嵌入式操作系统,属于抢先式实时多任务操作系统内核, 95%的代码使用ANSI C编写,非常便于移植于各种处理器家族。从实现的角度讲,不同于传统嵌入式开发,Nucleus Plus是以函数库的形式链接到目标应用程序中,形成可执行目标代码,下载到目标板上或烧到ROM/FLASH ROM 中去执行。Nucleus Plus内核在典型转载 2016-07-07 20:56:53 · 379 阅读 · 0 评论 -
剖析几种主流嵌入式软体程式码压缩技术
对于嵌入式软体而言,程式码尺寸是越小越好。压缩程式码以适应受到成本或空间限制的储存子系统已经成为嵌入式系统开发的一项重要事务。ARM、MIPS、IBM以及ARC都提供了降低记忆体占用的技术,本文将对这几种架构中程式码压缩技术的实现进行比较分析。如今,储存子系统的成本高于微处理器已不再稀奇。因此,选择一款能节约储存成本的处理器就变得很有意义。编写紧密的程式码只是事情的一个方面,而处理器的指令集对转载 2016-07-07 20:56:16 · 816 阅读 · 0 评论 -
RTOS设备驱动向嵌人式Linux的移植
Linux暴风雨般占领了嵌入式系统市场。分析家指出,大约有1/3到1/2的32/64位新的嵌入式系统设计采用了Linux。嵌入式 Linux 已经在很多应用领域显示出优势,比如SOHO家庭网络和成像/多功能外设。在(NAS/SAN)存储,家庭数字娱乐(HDTV/PVR/DVR/STB),和手持设备/无线设备,特别是数字移动电话更获得大幅度发展。嵌入式Linux新应用不会凭空从开发者的头脑中转载 2016-07-07 20:54:54 · 2557 阅读 · 0 评论 -
Linux 内存管理简介
1. 存储层次 高速缓存(cache) --〉 主存(main memory) ---〉 磁盘(disk) 理解存储层次结构的根源:CPU速度和存储器速度的差距。 层次结构可行的原因:局部性原理。 LINUX的任务:l 减小footprint,提高cache命中率,充分利用局部性。转载 2016-07-07 20:54:00 · 360 阅读 · 0 评论 -
Linux驱动程序设计简述
Linux设备驱动程序层次结构作为Unix操作系统的一个变种,Linux操作系统实现了大多数Unix操作系统的系统设施。系统将所有的设备(不仅仅是磁盘上的文件)都看成文件,并纳入文件系统得范畴,通过文件系统界面对设备进行操作。下图是针对Linux系统中普通设备(非磁盘文件)的驱动程序层次结构。 设备文件应用程序如果要想访问设备,首先要在文件系统中建立一个设备转载 2016-07-07 20:52:50 · 1350 阅读 · 0 评论 -
GPRS无线MODEM模块上网设置命令
GSM/GPRS MODEM 的上网设置一、首先在超级终端下,对模块进行设置:at OKat+ccid //检测是否装有SIM 卡+CCID: "89860060190200147245"OKat+cgmr //检测软件版本,5.0 以上的才有GPRS 功能支持534_09gg.2C2 1747684 080602 16:50OKat+csq //检测信号质量,转载 2016-07-14 20:46:39 · 1659 阅读 · 0 评论 -
Makefile介绍
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一转载 2016-07-03 22:48:56 · 337 阅读 · 0 评论 -
Linux操作系统中BSD套接口开发的基础介绍
这是关于如何用各种可以得到的接口为Linux开发网络程序的系列文章的第一篇。就像大多数Unix-based的操作系统一样,Linux支持将TCP/IP作为本地的网络传输协议。在这个系列中,我们假定你已经比较熟悉Linux上的C编程和Linux的一些系统知识诸如signals,forking等等。 这篇文章是关于如何用BSD套接口创建网络程序的基础介绍 。在下一篇中,我们会解决涉及到建立(转载 2016-07-12 23:25:08 · 499 阅读 · 0 评论 -
boot移植要点[转载]
简单说说U-boot的修改简单说说U-boot的修改 uboot是一个通用的免费开放源码的boot程序,支持很多的处理器。以下是现在网上下载一个u-boot-1.1.1版本,用于at91rm9200系统的修改的例子。最后在redhat8.0上,用gcc2.95编译通过。在网上下载了uboot-1.1.1版本。要用于自己的at91rm9200的系统,这个系统的情况是:SD转载 2016-07-10 12:09:25 · 491 阅读 · 0 评论 -
SoC前段(ARM)嵌入式系统开发实作训练(下)
指令执行在RISC的精简指令中,它含有多种意义,因此较难理解。但在Debugger对CPU掌握的全透明下,就可清清楚楚看到指令的执行, 也加深对CPU的了解。为了观看指令与组合语言的执行,我们来开一视窗共解说它各处视窗的意义。首先要把ICE与Creator接上,并执行Domingo程式如图1图2。 图1 Pocket ARM ICE 与Creator的接线图转载 2016-07-10 12:08:13 · 554 阅读 · 0 评论 -
SoC前段(ARM)嵌入式系统开发实作(上)
一个嵌入式系统的核心在于CPU,当CPU选定后,其他的问题就可慢慢就绪。SoC嵌入式系统的实现可把它分为:一应用型SoC嵌入式系统、开发型SoC嵌入式系统二种型态,这二种型态的软硬体开发有着不小的差异,但首先碰到的都是CPU的选定。这里笔者会针对它们的异同处做说明,再来描述ARM CPU、指令、系统管理、开发实作训练平台(PreSoCes)、Linux与程式等,以建立SoC嵌入式系统的整体轮廓概念转载 2016-07-10 12:07:17 · 1192 阅读 · 0 评论 -
程序执行时写闪存的应用实例
闪存(flash)是一种可在线进行电擦写,掉电后信息不丢失的存储器。它具有低操作电压、低功耗、大容量、擦写速度快等特点。在嵌入式系统中广泛使用闪存来保存程序。在实际应用中为了节省整个嵌入式系统的成本和系统复杂程度,整个系统仅设计成具有一块闪存,CPU执行的程序被保存在闪存中,设备产生的重要数据也保存在该闪存中,且这些数据必须在设备运行过程中及时进行更新保存。因此要求系统在程序执行时必须完成向闪存中转载 2016-07-10 12:06:03 · 2213 阅读 · 0 评论 -
嵌入式系统的动态电源管理架构
摘要:分析嵌入式系统对动态电源管理的需求,并在此基础上提出了与之适应的,以策略框架为中心的系统级动态电源管理架构。利用这种构架可以整合针对不同组件的动态电源管理算法和机制,从系统角度进行行之有效的管理。该架构应用于TD-SCDMA无线终端上,平均能耗下降了50%,取得良好的效果。s0100 关键词:动态电源管理(DPM)功率监控实时嵌入式操作系统 1简介 随着系统集成转载 2016-07-10 12:04:08 · 1954 阅读 · 0 评论 -
嵌入式系统 Boot Loader 技术内幕(2)
三. Boot Loader 的主要任务与典型结构框架在继续本节的讨论之前,首先我们做一个假定,那就是:假定内核映像与根文件系统映像都被加载到 RAM 中运行。之所以提出这样一个假设前提是因为,在嵌入式系统中内核映像与根文件系统映像也可以直接在 ROM 或 Flash 这样的固态存储设备中直接运行。但这种做法无疑是以运行速度的牺牲为代价的。从操作系统的角度看,Boot Load转载 2016-07-10 12:03:30 · 379 阅读 · 0 评论 -
嵌入式系统 Boot Loader 技术内幕(1)
本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念、软件设计的主要任务以及结构框架等内容。1. 引言在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot转载 2016-07-10 12:00:33 · 383 阅读 · 0 评论 -
嵌入式系统常用词汇统计表
嵌入式系统常用词汇统计表 AASIC(专用集成电路) Application-Specific Integrated Circuit. A piece of custom-designed hardware in a chip. 专用集成电路。一个在一个芯片上定制设计的硬件。address bus (地址总线) A set of electrical l转载 2016-07-10 11:59:43 · 1837 阅读 · 0 评论 -
嵌入式系统程式设计重要抉择
在当今的嵌入式多媒体应用中,系统控制(通常的MCU作用)和信号处理(通常的DSP作用)之间的交互性不断增强。现在推出的一种嵌入式媒体处理器能够同时处理MCU和DSP的任务,从而将那些熟悉用MCU方式进行应用开发的C程式师带入一个新的领域,其中对代码和资料流程的智慧管理会显着提高系统的性能。这对于採用“已经掌握”的编程方法和简单的使用指令高速缓冲记忆体(cache, 简称快取记忆体)和资料快取记忆体转载 2016-07-10 11:59:01 · 310 阅读 · 0 评论 -
嵌入式linux启动信息完全注释-转载
摘要我们在这里讨论的是对嵌入式linux系统的启动过程的输出信息的注释,通过我们的讨论,大家会对嵌入式linux启动过程中出现的、以前感觉熟悉的、但却又似是而非的东西有一个确切的了解,并且能了解到这些输出信息的来龙去脉。嵌入式linux的启动信息是一个很值得我们去好好研究的东西,它能将一幅缩影图呈现在我们面前,来指导我们更加深入地理解linux内核。 关键字:lin转载 2016-07-10 11:58:15 · 326 阅读 · 0 评论 -
ADS下的分散加载文件应用实例
ADS下的分散加载文件应用实例load_region_name start_address | "+"offset [attributes] [max_size]{ execution_region_name start_address | "+"offset [attributes][max_size] { module_select_p转载 2016-07-10 12:09:58 · 328 阅读 · 0 评论 -
Linux内核中的同步和互斥分析报告
Linux内核中的同步和互斥分析报告 先看进程间的互斥。在linux内核中主要通过semaphore机制(pv原语机制)和spin_lock机制(锁机制)实现。主要的区别是在semaphore机制中,进不了临界区时会进行进程的切换,而spin_lock刚执行忙等(在SMP中)。先看内核中的 semaphore机制。前提是对引用计数count增减的原子性操作。内核用atomic_t的数转载 2016-07-10 12:10:54 · 835 阅读 · 0 评论 -
[嵌入式开发]零拷贝技术研究与实现
零拷贝技术研究与实现 作者:梁健(firstdot) E-MAIL:firstdot@163.com 感谢王超、史晓龙的共同研究与大力帮助 一.基本概念 零拷贝(zero-copy)基本思想是:数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,彻底消除CPU在这方面的负载。实现零拷贝用到的最主要技术是D转载 2016-07-10 12:11:43 · 485 阅读 · 0 评论