min2440专栏
文章平均质量分 81
基于mdk开发的mini2440裸机开发
玖零大壮
这是个还有梦的傻小子
展开
-
一起学mini2440裸机开发(十三)--ADC原理与实验
概述 S3C2440的CMOS模拟数字转换器ADC可以对8通道模拟输入信号进行循环检测,S3C2440的ADC和触摸屏公用一个ADC转换器,所以学习ADC也是学习触摸屏的基础。 S3C2440ADC的主要特性如下: ●分辨率:10位 ●最大转换速率:500KSPS ●微分线性度误差:±1.0 LSB ●积分线性度误差:±2.0 LSB原创 2013-05-27 19:24:40 · 3151 阅读 · 4 评论 -
一起学mini2440裸机开发(十二)--mini2440的串口中断实验
这一节实现利用中断实现串口的中断功能,关于串口的原理我就不再讲述了,如果不明白,就请查看我的另一篇博客 http://blog.csdn.net/mybelief321/article/details/8931064 下面我还是贴出自己的实验代码,我上传到了网站,可以自行下载,下载后,打开工程文档,直接编译后,利用Flash/Dowmload功能下载到nor flash,关于下载到原创 2013-05-27 10:46:55 · 2891 阅读 · 2 评论 -
一起学mini2440裸机开发(十一)--mini2440定时器0中断实验
在前边讲解系统时钟和定时器时,曾给出一个实验,实现的功能是:使用定时器0的功能,使LED每秒钟闪烁一次,当时是使用查询方式实现的,现在使用中断方式实现上述功能。 下图为我的工程文件布局: 下面贴出我的代码,你也可以去这里下载, http://download.csdn.net/detail/mybelief321/5457371 下载下来之后,直接编译,点击Fl原创 2013-05-27 09:49:07 · 2498 阅读 · 1 评论 -
一起学mini2440裸机开发(十)--mini2440外部中断实验
我今天一整天都在试着将TQ2440的那种处理中断的方法(即安装中断向量表)移植到MDK中的mini2440,但是一直没成功,这种方法一直没成功,后来又想,还是先从最简单的开始吧,就是不利用中断向量表,直接像利用51单片机那样的中断一样使用它,但是也没成功。考虑到程序跑飞的可能性,将程序利用MDK中的Download功能下载到了Nor Flash中去,竟然行了,想了想原因,明白是怎么回事了。我原来是原创 2013-05-26 21:18:46 · 4177 阅读 · 7 评论 -
一起学mini2440裸机开发(九)--ARM中断控制系统
ARM处理器程序的执行流程种类 ●正常执行:每执行一条ARM指令,程序计数器PC的值自动加4。这一过程描述了应用程序顺序执行的状态。 ●跳转执行:通过B、BL跳转执行,实现程序在一定范围内的跳转执行。这一过程描述了ARM处理器程序执行过程中的过程调用。 ●中断处理:在应用程序执行过程中,发生中断后,ARM处理器在执行完当前指令后,跳转到上述中断对应的中断处理程序处去执行,执行完中原创 2013-05-26 09:16:51 · 3117 阅读 · 0 评论 -
试图搞懂MDK程序下载到flash(六)--DNW+supervivi+MDK下载到Nand Flash
不容易啊,终于把 将MDK程序下载到我的mini2440开发板上的nand flash的方法找到了,我是利用韦东山老师的那套方法即利用DNW和supervivi下载到nand flash的。当然,只是方法之一,因为我能隐约的感觉到还可以使用MDK直接下载。下面我就将下载到nand flash的方法步骤完整的贴出来。 在讲解方法之前,我还是想说明几点原理,避免知其然而不知其所以然。sup原创 2013-05-21 20:18:58 · 3789 阅读 · 6 评论 -
试图搞懂MDK程序下载到flash(五)--使用MDK中的download直接下载到nor flash
也不知道怎么弄的,今天突然可以使用MDK中的Flash/Download将程序下载到Nor Flash了,像开发51一样方便。现在重新整理一下,将使用MDK中的download功能,将裸机程序下载到nor flash中的步骤写出来。 1、新建一个工程文档,并命名为test 2、编写并添加,源文件main.c uart.c uart.h 这三个文件可以自原创 2013-05-21 14:03:00 · 9583 阅读 · 4 评论 -
试图搞懂MDK程序下载到Flash(四)--生成bin文件下载到Nor Flash
喜讯啊!!下载到flash中的一种实现了啊!!!鸡冻了!终于可以脱机运行了,尽管是下载到了Nor Flash中运行,还没有下载到Nand Flash中运行,但是这也是一个进步了吧,下面详细介绍一下MDK编译的程序下载到Nor Flash运行的步骤。 1、编写程序 我的主程序功能是实现UART的输出功能,工程文档结构图如下: 需要自己编写的文件有三个 main原创 2013-05-20 20:42:20 · 4650 阅读 · 1 评论 -
试图搞懂MDK程序下载到flash(三)--MDK配置选项Linker、Target、Debug的理解分析
在写这一节时,我还是想再重复一下自己写这文章的目的,我的目的就是为了实现将MDK编写的裸机程序可不可以脱机运行,也就是不用调试的方法,因为调试的话程序默认是在SRAM中运行的,掉电丢失。而要脱机运行,就得将程序编译后的文件下载到flash中,最好能是nand flash。如果要下载到nand flash,那么就要编译生成一个bin文件,而不是用axf文件。那么剩下的问题就是,怎么生成一个完整、正确原创 2013-05-20 19:26:32 · 11783 阅读 · 2 评论 -
试图搞懂MDK程序下载到flash(二)--分散加载文件scatter
分散加载文件概念 对于分散加载文件的概念,在《ARM体系结构与编程》书第11章有明确介绍。 分散加载文件(即 scatter file,后缀为 .scf)是一个文本文件,通过编写一个分散加载文件来指定ARM连接器在生成映像文件时如何分配RO、RW、ZI等数据的存放地址。 如果不用 SCATTER文件指定,那么ARM连接器会按照默认的方式来生成映像文件,一般情况原创 2013-05-19 18:09:43 · 7142 阅读 · 7 评论 -
试图搞懂MDK程序下载到Flash(一)--Nand Flash启动流程,加载域和运行域
NAND FLASH启动流程 在这里我先以TQ2440的启动代码分析,因为手上有本书,反正Nand Flash启动流程都是一样的对于mini2440和TQ2440来说。TQ2440的启动代码部分如下: ;**********************************************************************************原创 2013-05-17 17:26:54 · 5855 阅读 · 1 评论 -
一起学mini2440裸机开发(八)--Nand Flash原理与基础实验
其实nand flash的原理我早就会了,也利用韦东山的方法成功运行了,但是利用MDK开发,我碰到了一个难题,那就是怎么从MDK下载到nand flash,我发现我还需要了解很多知识点,估计得好几天,我能力提高的机会来了,完全搞懂之后估计就会有很大的帮助!原创 2013-05-16 21:53:28 · 2120 阅读 · 6 评论 -
一起学mini2440裸机开发(七)--UART高级实验,可变参函数
概述: 在C语言中,使用printf()进行格式化输出非常方便,例如,printf("%d\n",a)可以将a的值以十进制的格式输出,然后换行。printff()函数的原型为:int printf(const char *format,...),在函数参数中的...表示可变参数,即输入参数的个数不确定(例如,printf("%d\n",a)和printf("%d%d\n",a,b)都可以原创 2013-05-16 14:50:28 · 2747 阅读 · 0 评论 -
一起学mini2440裸机开发(六)--UART原理与基础实验
我个人感觉UART也不算是很难,学过单片机的相信都用过UART,在这里还是说说它吧,并且在写基础实验并调试的时候,出现了一个问题,就是我们平时使用jlink调试程序都是基于在sdram中运行的,由于ram的掉电易失性,所以咱们的裸机程序根本就不能脱机工作,也即是说复位之后程序就没有了,当然,我知道可以利用以后学的知识将它下载到NAND Flash中去,这个以后再说。貌似还有一个办法,就是使用mdk原创 2013-05-16 12:34:18 · 4755 阅读 · 0 评论 -
一起学mini2440裸机开发(五)--定时器0的基础实验
本篇文章接上一篇关于定时器原理:http://blog.csdn.net/mybelief321/article/details/8916775实验前的准备 既然是关于定时器的实验,肯定要用到系统时钟,所以一定要保证系统时钟设置好,在这里需要的PCLK为50MHz。第二节分析MDK自带的S3C2440.c可以知道,默认的是不初始化系统时钟(是否选择初始化可以通过修改S3C244原创 2013-05-15 13:47:00 · 2852 阅读 · 0 评论 -
一起学mini2440裸机开发(四)--S3C2440定时器学习
S3C2440定时器原理概述 s3c2440有5个16位定时器,定时器0、1、2和3有脉冲宽度调制(PWM)功能,因此这4个定时器也被称为PWM定时器。定时器4是一个内部的定时器,没有外部输出引脚。 定时器的时钟源是PCLK,定时器工作所需频率并不等于PCLK,还要进一步将PCLK通过内部的分频器分频才能得到。这里也可以看出外部设备所需的工作频率不一定等于它的时原创 2013-05-13 13:56:49 · 4044 阅读 · 0 评论 -
一起学mini2440裸机开发(三)--S3C2440时钟学习
前言 首先,我们应该知道一点,mini2440开发板在没有开启时钟前,整个开发板全靠一个12MHz的外部晶振提供频率来工作运行的,也就是说CPU、内存、UART、ADC等所有需要用到时钟频率的硬件都工作在12MHz下,而S3C2440A可以正常工作在400MHz下,可想而知两者速度相差会有多大了。如果CPU工作在12MHz频率下,开发板的使用效率非常低,所有依赖系统时钟工作的硬件,原创 2013-05-12 13:39:53 · 4354 阅读 · 4 评论 -
一起学mini2440裸机开发(二)--MDK自带的S3C2440.s分析
上一节,咱们在建立工程的时候,默认的是使用MDK自带的启动代码,这些启动代码到底做了什么工作呢?在这里我想探究一下,探究不全没什么事,能看懂个大概就行了。 我先申明一下,其实我并不是头一次学ARM裸机,我先前已经按照韦东山的使用arm-linux-gcc在linux下编译裸机程序的方法走了一遍了,用那个方法的话对以后的uboot移植非常有帮助,但是有一个不方便的就是,使用Linux系统下编原创 2013-05-11 13:39:41 · 4551 阅读 · 6 评论 -
一起学mini2440裸机开发(一)--第一个led灯点亮
开发板:mini2440, NandFlash:K9F2G08U0B 256M大小,CPU:S3C2440A 。 开发环境:MDK4.11 仿真器:Jlink v8 这是我用csdn发表的第一个文章,之前使用过arm-linux-gcc裸机开发mini2440,但是很多函数什么的不能直接调用(我的技术问题),准备重新整理一下ARM裸机,整理好之后准备下一阶段学习。关原创 2013-05-10 20:12:57 · 8789 阅读 · 10 评论