摘要: 时钟设置是一个非常重要的环节,如果系统没有合适的时钟,根本无法工作。 S3C2440的时钟复杂,分为FCLK,HCLK,PCLK。 在程序测试中,曾出现这样一个错误。系统当前FCLK为400MHz,分频比是1:4:8,并且为同步工作模式。现在,欲重新设置时钟,把FCLK设置为200MHz,分频比设置 阅读全文
posted @ 2013-09-22 09:37 amanlikethis 阅读(905) 评论(0) 推荐(0)
摘要: 程序在nor flash中可以运行,但是是有限制的,它不能像RAM那样随意的写(尽管它可以随意的读)。在norflash上,不能运行写存储器的指令,不过排除写的地方是RAM类。实验中的三个文件如下所示:Makefile如下: led_on.bin : crt0.S leds.c arm-linux- 阅读全文
posted @ 2013-09-22 09:05 amanlikethis 阅读(3862) 评论(0) 推荐(1)
摘要: ARM处理器执行速度与存储器的速度有关。下面列出SRAM、SDRAM、cache运行速度的顺序(从高到低): 1.cache 2.SRAM 3.SDRAM其实,我认为norflash上运行程序的速度最低。 阅读全文
posted @ 2013-09-22 09:02 amanlikethis 阅读(772) 评论(0) 推荐(0)
摘要: 编写一个程序还算容易,但是如果测试程序的正确性,甚至是可靠性就是一个困难的问题了。 目前,我想到的测试方法如下:1.当程序运行出现错误时,我们可以采用“逐步缩小范围法”。 首先,从开始处排除程序,直到找到程序的错误段(可能是一个函数)。然后在对错误段继续从内部检测,排除,直到找到错误原因。 在排错的过程中,可以通过反汇编代码进行分析。2.打印信息法 倘若,开发板的串口和串口程序都没问题,可以通过不断打印信息来检测问题的所在。我们,在每个功能程序段,输出一个提示信息。这样,当工作时,倘若显示出这样的信息,就代表这个程序段基本通过。而如果到了哪个地方停止了,就可以知道问题出现在什么地方。 而且,. 阅读全文
posted @ 2013-09-22 08:57 amanlikethis 阅读(1124) 评论(0) 推荐(0)
摘要: 1.程序代码是编程思想的体现我想程序设计人员在设计程序之初,肯定会有一番思考。思考主要是程序设计的目的,然后是实现目的的方法,最后才是代码的实现。所以,程序代码是编程思想的体现。 分析代码的启示:我们分析程序代码时,可以在看代码之前,想想这个代码要干什么事,然后再去看代码就容易多了。 编程的启示:先思考程序的目的,然后思考程序的算法,画程序流程图,最后编写代码。 2.程序的封装 程序为什么有封装的概念,这是指程序的通用性,是对程序功能的提炼。例如,C语言定义的与硬件无关的函数,这个函数具有一定的功能。不论是在x86平台,还是在arm平台,它都能运行(只不过需要不同的编译器编译)。我们可以把这. 阅读全文
posted @ 2013-09-17 09:36 amanlikethis 阅读(646) 评论(0) 推荐(0)
摘要: C语言中全局变量的定义与声明困扰着许多C语言初学者。本文讲述了全局变量定义与声明的用法,而且本为也将阐述这种用法的内在原理。我们先从两个错误例子引入,以下两个例程都在vc6.0平台上测试。 两种错误例程 1.unresolved external symbol 例子包含两个C文件(test.c)和( 阅读全文
posted @ 2013-09-13 17:18 amanlikethis 阅读(72749) 评论(2) 推荐(5)
摘要: SMOD:该位与串口通信有关。 SMOD=0; 串口方式1,2,3时,波特率正常。 SMOD=1; 串口方式1,2,3时,波特率加倍。GF1,GF0:两个通用工作标志位,用户可以自由使用。 PD:掉电模式设定位。 PD=0 单片机处于正常工作状态。 PD=1 单片机进入掉电(Power Down)模式,可由外部中断或硬件复位模式唤醒,进入掉电模式后,外部晶振停振,CPU、定时器、串行口全部停止工作,只有外部中断工作。 IDL:空闲模式设定位。 IDL=0 单片机处于正常工作状态。 IDL=1 单片机进入空闲(Idle)模式,除CPU不工作外,其余仍继续工作,在空闲模... 阅读全文
posted @ 2013-05-20 18:19 amanlikethis 阅读(734) 评论(0) 推荐(0)
摘要: 51单片机的外设究竟该怎样理解?做以下实验。实验1:外部中断0的实验实验步骤:将一根杜邦线的一端接到P3^2口上,另一端接电源或者地实验程序:#includesbitled=P1^0;voidmian(void){while(1){if(IE0){led=0;}else{led=1;}}}实验结果:当杜邦线另一端接电源时,led灭;当接地时,led就亮结论:无论配置与否,51单片机的外部中断这个外设都在工作着,不可能禁止实验2:定时器0的实验实验程序:#includesbitled=P1^0;voidmain(void){TR0=1;while(1){if(TF0==1){led=0;}}}实 阅读全文
posted @ 2013-05-20 15:03 amanlikethis 阅读(753) 评论(0) 推荐(0)
摘要: AT89S52单片机P3端口有第二功能,如下所示: P3.0 RXD (串行接口输入) P3.1 TXD (串行接口输出) P3.2 INT0 (外部中断0输入) P3.3 INT1 (外部中断1输入) P3.4 T0 (定时/计数器0的外部输入)P3.5 T1 (定时/计数器1的外部输入) P3.... 阅读全文
posted @ 2013-05-20 13:18 amanlikethis 阅读(2508) 评论(0) 推荐(0)
摘要: C语言允许我们定义有符号数和无符号数,例如一个字节的存储空间,我们可以定义成unsigned char,也可以定义成signedchar,但是你知道它们的区别吗?你知道它们是怎样被存储,又怎样被区分处理吗?1.有符号数和无符号数的存储 对于一个字节的存储单元unsigned char的范围为(... 阅读全文
posted @ 2013-05-18 22:46 amanlikethis 阅读(3326) 评论(0) 推荐(0)