自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

独舞风

用心呵护小小的梦想,专注于嵌入式系统开发!——WXW

  • 博客(13)
  • 资源 (5)
  • 收藏
  • 关注

原创 玩儿转C语言:整数及相关操作

1、C语言中整数有几种进制表示方式?使用时要注意哪些问题?        C语言中可以以多种进制表示整数:2进制、8进制、10进制和16进制。每个进制都有其对应的表示方式:2进制以0b开头,例如0b10111110,;8进制以0开头,例如0144表示的是10进制的100;10进制正常表达即可,不需要特殊转换;16进制以0x开头,例如0xFF表示0b11111111。实际使用中,要注意8进制和1

2012-12-19 00:02:52 3410

原创 【1.9】系统漫游——几个关键概念

为了后期学习方便,这里需要对几个关键概念进行阐述。1、并发和并行         这里以单处理器系统为例进,并发是个宏观概念,指在某一时间段内有超过1个的进程在处于活动状态;并行是个微观概念,指在某一时刻就有超过1个的进程处于活动状态。显然,单处理器系统是无法实现并行的,只能实现并发。处理器只能以时间片为单位,依次执行活动进程。        并发和并行的思想在计算机的多个抽象层次上都

2012-12-14 21:37:14 1220

原创 玩儿转C语言:声明和定义(1)

1、如何解释声明和定义,它们有何区别? C语言中,某一模块内部的数据对象只能有一个定义,可以有多个extern声明。 定义是一种特殊的声明,它负责创建一个对象并分配空间。 声明告诉编译器对象的类型和名字,对象的内存分配在别处进行,无需再定义就可直接使用。 它们的本质区别是:是否分配内存空间,定义需要分配空间,声明不需要分配空间。2

2012-12-13 19:35:14 1607 1

原创 【1.7+1.8】系统漫游——操作系统管理硬件(包括网络)

