- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 编程语言之C++的学习
C++是从C发展过来的,它除了继承了C的语法外,还新增了不少语法,下面仅介绍C++与C的不同之处:1.新增数据类型现已知的有: class(类):与struct概念类似,就是将多个不同的成员封装成一个类型,区别在于struct只能封装数据,而class新增封装操作的功能即成员函数,当实例化一个class类时,其成员函数不占用内存,而仅在代码区存放成员函数的代码(避免了通过函数指
2016-03-02 07:30:55
257
原创 学习心得之linux环境篇
linux操作环境与windows很大的不同,主要是操作方式上,我们在windows系统中只要点点鼠标进行的操作在linux 中都要通过输入指令来进行,不过现在linux为了满足用户的需求也加入了一些图形工具,但是由于在linux桌面或者在文件系统中显示工具图标比较困难,还是需要使用相应的指令才能打开。另外linux中的目录文件系统都有明确的定义,有点像windows中的C盘,只有了解了这里面的目
2016-03-02 07:29:41
321
原创 学习心得之linux内核篇
可以说以前所学都是为了给linux打基础的,包括FreeRtos,Fatfs,LWIP这些大型系统的研究和学习以及STM32各种接口的学习和实践,虽然,linux并没有用到这些平台,但是,很多知识和理念都是相通的,linux操作系统与FreeRtos一样都是多任务的,支持系统调度,支持时间管理,支持内存管理,支持同步,阻塞,互斥等处理机制,只是它们的实现方法有所不同,学习了FreeRTos与之通用
2016-03-02 07:29:10
346
原创 makefile
makefile是为了方便用户在linux操作系统下进行规模较大的源代码文件的编译而定制的一种文件类型。由于linux操作系统的编译由用户自行逐个对文件进行编译——.c》.o连接——.hex/.exe》可执行文件比较麻烦,输入指令时也需要一行一行的输入,而makefile实现了通过一定的规则将这些编译指令集成一个文件,用户只需使用make file 便可一键生成可执行文件。现讲讲makef
2016-03-02 07:28:36
353
原创 学习心得之bash script
bash script语言:将各种命令通过语法规定的逻辑关系组合而成来实现所需要的功能。此种类型文件,由bash工具来执行,#!/bin/bash#即表明此文件需要由/bin下的bash工具来执行,相当于一个文件类型的说明,因此编写一个bash script这是必不可少的语法:if space [ space condition space]thenstatment
2016-03-02 07:28:11
939
原创 学习心得之fatfs
对于FLASH/EEPROM等非易失性存储设备,通常需要存储很多数据,而且数据的用途和类型多种多样,通常我们读取和写入数据都是通过页寻址或者字节寻址或者模块寻址等方式,这种操作很不直观,用户使用起来也比较繁琐,不能满足人性化的需求,而实际上我们用户并不关心数据到底存在什么地方,而只要存进去了,而且能够正确的读出来就可以了,我们只需要给我们存储的数据块指定一个便于我们区分的名字即可,想对内容作修改就
2016-03-02 07:27:05
673
原创 学习心得之通信篇(TCP/IP协议栈)
上篇讲到的协议寻址机制简单,传输速度慢,不适合大范围,大流量的数据传输,因此,主要被应用于设备内部(如IC之间,电路板与电路板之间)。TCP/IP协议栈物理层采用光纤/同轴电缆为传输介质,传输速率快,(最高能达到100Mbit),路由,网关,侦错检错功能很强大,很好地实现多用户通信,因此多被用于设备外部多设备之间大数据流的通信。如PC/mobile之间以及访问服务器,就是通过TCP/IP实现的。
2016-03-02 07:26:13
2879
原创 学习心得之调试篇
此处主要讲基于KEIL的调试,其它的编译器可能也差不多,调试的时候掌握一些技巧,效率会更高。调试错误可分为:编译错误和逻辑错误。编译错误:一般比较简单就那么几种:1.undefined symble :某符号未定义,通常原因是,此符号在使用之前未进行定义/在一个.c文件中定义了,但是文件未编译/在编译的文件中定义了,同时被外部文件访问,但是此变量被你定义成了static类型/定义的
2016-03-02 07:25:05
1146
原创 学习心得之协议篇
任何涉及到设备之间的数据传输,都要制定一个协议,并且为了规范使用,出现了ISO/OSI国际标准化七层网络协议,分别是:1.物理层与传输介质相关,主要有物理链路的建立/拆除,介质所能承载的传输速率,数据传输的方式:单工,半双工,全双工。二进制数据流的电平,发送和接收端阻抗匹配,引脚数,端口类型等一些电气,机械特性的定义,以保证物理层面的通讯正常。2.数据链路层定义了接收端与发送端的数
2016-03-02 07:23:27
516
原创 my english document for threadx
threadX is a real-time OS.it is featured with small code scale,high reliability and easy to use.In last article, I have mentioned freeRtos which is also a real time os. then what is the difference b
2013-06-27 09:37:45
612
原创 学习心得之多任务的实现
一般不跑OS的系统都是单任务的,即只有一个大循环(进程),里面可以存在多线程,所谓的多任务,就是存在多个无限循环,按照程序执行的原理,这样的多个死循环,如果没有条件让执行的那个循环跳出的话,其它的循环体应该都不会被执行到的,既然是死循环,作为没有任务调度机制的程序,肯定无法跳出,即使发生了中断,之后也会重新回到循环中去,因此,任务调度实现了,程序从一个死循环切换到另一个死循环,由于切换速度相当之块
2012-03-20 18:36:40
1806
原创 学习心得之ARM (STM32F207)
上一篇专门有提到MSC51的汇编,有MSC51的就应该有对应其它平台的汇编,现在详解ARM下的。首先讲下两者的区别:1.C51所用的指令集应用于所有X86架构的系统,被称为CISC(复杂指令集),对应的ARM系列指列集为RSIC(精简指令集),一个指令集复杂,另一个简单。讲讲ARM简单之处,首先ARM指令集每条指令都是固定长度,32位,这样方便CPU取指,提高速率;另外,ARM指令的种
2012-02-22 15:59:01
2186
原创 学习心得之汇编
汇编是最接近机器的语言,它是直接对硬件进行操作的,了解汇编语言,就能更深入的了解硬件的结构。现详解MSC51的汇编语言。汇编指令的属性:一指令要实现什么功能;二通过什么方式找到操作数1.汇编指令分为:数据传送类,算术运算类,控制转移类,逻辑运算类。1.数据传送类,将数据从一处移往另一处,相当于C语言中的赋值语句。如在函数内定义的局部变量:int a = 0x21;a++ ;翻译
2012-02-22 14:44:28
1193
原创 学习心得之keil C51
上篇有提到不同的硬件平台用到的C语言也不尽相同,现详细讲讲,MSC51系列单片机的C语言特点。相对于通用C语言,C51增加了:sfr,sfr16,sbit,bit等共4种数据类型。1.sfr/sfr16sfr/sfr16分别占用8位/16位的存储空间,专用于定义特殊功能寄存器如:sfr P0 = 0x80(地址值);P0 = 0xff;(对p0每一位置1)2.sbit此类型
2012-02-20 19:50:40
2116
原创 学习笔记之Keil IDE
keil是一个集编辑,编译,仿真,下载于一体的开发环境,会针对于不同的硬件平台,有不同的开发流程。工程文件的创建,文件的添加,芯片的选择,目标文件生成的路径,代码生成的格式,执行档下载的目标位置,仿真工具的选择及方式,是否使用微库,是否下载到闪存,编译包含文件的路径等等环境的设置都是必不可少的。如芯片选择与实际芯片类型不一致,直接导致执行档不能在芯片上运行;如编译包含文件的路径未选择,导致
2012-02-20 15:45:37
1469
原创 学习笔记之C语言提升篇
1.数据结构。分析数据结构,进行框架设计。如果事情的发生具备时间性,则先把它们进行事件判别分类,然后按一定时间顺序进行存储,再依需要依一定的时间顺序进行取出处理,相比于,出现事件,立即判别作处理而无需存储的方式,这种结构设计,更能对事情的属性进行智能化,人性化的管理,如能够有效控制事情发生与作处理的间隔时间,如连续发生重复事件是否要作重复处理。通常有两种时间顺序:FIFO(先进先出),FILO(先
2012-01-16 16:59:15
493
原创 学习笔记之C语言规范篇
C语言的规范涉及行文风格,语法规则。行文风格:1.空格的使用。关键字与字符之间(否则语法错误),关键字与括号之间(行文更美观),字符与操作符之间(视情况而定);2.tab键的使用。换行时,使用,以使层次结构更清晰,如if .for.while的语句体以及函数体。3.空行的使用。不同的语句体之间,如定义与执行之间的等等4.{}的使用。if.while.for.中的 {
2012-01-16 09:45:14
464
原创 学习笔记之C语言基础篇
高质量的C语言须具备以下几种特性:1.健壮性。即程序充分考虑了可能出现的各种情况,必给予相应的对策,如将函数的返回值用于返回此函数处理的状态,而将形参作为隐性输出。2.可读性。程序要实现的功能必须一目了然并附有适当的注释。当然好的代码是不依赖注释,就能清晰易懂的,如函数实现的功能尽可能的简单单一,函数名产用动名形式,如 get_char(),适当使用枚举和结构体,让程序的结构更加紧凑
2012-01-16 09:39:22
411
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人