由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图4.15所示。
通过使用JTAG烧写Flash的实验,了解嵌入式硬件环境,熟悉JTAG的使用,为今后的进一步学习打下良好的基础。本书以优龙的FS2410及Flash烧写工具为例进行讲解,不同厂商的开发板都会提供相应的Flash烧写工具,并有相应的说明文档,请读者在了解基本原理之后查阅相关手册。
一、简介:定义: ARM 指令集:ARM处理器能够运行的命令的集合。特点:所有ARM指令均为32-bits长大部分为单周期指令 1T所有指令都可以条件执行采用 Load/Store 架构 --- load/store指令 mov r1
本章讲解了嵌入式中的基本概念,包括嵌入式系统的含义、发展历史、特点以及其体系结构。在这里,重点要掌握嵌入式系统和通用计算机的区别以加深对嵌入式系统的理解。
当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被忽略的问题是:微控制器(单
本章是Linux中进行C语言编程的基础,首先讲解了C语言编程的关键点,这里关键要了解编辑器、编译链接器、调试器及项目管理工具等概念。
简单地说,Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序。通过这段程序,可以完成硬件设备的初始化,并建立内存空间的映射关系,从而将系统的软硬件环境带到一个合适的状态,为最终加载系统内核做好准备。
串口是计算机一种常用的接口,常用的串口有RS-232-C接口。它是于1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通信的标准,它的全称是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。
一、启动文件的作用(关于启动代码的作用,前面已经提到过了,这里再啰嗦一下)(1)初始化堆栈指针SP;(2)初始化程序计数器指针PC;(3)设置堆、栈的大小;(4)设置异常向量表的入口地址;(5)配
在Linux中对目录和设备的操作都等同于文件的操作,因此,大大简化了系统对不同设备的处理,提高了效率。Linux中的文件主要分为4种:普通文件、目录文件、链接文件和设备文件。
本章前面几节所述的文件及I/O读写都是基于文件描述符的。这些都是基本的I/O控制,是不带缓存的。而本节所要讨论的I/O操作都是基于流缓冲的,它是符合ANSI C的标准I/O处理,这里有很多函数读者已经非常熟悉了(如printf()、scantf()函数等),因此本节中仅简要介绍最主要的函数。
想必很多人都看过“头文件中的#ifndef/#define/#endif防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件吗?如果头文件被重复
通过编写文件读写及上锁的程序,进一步熟悉Linux中文件I/O相关的应用开发,并且熟练掌握open()、read()、write()、fcntl()等函数的使用。
本书在第2章中介绍“ps”的命令时提到过管道,当时指出了管道是Linux中一种很重要的通信方式,它是把一个程序的输出直接连接到另一个程序的输入,这里仍以第2章中的“ps –ef | grep ntp”为例,描述管道的通信过程,如图8.2所示
本章首先讲解了系统调用(System Call)、用户函数接口(API)和系统命令之间的联系和区别,这也是贯穿本书的一条主线,本书就是按照系统命令、用户函数接口(API)系统调用的顺序逐层深入讲解,希望读者能有一个较为深刻的认识。