前面的hello程序中,它并没有直接跟硬盘、内存和显示器诸如此类的硬件直接打交道,而是通过操作系统,操作系统给应用程序提供的统一的接口,应用程序把命令传递给操作系统,由操作系统来直接控制硬件,过程中操作系统充当了中间人(或者说管理者)的角色。如下图所示:                  操作系统有两个基本功能:(1)防止硬件被失控的应用程序(因为应用程序来源多样化,并不能保证

2012-12-10 22:22:59 2122

原创 【1.5+1.6】系统漫游——高速缓存和金字塔型存储设备

从上一节:【1.4】系统漫游——系统硬件结构以及程序执行过程 中可以看到,hello执行过程中,代码和数据由硬盘copy到内存中,再由内存copy到寄存器中,最后由寄存器copy到显存中。为完成这么一个简单的数据显示动作,竟然需要对”倒腾“这么多次数据,而且根据”木桶理论“,系统的执行效率由最慢的设备决定,有必要对这个过程进行优化一下了。题外话:依稀记得好像有人说过”程序员的工作就是搬数“,计算机

2012-12-09 22:33:02 2184

原创 【1.4】系统漫游——系统硬件结构以及程序执行过程

如果想真正了解软件的执行过程,就必须分析它所依附的硬件平台。“计算机系统”(广义)发展这么多年,但基本模型不曾改变,不管是通用系统还是嵌入式系统等等。1、系统硬件结构一个典型系统的硬件组成如下图所示:总线:连接系统各个部件的电子线路,做信号传输使用,有点类似于城市中的交通网络。总线一次传输的固定位宽大小,称为“字长”,与公路车道数类似字长越大,效率越高(真正发挥效率,需要系统软

2012-12-08 20:46:40 2319

原创 【1.3】系统漫游——了解编译系统如何工作的好处

虽然现代编译系统已经发展的相当“智能”,但并不能成为我们不去了解它的理由,它是我们代码转换的工具,要想使用好这个工具,就必须对它有相对全面的了解才行。了解编译系统如何工作可以使我们:1、优化程序性能:真正影响系统执行效率的是编译完成后的“二进制代码”,如果想做的更好,我们就非常有必要知道源代码是如何转换成二进制代码的,以及使用了怎样一种规则。只有从汇编的角度理解机器执行路径才能更好的评估系

2012-12-08 11:12:32 1560

原创 【1.2】系统漫游——“程序”被其他程序翻译成不同格式

计算机语言按照层次划分为:机器语言(0/1)、汇编语言(arm、x86、thumb)和高级语言(c++、java、c)。计算机真正执行的“程序流”是机器语言,早期的程序员都是用机器语言编程,后来为方便记忆发明了汇编语言,但仍然需记住很多硬件相关的操作指令,而且代码规模有限,人们又发明了高级语言。高级语言的出现才真正把程序员从千变万化的硬件操作中解脱出来。综上:编程语言越来越“智能”,抽象层次越来越

2012-12-08 00:49:50 1962

原创 【1.1】系统漫游——信息就是位+上下文

计算机系统发展这么多年,虽然具体的实现方式一直在变,但底层的原理一直都不曾变化。为了更好的理解我们的程序是如何被执行如何被底层影响的,有必要开展一次全新的计算机系统之旅了。        我们学习C语言几乎都是从“helloword”开始的,这么一个简单的程序也需要计算机系统各个部件之间紧密配合、协同工作,才能使程序正确的执行。当程序执行时,我们希望知道内部到底发生了什么,只有真正了解本质,对

2012-12-07 22:38:45 1949

原创 玩儿转C语言:符号和字符(1)

编译原理中讲到程序构造的一般过程是:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。词法分析对应的就是C语言中的“单词”(也称“符号”),指的是程序的一个基本组成单元,每个符号都有自己固定的字符序列,但是同一个字符序列可能属于不同的符号。例如:字符序列“->”,有可能代表的是->运算符,也有可能代表字符串“->”,这就需要根据上下文环境判断。1、C语言中符号之间的空白(

2012-12-06 08:24:06 2177 1

原创 玩儿转C语言:宏定义(2)

1、如何区分宏定义中的“宏名称”和“宏字符串”?对于带参数的宏又该注意什么?        在宏定义中,“宏名称”和“宏字符串”是通过“空格”来区分的,在宏的扩展中,空格会对扩展的结果造成很大的影响。编译器在处理时宏定义时,首先从“#define”后第一个空格开始读取字符串,直到遇见下一个空格为止,两个空格之间的字符串为“宏名称”,确定好“宏名称”之后,本行的所有其他字符串都为“宏字符串”。图

2012-12-05 00:40:36 4018 2

原创 玩儿转C语言:宏定义(1)

1、为什么要有宏定义? 代码中某个特定数值需要参与运算,而且该数值作用于多个地方,当需要对该数值进行修改时,希望只改动一个地方就能实现该数值的全部更新;即便某个数值只用到一次,当修改时也会面临搜索阅读大量代码、数值含义不明晰的问题;某些“操作块”封装成函数时,调用函数开销(保存上下文环境、参数调用、堆栈分配等)太大影响效率,不封装则需要多次输入相同的“操作块”内容,并且修改麻烦容

2012-12-03 11:21:00 2215 1

原创 玩儿转C语言:常见复合类型的声明--注意事项

1、结构体struct声明注意事项       结构的定义后面可以直接跟变量名,表示这些变量的类型是这个结构。例如:struct { *** } vol, rate ;这样就定义了两个结构体变量vol和rate。理解:跟基本类型变量的定义“ int number ”本质相同 ,可以认为 struct { *** } 就类似于系统内部类型定义int,只是类型不同而已。       缺点是:无

2012-12-01 16:12:34 1663

K60P100M100SF2RM.pdf

这是飞思卡尔k60dn512参考手册,本博客文章中提到的参考信息也是来源于此文档。

2013-01-03

介绍飞思卡尔8位单片机sci操作方法

系统的介绍了飞思卡尔8位单片机的sci操作方式方法,配合芯片datasheet可以有更加深入的理解,而且里边加入了我的部分理解和注释,方便读者理解

2011-10-08

Ucos_II 2.52源码中文译注资料.pdf

讲述ucos源代码的文件,这里面注释比较多,便于初学者学习

2011-07-12

嵌入式 arm 清华大学 培训讲义

嵌入式 arm 清华大学 培训讲义,看看名校的培训

2010-12-01

嵌入式应用程序开发综合实验9例.pdf

学习arm嵌入式应用程序的参考文档,可以根据里边的应用程序自己学习,增加实践经验

2010-12-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除