随笔分类 - Z技术(ARM/Embedded)
摘要:uboot使用uboot控制台,倒计时命令: 调试,操作一些硬件setenv printenv saveenvnand erasenand writetftp 20008000 zImagehelp: uboot可以提供哪些命令setenv == set == sete == seten环境变量: ...
阅读全文
摘要:【ARM编程模型】硬件: 电路原理图软件:体系结构, 指令集, 寄存器组【ARM编程技术】汇编/C语言编译, 链接, 烧写和调试windows:MDKlinux :gcc【ARM接口编程】电路原理图datasheet ------> 裸机程序(不带操作系统,直接操作硬件)中断技术初始化程序【ARM基...
阅读全文
摘要:arm-linux-gcc -o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 -Wall 指定产生全部的警告信息 -O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高 -c 表示只要求编译器进行编译,而不要进行链接,生成以源文件的...
阅读全文
摘要:开发环境 硬件平台:FS2410 主机:Ubuntu 12.04 LTSLED灯原理图按键原理图按键的接线资源KSCAN0 -> GPE11 KSCAN1 -> GPG6 KSCAN2 -> GPE13 KSCAN3 -> GPG2 EINT0 -> GPF0 EINT2 -> GPF2 EINT11 -> GPG3 EINT19 -> GPG11程序主要原理这里实现对 K1,K2,K3,K4 这四个键的查询。 主要涉及到K1,K2, K3, K4这四个按键,要用查询的方式进行判断哪个键被按下去了,因此:将EINT11, EINT19设置为输入,
阅读全文
摘要:开发环境1、硬件平台:FS2410(s3c2410)2、主机:Ubuntu 12.04 LTSLED原理图LED的GPIO的配置配置GPFCON寄存器,设置GPF4-7为输出配置GPFDAT,设置LED灯亮与灭主要步骤通过设置GPFCON将GPF4-7设置为输出设置GPFDAT,可以将led灯亮或灭,GPFDAT的相应位置1灯灭,置0灯亮源代码 NAND flash启动关狗 设置栈//start.S.text.global _start_start:#define WATCHDOG 0x53000000 ldr r0, =WATCHDOG //关看门狗 mov r1, #0 ...
阅读全文
摘要:LCD显示器概述——》液晶显示器,LCD为英文 Liquid Crystal Display的缩写,它是一种数字显示技术,可以通过液晶和彩色过滤光源,并在平面面板上产生图像。——》与传统的阴极射线管(CRT)相比,LCD占用空间小、低功耗、低辐射、无闪烁、降低视觉疲劳,具有很大的发展潜力。液晶——》...
阅读全文
摘要:开发环境 (1)硬件平台:FS2410 (2)主机:Ubuntu 12.04FS2410串口的原理图串口UART寄存器配置配置TXD0与RXD0(GPH2、GPH3)设置波特率(UBRDIVn)设置传输格式(ULCONn)选择时钟源与中断方式(UCONn)设置FIFO(UFCONn)设置流控(UMCONn)接收字符和发送字符(UTRSTATn)源代码 //uart.c#include "2410addr.h" void putc(char ch) ...
阅读全文
摘要:基本电路原理——》电压和水压一样,水坝筑得越高水压越高,电流和水流一样,只要在一条渠道上假设渠道宽度深度一致,在渠道各处水流量是一致的,这就是串联电路中电流处处相等的道理。——》如果两条同样的渠道共同向一处供水水量会加倍,即并联电路的汇合处电流是两条(或多条)电路电流之和,这就是基尔霍夫电流节点定律...
阅读全文
摘要:触摸屏概述——》触摸屏并不是人们日常所见的立方体屏幕,它只是覆盖在显示屏表面的一层薄片,其工作原理比较简单,当有触摸笔或其他物体接触到触摸屏时,系统会根据触摸笔点击的图标或按键来接收信息,并作出一些人为设计的响应动作,从而实现人机交互功能。它的主要目的提供方便的人机交互功能,降低智能设备的操作难度,...
阅读全文
摘要:开发环境 1、硬件平台:FS2410 2、主机:Ubuntu 12.04ADC寄存器配置 1、初始化ADC(ADCCON) 设置预分频,预分频因子,选择A/D转换通道,并选择正常模式且启动转换 2、判断转换是否结束(ADCCON[5]) 3、读取转换结果(ADCDATn)串口的初始化 见《串口通信·FS2410》:http://infohacker.blog.51cto.com/6751239/1223137源代码 //adc.c#include "2410addr.h" //头文件,包含寄存器的设置 ...
阅读全文
摘要:移植环境 硬件平台:FS2410 U-Boot版本:u-boot-1.1.6 编译器:arm-linux-gcc version 3.4.1U-Boot主要目录结构 U-Boot的 stage1代码通常放在 cpu/……/start.S文件中,它用汇编语言写成; U-Boot的 stage...
阅读全文
摘要:Preface 之前也发表过关于《Bootloader启动过程分析》的文章,但是内容表达得比较抽象,大多是文字叙述,所以这里从系统和代码的角度来深入分析bootloader的启动过程。 工具:Source Insight 目标:U-Boot-1.1.6 仅留此分析过程,日后再作补充(纯手打也不容易啊...
阅读全文
摘要:内存管理介绍 早期的计算机内存容量非常小,当时的PC主要使用DOS操作系统或者其它操作系统。早期的操作系统由于系统硬件的限制,无法支持内存管理,应用程序占用的空间和程序规模都比较小。随着计算机硬件性能不断提高,程序的处理能力也不断提高,应用程序占用的存储空间不断膨胀。实际上,程序的膨胀速度远远超过...
阅读全文
摘要:功能 裸机程序,实现LCD显示数字时钟主要代码1)背景绘制void Brush_ U32 c){ int x,y ; for ( y = 0 ; y >1; //移位,为判断下一位作准备 } /*汉字右半部分*/ mask=0x80; //从bit7开始判断 buffer=ch[i*2+1]; //提取一行的第二个字节 /*一个字节有8个位,每一位代表字模数据对应的点是否描颜色*/ for...
阅读全文
摘要:小续第一次接触内核的东西,有点小激动啊激动归激动,这实验还是要继续做下去,书上三两句话就带过去的,剩下的就留给我们了,着实考验动手能力啊当编译过内核之后,发现这个过程也不复杂嘛(复杂的是内核的配置),不过对于没接触过的人来说,也能够折腾一段时间的了,所以记下这个过程,其中也有些需要注意的地方,然后给...
阅读全文
摘要:PWM定时器 PWN:脉冲宽度调制 每个定时器都有一个专用的由定时器时钟驱动的16位递减计数器。当递减计数器的计数值达到0的时候,就会产生定时中断请求来通知CPU定时器操作完成。当定时器递减计数器达到0的时候,相应的TCNTBn的值会自动重载到递减计数器中以继续下次操作。 但是,如果定时器停止了,比如在定时器运行时清除TCON中的定时器使能位,TCNTBn的值不会被重载到递减计数器中 TCMPBn的值用于脉冲宽度调制(PWM)。当定时器的递减计数器的值和比较寄存器的值相匹配的时候,定时器控制逻辑将改变输出电平。因此,比较寄存器决定了PWM输出的开关时间。定时吕控制寄存器(TCON) ...
阅读全文
摘要:目的 为了更好地掌握S3C2410中断的原理及中断程序的编写。 内容利用S3C2410的外部中断0和外部中断1实现两个按键功能原理 本次选择的是外部中断EXTINT0和EXTINT11。中断的产生分别来自按钮SB1202和SB1203,当按钮按下时,EXTINT0(对应管脚GPF0)或EXTINT11(对应管脚GPG3)和地连接,输入低电平,从而向CPU发出中断请求。 当CPU受理后,进入相应的中断服务程序,通过超级终端的主窗口显示当前进入的中断号。程序 1 #include "2410addr.h"//这头文件找了好久啊,mdk里面没有,后来在一个实例中提取出来的 2 3
阅读全文
摘要:ARM处理器7种类型异常 按优先级从高到低的排列如下: 复位异常(Reset) 数据异常(Date Abort) 快速中断异常(FIQ) 外部中断异常(IRQ) 预取异常(Prefetch Abort) 软件中断异常(SWI) 未定义指令异常(Underfined instruction)当异常发生时 处理器会把PC设置为一个特定的存储器地址。 这一地址放在被称为向量表(vector table)的特定地址范围内。 向量表的入口是一些跳转指令,跳转到专门处理某个异常或中断的子程序。 当异常发生时,分组寄存器r14和SPSR用于保存处理器状态。ARM异常处理器模式 每一...
阅读全文
摘要:Preface 把学校的事忙得差不多了,又可以搞这板子了。。。 minicom的使用操作,前面已经写得很详细,但是下载程序到开发板的过程中,还是有些地方是需要注意的,另外第一次接触,少不了会遇上各种问题Step1 连结好开发板与PC机的串口线与USB下载线Step2 给板子上电,在minicom中...
阅读全文
摘要:功能 LCD显示字汉字,字符和图片说明 汉字,字符和图片需要用相应的取模软件得到相应的c文件,然后包含到工程中主要代码1)绘制背景void Brush_ U32 c){ int x,y ; for( y = 0 ; y >1; } mask=0x80; //掩码 buffer=ch[i*2+1]; //提取一行的第二个字节 for(j=0;j>1; } }}3)字符绘制void ...
阅读全文
浙公网安备 33010602011771号