ARM9硬件接口学习之二_RTC
RTC电路准详解
RTC电路准详解如图:基准频率32.768kHz为南桥提供基准Real time clock(简称RTC)。
无此频率,主机板无法上电,即按power键无任何反映。
C1,C2为调节RTC所用,计算公式较为复杂,不再赘述。
蓝圈内的两个电容也比较重要,出现问题,易导致开机出现Cksum error的提示信息。
尤其上上面蓝圈的那个。
RTCRST#为Intel主板Clear CMOS的罪魁祸首,将此信号拉低,对应南桥的一个标示位会被置位(RTC_PWR_STS D31:F0:A4 bit[2]),BIOS在Post过程中,会去读取此位,发现置位,即按Fail safe值启动,Post 7F时提示cksum error的信息。
VCCRTC为一路电源了,该电源主要用在保存关机状态下的信息,比如键盘开机密码(SuperI/O)、CMOS RAM(南桥)等。
如此电源失去,造成信息丢失,亦会出现cksum error的信息。
VCCRTC有两路来源,第一为VCCSus3_3,这个电源来自电源的+5SB,同时可供网卡使用;第二为VBAT,即电池。
那么他们分别在什么时候为VCCRTC供电呢?大家可看那里的2个二极管,这里的二极管主要是用其单项导电特性,当未插电源线时,VCCSus3_3这路没电,VBAT使二极管导通,提供VCCRTC。
当接上电源线时,VCCSus3_3产生,电压一般为3.3V,而VBAT电压一般为<3.2V,因此,VCCsus3_3提供VCCRTC。
电池使用年限的计算方法:图示电路表A处,串联一个电流表。
在断220V状态下测量起电流为 I(注意测量时电流表量程的选择,要先用高档,再用低档,避免电流表损坏)。
一般CR2032的电量为170mAh(全新),那么:170,000uAh / I = 小时。
比如,你测量的I为6uA(标准应为小于10uA,越小越好),则: 170,000uAh/ 6 uA = 28,333H = 3.2 Year。
SeaARM9开发系统硬件说明书
ADDRESS 101 Upper Cross Street #13-13 People's Park Center SINGAPORE 058357 SeaARM9开发系统硬件说明书西安西雅图数码科技有限公司ADDRESS 101 Upper Cross Street #13-13 People's Park Center SINGAPORE 058357目录1. SeaARM9 开发板 (3)1.1 系统概述 (3)1.2 SeaARM9 开发板概述 (3)1.3 SeaARM9 电路说明 (4)1.4 SeaARM9 开发板系统设置 (4)1.5 SeaARM9 开发板外围扩展口说明 (5)2. 工具链的安装及软件设置 (8)3. 开发板实验 (10)3.1 基础实验: (10)熟悉LINUX开发环境 (10)多线程应用程序设计 (10)串行端口程序设计 (10)A/D接口实验 (10)D/A接口实验 (10)简单的嵌入式WEB服务器实验 (10)步进电机实验 (10)直流电机实验 (10)3.2 图形界面应用程序设计 (10)安装与建立QT桌面运行环境 (10)QT简介与QT/E的交叉编译 (10)建立QTOPIA虚拟平台 (10)QTOPIA在2410上的移植 (10)3.2 内核与根文件系统实验 (10)LINUX内核移植与编译实验 (10)根文件系统实验 (10)3.4 驱动模块实验 (10)动态加载模块实验 (10)步进电机驱动实验 (10)触摸屏驱动 (10)LCD显示驱动实验 (11)音频驱动及应用 (11)USB鼠标应用 (11)IDE硬盘读写实验 (11)3.5 扩展模块实验 (11)SD卡使用实验 (11)GPS通讯实验 (11)GPRS通讯实验 (11)红外通讯实验 (11)ADDRESS 101 Upper Cross Street #13-13 People's Park Center SINGAPORE 058357 1. SeaARM9 开发板1.1 系统概述SeaARM9 是针对S3C2410 的高性能开发平台,并适合用来作为开发高性能手持式以及便携式智能设备或终端。
ARM9中控系统调试说明
ARM9中控系统调试目录概述 (1)一、硬件安装 (2)1.1外围设备安装 (2)1.1.1灯光 (2)1.1.2调光 (4)1.1.3调色 (4)1.1.4插座 (5)1.1.5窗帘电机 (5)1.1.6摄像头 (6)1.1.7安防探测器 (7)1.2中控主机安装 (7)1.2.1主机接口概况 (7)1.2.2主机安装 (7)二、软件安装 (8)2.1获取途径 (8)2.2安装平台 (8)2.3 PC客户端打不开解决方式(选看) (8)三、客户端软件的登录 (10)3.1内网登录 (10)3.1.1 PC客户端 (10)3.1.2安卓/iOS客户端 (11)3.2外网登录 (12)3.2.1添加端口映射 (12)3.2.2 PC客户端 (13)3.2.3安卓/iOS客户端 (14)3.2.4外网无法登录解决方法 (15)四、主机参数配置 (15)4.1主机IP修改(选看) (15)4.1.1将IP地址修改为192.169.1.xxx (16)4.1.2将IP地址修改为192.1610.x.66 (18)4.2修改主机端口(选看) (20)4.3修改主机日期时间 (20)4.4用户管理 (20)4.4.1获取用户 (21)4.4.2添加用户 (21)4.4.3编辑用户 (21)4.4.4删除用户 (21)4.5主机的复位 (21)4.6数据库文件的备份与还原(重要) (22)4.6.1备份方法 (22)4.6.2还原方法 (22)五、主机基本配置 (23)5.1房间配置 (23)5.1.1添加房间 (23)5.1.2删除房间 (24)5.1.3编辑房间 (24)5.2设备配置 (24)5.2.1添加设备 (25)5.2.2编辑设备 (26)5.2.3删除设备 (28)5.2.4电器设备新增指令 (29)5.3数据同步 (30)5.3.1 PC客户端同步 (30)5.3.2安卓/iOS客户端同步 (30)5.3.3故障排除 (32)六、设备对码 (33)6.1灯光对码 (33)6.3调色灯对码 (34)6.3.1灯带对码 (34)6.3.2灯球对码 (35)6.4插座对码 (36)6.5窗帘控制器对码 (36)6.5.1双向外置窗帘对码 (36)6.5.2双向内置窗帘对码 (37)6.6红外转换器对码 (37)6.6.1电视对码 (37)6.6.2空调对码 (40)6.7机械手对码 (42)6.8楼宇对讲分机对码 (43)七、音乐 (43)八、场景 (44)8.1添加场景 (44)8.2修改场景 (45)8.3删除场景 (45)8.4场景面板对码 (45)九、定时器 (46)9.1添加定时器 (46)9.2编辑定时 (47)9.3删除定时 (47)十、监控 (47)10.1配置摄像头 (47)10.2密码修改 (51)十一、安防 (51)11.1添加探测器 (52)11.2删除探测器 (52)11.3修改探测器 (53)11.5探测器的联动 (53)11.6手机报警推送设置 (53)11.7探测器的触发详解 (54)十二、智能锁 (54)12.1 GI、GZ系列指纹锁 (55)12.1.1软件配置 (55)12.1.2对码步骤 (56)12.2 JR系列指纹锁 (57)12.2.1软件配置 (57)12.2.2管理者密码设定 (57)12.2.3对码步骤 (57)概述欢迎使用我司产品!公司的产品涵盖智能家居生活的方方面面,包括远程控制设备、本地无线控制设备、各类控制器以及控制终端。
Cadence中的allegro软件的sub-drawing的用法
Cadence中的allegro软件的sub-drawing的用法。
注意事项:1.在导入的brd文件中,需要把导入的器件删除掉。
2.如果需要导入器件的网络号和位号,需要在brd文件中有对应网络好和位号。
3.导出的brd文件的板框坐标,和导入brd文件的板框坐标必须完全一致。
Export sub-drawing功能:1.首先按下面步骤进入sub-drawing功能:2.然后在右边find和option的选项框中,选中需要sub-drawing的内容。
见下图:3.然后在工作区框选中需要sub-drawing的器件,然后打入坐标x 0 0。
回车即可出现保存对话框,然后保存到和import sub-drawing的同一目录中。
Import sub-drawing功能。
1.进入import sub-drawing功能:点击后进入一个对话框,选中需要sub-drawing的文件,ok。
2.在右边option中勾选复选项。
然后打入坐标:x 0 0 ok即可QQ:917603226,danpianjikaifa@学习视频,电子元件选型指导,PLC 学习指导以及PLC 和DCS 周边产品开发TQ2440开发大全下载linux-2.6.35.3在TQ2440上移植1--建立自己的板子.pdf/source/3227941linux在TQ2440上移植2--Nandflash驱动,MTD分区.pdf/source/3227943linux在TQ2440上移植3--yaffs2+文件系统移植.pdf/source/3227944linux在TQ2440上移植4--yaffs2文件系统制作.pdf/source/3227947linux在TQ2440上移植5--移植串口传输协议.pdf/source/3227948linux在TQ2440上移植6--完善串口驱动.pdf/source/3227950linux在TQ2440上移植7--完善实时时钟RTC.pdf/source/3227951linux在TQ2440上移植8--启动看门狗+.pdf/source/3227965linux在TQ2440上移植9--添加触摸屏.pdf/source/3227952linux在TQ2440上移植10--完善网卡驱动.pdf/source/3227955linux在TQ2440上移植11--完善声卡驱动.pdf/source/3227956linux在TQ2440上移植12--完善SDMMC卡驱动.pdf/source/3227958bootloader编写指南.pdf/source/3227040第 1 页U-boot1.1.6的移植step by step(TQ2440).pdf/source/3227044U-boot1[1][1][1].1.6的移植(TQ2440).pdf/source/3227049/source/3227049U-BOOT-2010.06移植到TQ2440.pdf/source/3227052uboot讲义.pdf/source/3227054uboot阶段1(汇编部分)详细分析.pdf/source/3227057uboot使用说明.pdf/source/3227058Uboot学习笔记.pdf/source/3227060U-boot源代码分析.pdf/source/3227062Uboot源码阅读笔记.pdf/source/3227064在uboot上制作logo的实验.ppt/source/3227067UBOOT之Makefile详解.doc/source/3227068基于TQ2440和Qt的Mp3设计.doc/source/3227074ARM9硬件接口学习之一_WatchDog.pdf/source/3229021ARM9硬件接口学习之二_RTC.pdf/source/3229025.第 2 页ARM9硬件接口学习之三_GPIO.pdf/source/3229026ARM9硬件接口学习之四_CLOCK.pdf/source/3229028ARM9硬件接口学习之五_UART.pdf/source/3229030tq2440ARM学习1/source/3229044ARM学习3流水灯实验.pdf/source/3229048ARM学习4在ADS1.2中新建自己的工程.pdf/source/3229051ARM学习5实现电子相框功能及LCD屏显试验中两个问题/source/3229053ARM学习6LCD屏显实现科比投篮的动画.pdf/source/3229057ARM学习7对于科比投篮实验的轨迹分析.pdf/source/3229058ARM学习8对于画线函数Glib_Line算法的研究.pdf/source/3229059ARM学习14S3C2440 IO口的总结.pdf/source/3229060[原创]自己动手编写嵌入式Bootloader之(1).pdf/source/3230747[原创]自己动手编写嵌入式Bootloader之(2).pdf/source/3230136[原创]自己动手编写嵌入式Bootloader之(3).pdf/source/3230137uC_OS-II实验指导书.pdf第 3 页/source/3231958Ucos_II2.52 源码中文译注.pdf/source/3231960UCOS-II API 参考手册.pdf/source/3231962第 4 页TQ2440裸机开发试验大全TQ2440裸机开发试验之ADC/source/3311703TQ2440裸机开发试验之ebook/source/3311704TQ2440裸机开发试验之interrupt/source/3311708TQ2440裸机开发试验之Mmu_Nand/source/3311761TQ2440裸机开发试验之Mmu_Nand/source/3311763TQ2440裸机开发试验之Nand_1/source/3311765TQ2440裸机开发试验之power_stop/source/3311770TQ2440裸机开发试验之PWM/source/3311772TQ2440裸机开发试验之RTC_LCD/source/3311777TQ2440裸机开发试验之Touch_Panel/source/3311778TQ2440裸机开发试验之UART/source/3311780TQ2440裸机开发试验之write_bios/source/3311783第1篇基础篇第1章Linux简介1.1 Linux系统概述1.2 Linux图形界面操作1.3 Linux字符界面操作1.4 Shell脚本编程基础第1章Linux简介.pdf/source/3312215新手学linux C编程第1章视频/v_show/id_XMjcwMDAxNjYw.html 第2章C语言基础2.1 C语言概述2.2 数据类型、运算符和表达式2.3 基本语句2.4 数组2.5 预处理第2章C语言基础.pdf/source/3312221新手学linux C编程第2章配套源码,可成功运行.rar /source/3312253新手学linux C编程第2章视频/v_show/id_XMjcwMDAxODY0.html第3章指针、函数及自定义数据类型3.1 指针.3.2 函数3.3 结构体、共用体和枚举第3章指针、函数及自定义数据类型.pdf/source/3312229新手学linux C编程第3章配套源码,可成功运行.rar /source/3312254新手学linux C编程第3章视频/v_show/id_XMjcwMDAyMTAw.html第4章数据结构4.1 线性表4.2 栈4.3 队列4.4 二叉树4.5 查找4.6 排序第4章数据结构.pdf/source/3312230新手学linux C编程第4章配套源码,可成功运行.rar /source/3312255第5章文本编辑器5.1 vi编辑器的基本使用5.2 vi编辑器之程序编辑5.3 emacs编辑器的基本使用第5章文本编辑器.pdf/source/3312231新手学linux C编程第5章视频/v_show/id_XMjcwMDA0ODI4.html第6章GCC编译器6.1 GCC简介6.2 GCC的安装6.3 GCC常用选项第6章GCC编译器.pdf/source/3312234新手学linux C编程第6章配套源码,可成功运行.rar /source/3312256新手学linux C编程第6章视频/v_show/id_XMjcwMDA1OTA4.html第7章调试工具7.1 GDB简介及安装7.2 GDB常用命令7.3 GDB调试实例第7章调试工具.pdf/source/3312235新手学linux C编程第7章视频/v_show/id_XMjcwMDA2MDI0.html第9章LinuxC基本应用9.1 字符串操作9.2 数据转换9.3 内存分配与释放9.4 时间和日期9.5 其他应用第9章Linux C基本应用.pdf/source/3312239新手学linux C编程第9章视频/v_show/id_XMjcwMDA2Mjk2.html第10章文件系统缔程10.1 Linux文件系统简介10.2 文件的基本操作10.3 文件的属性10.4 目录文件的操作第10章文件系统编程.pdf/source/3312240新手学linux C编程第10章配套源码,可成功运行.rar /source/3312260新手学linux C编程第10章视频/v_show/id_XMjcwMDA2NDMy.html第11章标准输入输出11.1 标准输入输出的基本操作11.2 非格式化输入输出11.3 格式化输入输出第11章标准输入输出.pdf/source/3312242新手学linux C编程第11章配套源码,可成功运行.rar /source/3312261新手学linux C编程第11章视频/v_show/id_XMjcwMDA2NTYw.html第12章进程操作12.1 进程的概念12.2 Linux进程12.3 进程创建与控制12.4 守护进程第12章进程操作.pdf/source/3312246新手学linux C编程第12章配套源码,可成功运行.rar /source/3312263第13章进程间通信13.1 管道13.2 信号13.3 消息队列13.4 信号量13.5 共享内存第13章进程间通信.pdf/source/3312247新手学linux C编程第13章配套源码,可成功运行.rar /source/3312266新手学linux C编程第13章视频/v_show/id_XMjcwMDA3NDU2.html第14章多线程编程14.1 线程的基本概念14.2 线程的基本操作14.3 线程的同步第14章多线程编程.pdf/source/3312248新手学linux C编程第14章配套源码,可成功运行.rar /source/3312268新手学linux C编程第14章视频/v_show/id_XMjcwMDA3NTU2.html第15章网络编程15.1 网络基础知识15.2 套接字编程基础15.3 服务器模型15.4 域名系统第15章网络编程.pdf/source/3312249新手学linux C编程第15章配套源码,可成功运行.rar /source/3312269新手学linux C编程第15章视频/v_show/id_XMjcwMDA4ODky.html第16章Linux GUI编程16.1 GTK+/Gnome开发简介16.2 常用GTK+构件16.3 GUI生成器Glade第16章Linux GUI编程.pdf/source/3312250新手学linux C编程第16章配套源码,可成功运行.rar/source/3312270新手学linux C编程第16章视频/v_show/id_XMjcwMDA5MTAw.html第17章案例1:Linux命令实现17.1 功能与参数介绍17.2 主函数代码分析17.3 其他函数代码分析第17章案例1:Linux命令实现.pdf/source/3312251新手学linux C编程第17章配套源码,可成功运行.rar /source/3312271新手学linux C编程第17章视频/v_show/id_XMjcwMDA5MjI4.html第18章案例2:客户端/服务器端程序18.1 服务器端程序设计18.2 客户端程序设计第18章案例2:客户端.pdf/source/3312252新手学linux C编程第18章配套源码,可成功运行.rar /source/3312273新手学linux C编程第18章视频/v_show/id_XMjcwMDA5Mzc2.htmlallegro使用经验大全allegro16[1].3版之建立板框(很精彩的图文解释).pdf/source/3313999allogro布线及检查规则设置.pdf/source/3314028allegro中怎么样画原形的板框!.pdf/source/3314027Allegro中如何导入DXF文件.pdf/source/3314024Allegro中丝印及文字的调整管理技巧.pdf/source/3314025allegro怎么样复制板框到另外一块中.pdf/source/3314022Allegro修改元件封装管脚序号.pdf/source/3314020allegro导出dxf文件的方法与步骤.pdf/source/3314018allegro板框设置方法.pdf/source/3314015Allegro 电源,地层分割方法.pdf/source/3314011allegro 导入DXF时/source/3314009allegro allegro使用汇总.pdf/source/3314001怎样在ALLEGRO PCB中修改Net及添加Net.pdf/source/3314037在用ALLEGRO自作PCB时出现过过孔上焊盘而不报错的现象.pdf /source/3314034如何在allegro中更换元件封装.pdf/source/3314032如何看到pin number,并修改它.pdf/source/3314030Cadence中的allegro软件的sub-drawing的用法.pdf/source/3314029allogro布线及检查规则设置.pdf/source/3314028第 1 页做C++的朋友过来看看了啊WINDOWS核心编程.rar/source/3314308vs2008中文教程.rar/source/3314303Visual C++技术内幕第5版.rar/source/3314299MFC深入浅出.rar/source/3314291C++高级参考手册/source/3314289C++Primer第四版中文版(电子版).rar/source/3314286C#完全手册.pdf/source/3314282第 1 页。
RTC模块
RTC(Real-Time Clock)实时时钟为操作系统提供了一个可靠的时间,并且在断电的情况下,RTC实时时钟也可以通过电池供电,一直运行下去。
RTC通过STRB/LDRB这两个ARM指令向CPU传送8位数据(BCD码)。
数据包括秒,分,小时,日期,天,月和年。
RTC实时时钟依靠一个外部的32.768Khz的石英晶体,产生周期性的脉冲信号。
每一个信号到来时,计数器就加1,通过这种方式,完成计时功能。
RTC实时时钟有如下一些特性:1,BCD数据:这些数据包括秒、分、小时、日期、、星期几、月和年。
2,闰年产生器3,报警功能:报警中断或者从掉电模式唤醒4,解决了千年虫问题(详见/view/9349.htm)5,独立电源引脚RTCVDD6,支持ms中断作为RTOS内核时钟7,循环复位(round reset)功能如图,RTC实时时钟的框架图,XTIrtc和XTOrtc产生脉冲信号,即外部晶振。
传给2^15的一个时钟分频器,得到一个128Hz的频率,这个频率用来产生滴答计数。
当时钟计数为0时,产生一个TIME TICK中断信号。
时钟控制器用来控制RTC实时时钟的功能。
复位寄存器用来重置SEC和MIN寄存器。
闰年发生器用来产生闰年逻辑。
报警发生器用来控制是否产生报警信号。
1,闰年产生器:闰年产生器可以基于BCDDATE,BCDMON,BCDYEAR决定每月最后一天的日期是28、29、30、31.一个8位计数器只能表示两位BCD码,每一位BCD码由4位表示。
因此不能支持。
因此不能决定00年是否为闰年,例如不能区别1900和2000年。
RTC模块通过硬件逻辑支持2000年为闰年。
因此这两位00指的是2000,而不是19002,后备电池:即使系统电源关闭,RTC模块可以由后备电池通过RTCVDD引脚供电。
当系统电源关闭时,CPU和RTC的接口应该被阻塞,后备电池应该只驱动晶振电路和BCD计数器,以消耗最少的电池。
EL-NC2100-ARMTFT挂箱(ARM9)说明书分析
目录第1章EL-TAB-ARM-II实验系统的资源介绍 (1)第2章基于ARM系统资源的实验 (19)实验一ADS1.2开发环境创建与简要介绍 (20)实验二基于ARM的汇编语言程序设计简介 (28)实验三基于ARM的C语言程序设计简介 (33)实验四基于ARM的硬件BOOT程序的基本设计 (38)实验五ARM的I/O接口实验 (43)实验六ARM的中断实验 (49)实验七ARM的DMA实验 (54)实验八模拟输入输出接口的实验 (59)实验九键盘接口和七段数码管的控制实验 (61)实验十LCD的显示实验 (63)实验十一触摸屏实验 (76)实验十二音频录放实验 (84)第3章基于uCOSII操作系统的ARM系统实验 (91)实验一uCOSII的内核在ARM处理器上的移植实验 (91)实验二基于uCOSII的串口驱动编写实验 (101)实验三基于uCOSII的LCD驱动编写实验 (106)实验四基于uCOSII的键盘驱动编写实验 (109)实验五基于uCOSII的小型GUI的应用程序编写实验 (112)第4章基于linux操作系统的ARM系统实验 (128)实验一Linux的实验环境的搭建 (128)实验二BootLoader引导程序 (134)实验三linux的移植、内核、文件系统的生成与下载 (140)实验四linux驱动程序的编写 (148)实验五linux应用程序的编写 (154)实验六基于linux的键盘驱动程序的编写 (156)实验七基于linux的LCD驱动程序的编写 (164)实验八基于linux的键盘应用程序的编写 (171)实验九基于linux的基本绘图应用程序的编写 (174)实验十基于linux的跑马灯应用程序的编写 (180)实验十一利用实验箱上网的实验 (182)实验十二USB播放mp3的实验 (183)第1章 EL-TAB-ARM-II实验系统的资源介绍硬件资源概述EL-TAB-ARM-II型教学实验系统属于一种综合的教学实验系统,它是集学习、应用编程、开发研究于一体ARM实验教学系统。
ARM9芯片适用于超高频读写器的PIE编码以及MILLER2解码的实现方式
ARM9芯片适用于超高频读写器的PIE编码以及MILLER2解码的实现方式普通的UHF读写器主控芯片使用FPGA较多,其优点是FPGA对时序逻辑处理速度快,使用HDL语言很容易实现协议的编码与解码,但FPGA芯片本身很少具备串口、网口等通信接口模块,功能扩展较麻烦。
由于ARM9芯片集成了很多扩展接口,同时进行操作系统移植等更高层次的设计也变得很容易,但对时序逻辑处理较难。
因而本文提出了基于ARM9的UHF RFID读写器基带编解码方法,并加以实现。
1 基本原理UHF RFID国际标准协议规定读写器到电子标签的通信应采用DSBASK、SSBASK或者PRASK调制方式。
本文使用ARM9芯片S3C2440的PWM(脉宽调制)控制模块进行PIE编码,通过编码信号控制射频开关实现OOK调制。
电子标签接收到命令后反向散射副载波应答,经过射频模块的天线接收后被解调电路还原成MILLER2数据。
构造MILLER2解码状态机,使用S3C2440的外部中断对MILLER2时序序列进行上升沿捕捉,捕捉到的两次中断的时间间隔作为状态机输入,进而解调出标签反射回来的数据。
系统的硬件框图如图1所示。
读写器射频模块的工作流程为:发送命令时,PIE编码电平控制射频芯片开关,当开关开启时输出射频载波,关闭则不输出,以达到OOK调制载波的目的。
接收机采用零中频接收机方案,直接对天线接收到的标签反向散射信号进行解调,解调完毕得到相位相差90的I、Q两路信号,通过差分放大器放大处理后,输出到比较器,经过比较后电路输出MILLER2编码时序信号。
2 PIE编码2.1 PIE码简介EPC GNE2协议规定UHF读卡器向标签发送命令时,数据应采用PIE编码。
PIE码通过高低电平的时间长度不同来规定数据是1还是0。
协议使用Tari代表数据0,时间长度在6.25~25s范围内,容差为1%,数据1的宽度在为1.5Tari~2.5Tari,如图2所示。
北航ARM9嵌入式系统实验实验三uCOS-II实验
北航ARM9嵌⼊式系统实验实验三uCOS-II实验实验三 uCOS-II实验⼀、实验⽬的在内核移植了uCOS-II 的处理器上创建任务。
⼆、实验内容1)运⾏实验⼗,在超级终端上观察四个任务的切换。
2)任务1~3,每个控制“红”、“绿”、“蓝”⼀种颜⾊的显⽰,适当增加OSTimeDly()的时间,且优先级⾼的任务延时时间加长,以便看清三种颜⾊。
3)引⼊⼀个全局变量BOOLEAN ac_key,解决完整刷屏问题。
4)任务4管理键盘和超级终端,当键盘有输⼊时在超级终端上显⽰相应的字符。
三、预备知识1)掌握在EWARM 集成开发环境中编写和调试程序的基本过程。
2)了解ARM920T 处理器的结构。
3)了解uCOS-II 系统结构。
四、实验设备及⼯具1)2410s教学实验箱2)ARM ADS1.2集成开发环境3)⽤于ARM920T的JTAG仿真器4)串⼝连接线五、实验原理及说明所谓移植,指的是⼀个操作系统可以在某个微处理器或者微控制器上运⾏。
虽然uCOS-II的⼤部分源代码是⽤C语⾔写成的,仍需要⽤C语⾔和汇编语⾔完成⼀些与处理器相关的代码。
⽐如:uCOS-II在读写处理器、寄存器时只能通过汇编语⾔来实现。
因为uCOS-II 在设计的时候就已经充分考虑了可移植性,所以,uCOS-II的移植还是⽐较容易的。
要使uCOS-II可以正常⼯作,处理器必须满⾜以下要求:(1)处理器的C编译器能产⽣可重⼊代码可重⼊的代码指的是⼀段代码(如⼀个函数)可以被多个任务同时调⽤,⽽不必担⼼会破坏数据。
也就是说,可重⼊型函数在任何时候都可以被中断执⾏,过⼀段时间以后⼜可以继续运⾏,⽽不会因为在函数中断的时候被其他的任务重新调⽤,影响函数中的数据。
(2)在程序中可以打开或者关闭中断在uCOS-II中,可以通过OS_ENTER_CRITICAL()或者OS_EXIT_CRITICAL()宏来控制系统关闭或者打开中断。
这需要处理器的⽀持,在ARM920T的处理器上,可以设置相应的寄存器来关闭或者打开系统的所有中断。
嵌入式系统与接口技术-复习资料
一、单项选择题1. 下面哪个系统属于嵌入式系统( D )A、“天河一号”计算机系统B、联想T400笔记本计算机C、联想S10上网本D、苹果IPhone手机2. 下面关于哈佛结构描述正确的是( A )A、程序存储空间与数据存储空间分离B、存储空间与IO空间分离C、程序存储空间与数据存储空间合并D、存储空间与IO空间合并3. 下面哪一种工作模式不属于ARM特殊模式的是( A )A、用户模式B、管理模式C、软中断模式D、FIQ模式4. 下面哪个系统不属于嵌入式系统( D )A、MP3播放器B、GPS接收机C、“银河玉衡”核心路由器D、“天河一号”计算机系统5. A RM(Advanced RISC Machines)既可以认为是一个公司的名字,也可以认为是对一种微处理器体系结构的通称。
1990年11月ARM公司成立于英国剑桥,设计了大量高性能、廉价、耗能低的( A )处理器。
A.RISCB.CISCC.MISCD.SISC6. 在计算机体系结构中,( C )表示每条计算机指令执行所需的时钟周期。
A.时钟周期(节拍)B.机器周期C.CPID.总线周期7. 下面异常中,优先级最高的是( B )。
A.数据中止B.复位C.未定义指令D.预取中止8. ( B )指令集支持ARM核所有的特性,具有高效、快速的特点。
A.ARMB.ThumbC.MicsD.AAC9. C ache结构中,数据和指令都放在同一个Cache中,称为( A )。
A.普林斯顿结构B. 梅普结构C.哈佛结构D.哈林结构10. 关于ARM处理器的异常描述不正确的是( C )A. 复位属于异常B. 除数为0会引起异常C. 所有异常都要返回D. 外部中断会引起异常11. ( C )是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。
在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用。
arm9 天嵌tq2416核心板硬件资料
心板具有极佳的电气性能和抗干扰性能,使S3C2416稳定工作于400MHz主
频(DDR数据和CLK信号达到266MHz)。众多的特性使用户能够充分地进 行扩展设计和应用。
系统参数
CPU主频
DDR Nand Flash 指示灯
ARM926EJ内核,400MHz系统频率;
64MB DDR2 SDRAM内存 256M Bytes (256M~2G可选) 1个红色电源指示灯 结构参数
Pin_139
SD0_CDn
EINT1/GPF1 EINT0/GPF0 EINT1/GPF1 SD0_CLK/GPE5 SD0_CMD/GPE6 SD0_DAT0/GPE7 SD_Card 0
Pin_140
Pin_141 Pin_142 Pin_143 Pin_144 Pin_145 Pin_146 Pin_147 Pin_148 Pin_149 Pin_150 Pin_151 Pin_152 Pin_153 Pin_154 Pin_155 Pin_156
NTRST NRESET TDO TDI TCK TMS RXD2/GPH5 TXD2/GPH4 RXD1/GPH3 TXD1/GPH2 RXD0/GPH1 TXD0/GPH0 nRTS0/GPH9 nCTS0/GPH8 UART2 JTAG
Pin_31
Pin_32 Pin_33 Pin_34 Pin_35 Pin_36 Pin_37 Pin_38 Pin_39
SD0_WPn
SD0_CDn SD0_CLK SD0_CMD SD0_DAT0 SD0_DAT1 SD0_DAT2 SD0_DAT3 GPC5 GPC6 GPC7 WAITN CSn1 CSn2 CSn3 CSn4 CSn5
ARM体系结构及常用接口简介解析
•
进入ARM状态:
执行BX指令,并设置操作数寄存器的状态(位[0]) 为0。 – 进入异常时,将PC放入异常模式链接寄存器中,从异 常向量地址开始执行也可进入ARM状态
–
ARM微处理器:处理器工作状态
• Thumb-2 :增加了混合模式能力 – 定义了一个新的32-bit指令集能在传统的 16-bit指令运行的Thumb状态下同时运行。 – 这样能在一个系统中更好地平衡ARM和 Thumb代码的能力,使系统能更好地利 用ARM级别的性能和Thumb代码的密度 的优势
ARM异常处理
异常向量表(Exception Vectors)
地 址 0x0000,0000 0x0000,0004 0x0000,0008 0x0000,000C 0x0000,0010 0x0000,0014 0x0000,0018 0x0000,001C 复位 未定义指令 软件中断 中止(预取指令) 中止(数据) 保留 IRQ FIQ 异 常 进入模式 管理模式 未定义模式 管理模式 中止模式 中止模式 保留 IRQ FIQ
13
ARM920T系统结构分析
ARM7TDMI
Instruction Fetch ThumbARM decompress ARM decode Reg Select
Reg Read
Shift
ALU
Reg
Write
FETCH
DECODE
EXECUTE
ARM9TDMI
Instruction Fetch ARM or Thumb Inst Decode Reg Reg Decode Read Shift + ALU Memory Access Reg Write
3
linux在TQ2440上移植7--完善实时时钟RTC
关于平台驱动打开arch/arm/mach-s3c2440/mach-smdk2440.c我们看到最后有MACHINE_START(S3C2440, "SMDK2440")/* Maintainer: Ben Dooks <ben-linux@> */.phys_io = S3C2410_PA_UART,.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,.boot_params = S3C2410_SDRAM_PA + 0x100,.init_irq = s3c24xx_init_irq,.map_io = smdk2440_map_io,.init_machine = smdk2440_machine_init,.timer = &s3c24xx_timer,MACHINE_END再跟踪到smdk_machine_init函数static void __init smdk2440_machine_init(void){s3c24xx_fb_set_platdata(&smdk2440_fb_info);s3c_i2c0_set_platdata(NULL);platform_add_devices(smdk2440_devices,ARRAY_SIZE(smdk2440_devices)); //2440平台驱动smdk_machine_init(); //里面会引用到S3C系列通用平台驱动}上面蓝色的结构体如下:static struct platform_device *smdk2440_devices[] __initdata = {&s3c_device_ohci,&s3c_device_lcd,&s3c_device_wdt,&s3c_device_i2c0,&s3c_device_iis,};再跟踪smdk_machine_init(); 位于 arch/arm/plat-s3c24xx/common-smdk.cvoid __init smdk_machine_init(void){if (machine_is_smdk2443())smdk_nand_info.twrph0 = 50;s3c_nand_set_platdata(&smdk_nand_info);platform_add_devices(smdk_devs, ARRAY_SIZE(smdk_devs));s3c_pm_init();}上面紫色的结构体如下:/* devices we initialise */static struct platform_device __initdata *smdk_devs[] = {&s3c_device_nand,&s3c_device_sdi,};//------------------------------华丽的分割线------------------------------------------------------------------------------------1、RTC(实时时钟)已经是平台设备了,linux-2.6.35.3对RTC驱动也非常完善,平台设备仍在arch/arm/mach-s3c2440/mach-smdk2440.c文件里,结构体如下static struct platform_device *smdk2440_devices[] __initdata = {&s3c_device_ohci,&s3c_device_lcd,&s3c_device_wdt,&s3c_device_i2c0,&s3c_device_iis,&s3c_device_rtc,};下面是配置选项make menuconfig命令后配置Devices Drivers --->Real Time Clock--->............(略)2、在板子控制台设置时间命令[root@Timo /]# date --helpBusyBox v1.17.2 (2010-08-24 16:58:04 CST) multi-call binary.Usage: date [OPTIONS] [+FMT] [TIME]Display time (using +FMT), or set timeOptions:[-s,--set] TIME Set time to TIME-u,--utc Work in UTC (don't convert to local time)-R,--rfc-2822 Output RFC-2822 compliant date string-I[SPEC] Output ISO-8601 compliant date stringSPEC='date' (default) for date only,'hours', 'minutes', or 'seconds' for date and time to the indicated precision-r,--reference FILE Display last modification time of FILE -d,--date TIME Display TIME, not 'now'-D FMT Use FMT for -d TIME conversionRecognized TIME formats:hh:mm[:ss][YYYY.]MM.DD-hh:mm[:ss]YYYY-MM-DD hh:mm[:ss][[[[[YY]YY]MM]DD]hh]mm[.ss][root@Timo /]# date -s 201008302336 //设置时间Mon Aug 30 23:36:00 UTC 2010[root@Timo /]# hwclock -w //保存刚才设置的时间[root@Timo /]# date //显示时间Mon Aug 30 23:36:07 UTC 2010[root@Timo /]#3、同步时间在etc/init.d/rcS里添加hwclock -s #系统同步RTCQQ:917603226,danpianjikaifa@学习视频,电子元件选型指导,PLC 学习指导以及PLC 和DCS 周边产品开发韦东山老师的视频下载地址2440/file/f9beed69b0#.avi QQ:917603226/file/f9690fdc25#第2课QQ:917603226_GPIO实验.avi QQ:917603226/file/f91dd8f3b7#第3课QQ:917603226_存储管理器实验.aviQQ:917603226/file/f926fbcd6#第4课QQ:917603226_MMU实验.aviQQ:917603226/file/f98ccea8a4#第5课QQ:917603226_NAND_FLASH控制器.aviQQ:917603226/file/f9d6474d48#第6课QQ:917603226_中断控制器.aviQQ:917603226/file/f9657f8c96#.aviQQ:917603226/file/t9aa118d81#/file/t9e1c4044e#.aviQQ:917603226/file/t963cbbde3#第9课QQ:917603226第2节_u-boot分析之Makefile结构分析.aviQQ:917603226/file/t9de4dd17f#第9课QQ:917603226第3节_u-boot分析之源码第1阶段.aviQQ:917603226/file/t922115ff9#第9课QQ:917603226第3节_u-boot分析之源码第2阶段.aviQQ:917603226/file/t9114550f1#第9课QQ:917603226第4节_u-boot分析之u-boot命令实现.aviQQ:917603226/file/t99a6e0f29#第9课QQ:917603226第5节_u-boot分析_uboot启动内核.aviQQ:917603226/file/t9820a106e#第10课QQ:917603226第1节_内核启动流程分析之编译体验.aviQQ:917603226/file/t96fa8dc6f#第10课QQ:917603226第2节_内核启动流程分析之配置.aviQQ:917603226/file/t9aa094b45#第10课QQ:917603226第3节_内核启动流程分析之Makefile.aviQQ:917603226/file/t9f4a7ca84#第10课QQ:917603226第4节_内核启动流程分析之内核启动.aviQQ:917603226/file/t9dee089e3#第11课QQ:917603226第1节_构建根文件系统之启动第1个程序.aviQQ:917603226/file/t9d5172739#第11课QQ:917603226第2节_构建根文件系统之init进程分析.aviQQ:917603226/file/t9e7c46b97#第11课QQ:917603226第3节_构建根文件系统之busybox.aviQQ:917603226第 1 页/file/t921e24b83#.aviQQ:917603226/file/f5136718a8#动程序之概念介绍.aviQQ:917603226/file/f57b7907fe#动程序之LED驱动程序_编写编译.aviQQ:917603226 /file/f520effad5#第12课QQ:917603226第2.2节_字符设备驱动程序之LED驱动程序_测试改进.aviQQ:917603226 /file/f52e270acc#第12课QQ:917603226第2.3节_字符设备驱动程序之LED驱动程序_操作LED.aviQQ:917603226 /file/f51a13dc93#第12课QQ:917603226第3节_字符设备驱动程序之查询方式的按键驱第 2 页QQ:917603226,danpianjikaifa@学习视频,电子元件选型指导,PLC 学习指导以及PLC 和DCS 周边产品开发TQ2440开发大全下载linux-2.6.35.3在TQ2440上移植1--建立自己的板子.pdf/source/3227941linux在TQ2440上移植2--Nandflash驱动,MTD分区.pdf/source/3227943linux在TQ2440上移植3--yaffs2+文件系统移植.pdf/source/3227944linux在TQ2440上移植4--yaffs2文件系统制作.pdf/source/3227947linux在TQ2440上移植5--移植串口传输协议.pdf/source/3227948linux在TQ2440上移植6--完善串口驱动.pdf/source/3227950linux在TQ2440上移植7--完善实时时钟RTC.pdf/source/3227951linux在TQ2440上移植8--启动看门狗+.pdf/source/3227965linux在TQ2440上移植9--添加触摸屏.pdf/source/3227952linux在TQ2440上移植10--完善网卡驱动.pdf/source/3227955linux在TQ2440上移植11--完善声卡驱动.pdf/source/3227956linux在TQ2440上移植12--完善SDMMC卡驱动.pdf/source/3227958bootloader编写指南.pdf/source/3227040第 1 页U-boot1.1.6的移植step by step(TQ2440).pdf/source/3227044U-boot1[1][1][1].1.6的移植(TQ2440).pdf/source/3227049/source/3227049U-BOOT-2010.06移植到TQ2440.pdf/source/3227052uboot讲义.pdf/source/3227054uboot阶段1(汇编部分)详细分析.pdf/source/3227057uboot使用说明.pdf/source/3227058Uboot学习笔记.pdf/source/3227060U-boot源代码分析.pdf/source/3227062Uboot源码阅读笔记.pdf/source/3227064在uboot上制作logo的实验.ppt/source/3227067UBOOT之Makefile详解.doc/source/3227068基于TQ2440和Qt的Mp3设计.doc/source/3227074ARM9硬件接口学习之一_WatchDog.pdf/source/3229021ARM9硬件接口学习之二_RTC.pdf/source/3229025.第 2 页ARM9硬件接口学习之三_GPIO.pdf/source/3229026ARM9硬件接口学习之四_CLOCK.pdf/source/3229028ARM9硬件接口学习之五_UART.pdf/source/3229030tq2440ARM学习1/source/3229044ARM学习3流水灯实验.pdf/source/3229048ARM学习4在ADS1.2中新建自己的工程.pdf/source/3229051ARM学习5实现电子相框功能及LCD屏显试验中两个问题/source/3229053ARM学习6LCD屏显实现科比投篮的动画.pdf/source/3229057ARM学习7对于科比投篮实验的轨迹分析.pdf/source/3229058ARM学习8对于画线函数Glib_Line算法的研究.pdf/source/3229059ARM学习14S3C2440 IO口的总结.pdf/source/3229060[原创]自己动手编写嵌入式Bootloader之(1).pdf/source/3230747[原创]自己动手编写嵌入式Bootloader之(2).pdf/source/3230136[原创]自己动手编写嵌入式Bootloader之(3).pdf/source/3230137uC_OS-II实验指导书.pdf第 3 页/source/3231958Ucos_II2.52 源码中文译注.pdf/source/3231960UCOS-II API 参考手册.pdf/source/3231962第 4 页TQ2440裸机开发试验大全TQ2440裸机开发试验之ADC/source/3311703TQ2440裸机开发试验之ebook/source/3311704TQ2440裸机开发试验之interrupt/source/3311708TQ2440裸机开发试验之Mmu_Nand/source/3311761TQ2440裸机开发试验之Mmu_Nand/source/3311763TQ2440裸机开发试验之Nand_1/source/3311765TQ2440裸机开发试验之power_stop/source/3311770TQ2440裸机开发试验之PWM/source/3311772TQ2440裸机开发试验之RTC_LCD/source/3311777TQ2440裸机开发试验之Touch_Panel/source/3311778TQ2440裸机开发试验之UART/source/3311780TQ2440裸机开发试验之write_bios/source/3311783第1篇基础篇第1章Linux简介1.1 Linux系统概述1.2 Linux图形界面操作1.3 Linux字符界面操作1.4 Shell脚本编程基础第1章Linux简介.pdf/source/3312215新手学linux C编程第1章视频/v_show/id_XMjcwMDAxNjYw.html 第2章C语言基础2.1 C语言概述2.2 数据类型、运算符和表达式2.3 基本语句2.4 数组2.5 预处理第2章C语言基础.pdf/source/3312221新手学linux C编程第2章配套源码,可成功运行.rar /source/3312253新手学linux C编程第2章视频/v_show/id_XMjcwMDAxODY0.html第3章指针、函数及自定义数据类型3.1 指针.3.2 函数3.3 结构体、共用体和枚举第3章指针、函数及自定义数据类型.pdf/source/3312229新手学linux C编程第3章配套源码,可成功运行.rar /source/3312254新手学linux C编程第3章视频/v_show/id_XMjcwMDAyMTAw.html第4章数据结构4.1 线性表4.2 栈4.3 队列4.4 二叉树4.5 查找4.6 排序第4章数据结构.pdf/source/3312230新手学linux C编程第4章配套源码,可成功运行.rar /source/3312255第5章文本编辑器5.1 vi编辑器的基本使用5.2 vi编辑器之程序编辑5.3 emacs编辑器的基本使用第5章文本编辑器.pdf/source/3312231新手学linux C编程第5章视频/v_show/id_XMjcwMDA0ODI4.html第6章GCC编译器6.1 GCC简介6.2 GCC的安装6.3 GCC常用选项第6章GCC编译器.pdf/source/3312234新手学linux C编程第6章配套源码,可成功运行.rar /source/3312256新手学linux C编程第6章视频/v_show/id_XMjcwMDA1OTA4.html第7章调试工具7.1 GDB简介及安装7.2 GDB常用命令7.3 GDB调试实例第7章调试工具.pdf/source/3312235新手学linux C编程第7章视频/v_show/id_XMjcwMDA2MDI0.html第9章LinuxC基本应用9.1 字符串操作9.2 数据转换9.3 内存分配与释放9.4 时间和日期9.5 其他应用第9章Linux C基本应用.pdf/source/3312239新手学linux C编程第9章视频/v_show/id_XMjcwMDA2Mjk2.html第10章文件系统缔程10.1 Linux文件系统简介10.2 文件的基本操作10.3 文件的属性10.4 目录文件的操作第10章文件系统编程.pdf/source/3312240新手学linux C编程第10章配套源码,可成功运行.rar /source/3312260新手学linux C编程第10章视频/v_show/id_XMjcwMDA2NDMy.html第11章标准输入输出11.1 标准输入输出的基本操作11.2 非格式化输入输出11.3 格式化输入输出第11章标准输入输出.pdf/source/3312242新手学linux C编程第11章配套源码,可成功运行.rar /source/3312261新手学linux C编程第11章视频/v_show/id_XMjcwMDA2NTYw.html第12章进程操作12.1 进程的概念12.2 Linux进程12.3 进程创建与控制12.4 守护进程第12章进程操作.pdf/source/3312246新手学linux C编程第12章配套源码,可成功运行.rar /source/3312263第13章进程间通信13.1 管道13.2 信号13.3 消息队列13.4 信号量13.5 共享内存第13章进程间通信.pdf/source/3312247新手学linux C编程第13章配套源码,可成功运行.rar /source/3312266新手学linux C编程第13章视频/v_show/id_XMjcwMDA3NDU2.html第14章多线程编程14.1 线程的基本概念14.2 线程的基本操作14.3 线程的同步第14章多线程编程.pdf/source/3312248新手学linux C编程第14章配套源码,可成功运行.rar /source/3312268新手学linux C编程第14章视频/v_show/id_XMjcwMDA3NTU2.html第15章网络编程15.1 网络基础知识15.2 套接字编程基础15.3 服务器模型15.4 域名系统第15章网络编程.pdf/source/3312249新手学linux C编程第15章配套源码,可成功运行.rar /source/3312269新手学linux C编程第15章视频/v_show/id_XMjcwMDA4ODky.html第16章Linux GUI编程16.1 GTK+/Gnome开发简介16.2 常用GTK+构件16.3 GUI生成器Glade第16章Linux GUI编程.pdf/source/3312250新手学linux C编程第16章配套源码,可成功运行.rar/source/3312270新手学linux C编程第16章视频/v_show/id_XMjcwMDA5MTAw.html第17章案例1:Linux命令实现17.1 功能与参数介绍17.2 主函数代码分析17.3 其他函数代码分析第17章案例1:Linux命令实现.pdf/source/3312251新手学linux C编程第17章配套源码,可成功运行.rar /source/3312271新手学linux C编程第17章视频/v_show/id_XMjcwMDA5MjI4.html第18章案例2:客户端/服务器端程序18.1 服务器端程序设计18.2 客户端程序设计第18章案例2:客户端.pdf/source/3312252新手学linux C编程第18章配套源码,可成功运行.rar /source/3312273新手学linux C编程第18章视频/v_show/id_XMjcwMDA5Mzc2.htmlallegro使用经验大全allegro16[1].3版之建立板框(很精彩的图文解释).pdf/source/3313999allogro布线及检查规则设置.pdf/source/3314028allegro中怎么样画原形的板框!.pdf/source/3314027Allegro中如何导入DXF文件.pdf/source/3314024Allegro中丝印及文字的调整管理技巧.pdf/source/3314025allegro怎么样复制板框到另外一块中.pdf/source/3314022Allegro修改元件封装管脚序号.pdf/source/3314020allegro导出dxf文件的方法与步骤.pdf/source/3314018allegro板框设置方法.pdf/source/3314015Allegro 电源,地层分割方法.pdf/source/3314011allegro 导入DXF时/source/3314009allegro allegro使用汇总.pdf/source/3314001怎样在ALLEGRO PCB中修改Net及添加Net.pdf/source/3314037在用ALLEGRO自作PCB时出现过过孔上焊盘而不报错的现象.pdf /source/3314034如何在allegro中更换元件封装.pdf/source/3314032如何看到pin number,并修改它.pdf/source/3314030Cadence中的allegro软件的sub-drawing的用法.pdf/source/3314029allogro布线及检查规则设置.pdf/source/3314028第 1 页做C++的朋友过来看看了啊WINDOWS核心编程.rar/source/3314308vs2008中文教程.rar/source/3314303Visual C++技术内幕第5版.rar/source/3314299MFC深入浅出.rar/source/3314291C++高级参考手册/source/3314289C++Primer第四版中文版(电子版).rar/source/3314286C#完全手册.pdf/source/3314282第 1 页VB精彩应用.txt (VB精彩应用之实例001)仿瑞星小狮子界面.rar/source/3321477(VB精彩应用之实例002)控制其他程序成为自己的子窗体.rar/source/3321478(VB精彩应用之实例003)在任务栏上加上程序图标.rar/source/3321479(VB精彩应用之实例004)获取运行程序(控件)名称和内容.rar/source/3321481(VB精彩应用之实例005)锁住Windows直到输入正确的口令.rar/source/3321483(VB精彩应用之实例006)禁止创建快捷方式出现“快捷方式”四个字.rar /source/3321484(VB精彩应用之实例007)更改墙纸显示方式.rar/source/3321486(VB精彩应用之实例008)在任务栏中禁用右键快捷菜单.rar/source/3321488(VB精彩应用之实例009)判断桌面大小.rar/source/3321492(VB精彩应用之实例010)改变Windows图标大小.rar/source/3321495(VB精彩应用之实例011)修改桌面图标背景.rar/source/3321496(VB精彩应用之实例012)动态卷帘式窗体演示.rar/source/3321498(VB精彩应用之实例013)自动更换墙纸.rar/source/3321499(VB精彩应用之实例014)设置窗口在屏幕中的位置.rar/source/3321501(VB精彩应用之实例015)设置窗口置前、置后.rar/source/3321502VB精彩应用之实例016)闪烁窗体标题栏.rar/source/3321504VB精彩应用之实例017)智能窗体放大器.rar/source/3321505(VB精彩应用之实例019)椭圆形窗体.rar/source/3321509(VB精彩应用之实例020)透明窗体.rar/source/3321510(VB精彩应用之实例021)透明窗体动画.rar/source/3321512(VB精彩应用之实例022)动态半透明窗体.rar/source/3321513(VB精彩应用之实例023)关于窗体.rar/source/3321514(VB精彩应用之实例024)MDI窗体.rar/source/3321515(VB精彩应用之实例025)背景渐变的窗体.rar第 1 页VB精彩应用.txt /source/3321516(VB精彩应用之实例026)窗体动态形状转换.rar/source/3321517(VB精彩应用之实例027)关闭窗口前提示.rar/source/3321518(实例028)窗体文字效果.rar/source/3321520VB精彩应用之实例029)鼠标右键弹出菜单.rar/source/3321521(VB精彩应用之实例030)带图标的菜单.rar/source/3321522(VB精彩应用之实例032)屏蔽关闭、最大化、最小化按钮.rar/source/3321524(VB精彩应用之实例033)显示多列菜单.rar/source/3321525(VB精彩应用之实例034)List列表拒绝添加重复信息.rar/source/3321527(VB精彩应用之实例035)控件大小随窗体的改变而改变.rar/source/3321530VB精彩应用之实例036)在TextBox中设置新的系统功能菜单.rar /source/3321531(VB精彩应用之实例037)动态改变控件尺寸.rar/source/3321532(VB精彩应用之实例038)程序运行时智能增减控件.rar/source/3321533第 2 页。
RTC时钟偶发性延时或超时怎么办?
RTC 时钟偶发性延时或超时怎么办?
在非常温的工作环境下,RTC 时钟出现偶发性的延时或者超时现象,成熟的RTC 电路设计看似简单,但如何保证RTC 时钟的精确度;在出现偶发
性异常现象时,如何快速定位和解决问题;本文将分享一个案例。
一、案例情况
工控板使用了NXP 的PCF8563 RTC 芯片方案,在研发做环境温度摸底测
试的时候,RTC 时钟出现偶发性延时或者超前现象,于是研发展开一系列的问题定位。
二、排查分析
1、工控板使用了NXP 的PCF8563 RTC 芯片方案,该方案是外置
32.768kHz 的石英晶体和电容,该RTC 芯片的输出精度取决于其外接的石英
晶体输出的时钟频率是否精准。
石英晶体本身输出频率带有一定的误差,常温25℃下,频率的误差为±20ppm,平均误差可达5 分钟/年。
且随着时间的
增加,晶体电路元件的缓慢变化会造成长期性的频率漂移。
同时,在外部温度较为极端的时候,时钟震荡回路可能出现异常,影响到RTC 的正常计时。
2、工控板RTC 芯片供电电池选用了型号为CR2032 的锂二氧化锰电池,
该电池理论工作温度范围是-30℃~60℃。
和其他锂电池类似,若外部温度较为极端的时候,会改变其内部的化学反应,导致电池寿命的降低或者电压异常的风险,从而影响RTC 电路的正常工作。
图1 PCF8563 参考电路图
三、解决方案
极限温度下长时间的高精度保证,有以下的解决方案:。
arm9时钟频率、主频设置[说明]
ARM9时钟频率、主频设置关于S3C2440时钟设置的理解ADS1.2中关于时钟的C代码ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);ChangeClockDivider(key, 12);1)FLCK、HCLK和PCLK的关系S3C2440有三个时钟FLCK、HCLK和PCLKs3c2440官方手册上说P7-8写到:FCLK is used by ARM920T,内核时钟,主频。
HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the LCD controller, the DMA and USB host block. 也就是总线时钟,包括USB时钟。
PCLK is used for APB bus, which is used by the peripherals such as WDT, IIS, I2C, PWM timer, MMC interface,ADC, UART, GPIO, RTC and SPI.即IO接口时钟,例如串口的时钟设置就是从PCLK来的;那么这三个时钟是什么关系呢?这三个时钟通常设置为1:4:8,1:3:6的分频关系,也就说如果主频FLCK是400MHz,按照1:4:8的设置,那么HLCK是100MHz,PLCK是50MHz寄存器CLKDIVN表明并设置了这三个时钟的关系void ChangeClockDivider(int hdivn,int pdivn){// hdivn,pdivn FCLK:HCLK:PCLK// 0,0 1:1:1// 0,1 1:1:2// 1,0 1:2:2// 1,1 1:2:4// 2,0 1:4:4// 2,1 1:4:8// 3,0 1:3:3// 3,1 1:3:6rCLKDIVN = (hdivn<<1) | pdivn;if (hdivn == 2)rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<9);if (hdivn == 3)rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<8);}如果CLKDIVN设置为0x5,那么比例即为1:4:8,前提是CAMDIVN[9]为0.2)输入时钟FIN与主频FCLK的关系现代的CPU基本上都使用了比主频低的多的时钟输入,在CPU内部使用锁相环进行倍频。
Cadence 学习笔记 – 在Allegro中手动添加元件
Cadence 学习笔记 – 在Allegro 中手动添加元件(外二则)Q:如何手动添加一个元件?A:这个在[Protel]中轻而易举的动作,在严格遵循网络驱动的[Allegro]里变得非常繁琐。
先选择setup -> User References ,在Misc 里勾选logic edit enabled 。
请记住这个选项,当你要做一些在[Protel]中很随意而在[Allegro]里变得很困难的动作(比如删除或修改某个网络)的时候,打开这个选项是必要的。
然后选主菜单Logic -> Part Logic ,出现的是现有PCB 上的part list 表(下图),在Part Modification Area 中输入你要添加的元件各属性值,图中我添加了一个0805电容C285。
然后点ADD 后OK ,这样这个元件被添加到图中,但是还没有放到板上(那它现在在哪里?悬在半空?),要把它放置到板上,可以选主菜单中的Place -> Quick Place ,这里有很多的放置选项,爱咋放咋放,虽然该功能称为Quick Place ,但经我实际使用,是相当的bother ,最quick 的方法,选择 Place ->manually ,那些悬在空中(已添加但未放置)的元件都在这个列表里,选中要添加的元件后不要急着点OK ,把光标移到图中,会发现这个元件已然粘在光标上,这时才是真正的爱咋放咋放。
然后你就可以给它的引脚增加网络并连线了。
通过这样繁琐的过程,可见,手动添加元件是多么不合规范的一个操作啊,欲速则不达,所以还是建议用网络驱动来添加元件吧。
后记:我在上面的添加过程中遇到一个问题,在part list 表这个地方,如果要添加一个原板上没有的device ,那除了要自建package 外,还要创建device 文件(就是在package 创建好后点file->create device ),这个device 是个txt 文件,在从原理图导入网表到PCB 时要用到,但是如果只是用capture 和allegro 的话,这个文件是不需要的,只有在导入第三方网表时才需要。
ARM9基础教程
BEoFXoRLTt AMSMEHM
0x0000 0000 Boot MEM
10
保留
®
内容
• 目的
• STR71x设备
➢ STR71x系列产品 ➢ 功能框图 ➢ APB总线 ➢ 内存映射和启动模式
• STR71x程序库
➢ 程序库的结构 ➢ 使用例程
• STR71x外设
➢ 特色 ➢ 程序库 ➢ 编程实例
APB 2
- 1个12位的AD转换器 - 增强型中断控制器 - 4个16位定时器 - 实时时钟 - 外部中断 - 看门狗 - 3个16位的通用I/O口
PRCCU
JTAG
ADC12 EIC TIM0 TIM1 TIM2 TIM3 RTC XTI WDG
GPIO0 GPIO1 GPIO2
ARM7TDMI CPU
• 目的
• STR71x设备
➢ STR71x系列产品 ➢ 功能框图 ➢ APB总线 ➢ 内存映射和启动模式
• STR71x程序库
➢ 程序库的结构 ➢ 使用例程
• STR71x外设
➢ 特色 ➢ 程序库 ➢ 编程实例
18
®
STR71x 外 设
电源,复位和时钟控制单元 (PRCCU)
19
®
电源,复位和时钟控制单元 (PRCCU)
20
®
电源,复位和时钟控制单元
• 具有增强型节电特色的独立电源功能块 • 具有硬件和软件复位源的复位管理功能块 • 具有宽广的时钟频率和时钟源的时钟控制单元
21
®
复位单元
• 硬件复位:
➢ 具有提高EMC的模拟过滤器的复位(只有输入功能) ➢ 内部看门狗复位 ➢ 低电压检测复位 ➢ 仅仅从STANDBY模式唤醒的实时时钟警告和的唤醒引脚的复位
基于ARM9内核的IRQ异常中断编程机制的研究
姚宏昕,黄冰:基于 ARM9 内核的 IRQ 异常中断编程机制的研究
Request sources (with sub-register)
Request sources (without sub-register)
SUBSRCPND
SUBMASK
SRCPND
MASK MODE
2009,30 (12) 2849
Abstract:To design an embedded system, it is required the processor to respond the IRQ quickly. By using the S3C2410 as the hardware platform whose core is ARM920T. An IRQ exceptional interrupt program based on key interrupt is designed by searching the interrupt vector twice, the progress of response, calling and return of this kind of interrupt are discussed. And then, based on it, the interrupt response process and programming mechanism on ARM9 when the interrupt response at the request is analyzed. An effective solution is provided to study and develop the interrupt programming in embedded system. Key words:embedded system; interrupt; IRQ; ISR; interrupt vector
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WinCEWinCE1WinCEWinCE1ARM9硬件接口学习之二RTC
在一个嵌入式系统中,实时时钟单元可以其提供可靠的时钟,包括时分秒和年月日;即使在系统处于关机状态下它也能够正常工作(通常采用后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的晶振。
S3c2410 RTC特性:
1.时钟数据采用BCD编码
2.能够对闰年的年月日进行自动处理
3.具有告警功能,当系统处于关机状态时,能产生告警中断;
4.具有独立的电源输入
5.提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟
6.使用独立外部时钟晶震,频率为32.768khz。
RTC相比Watchdog,寄存器比较多。
但这里我们只需要先通过实验实现RTC时间的读写功能,因此只要先了解时钟控制寄存器RTCOON、BCD时钟寄存器(SEC、MIN、HOUR等),其他和RTC告警功能等相关的寄存器可以暂时先不管。
这样的话RTC接口代码的编写就变得很简单了。
下面分析一下这两个寄存器。
1.钟控制寄存器RTCOON
上面这句摘自datasheet。
从这句可以知道,读写RTC寄存器前需要先将RTCEN位置1。
另外还有一点需要注意的是CNTSEL 位,RTC默认是使用BCD编码,这样对BCD时钟寄存器的读写就变得非常方便。
2.BCD时钟寄存器
包括BCDSEC、BCDMIN 、BCDHOUR等。
里面存储时钟对应的BCD码。
实验为设置和读取RTC的时间。
代码很简单,这里就不写了,看一下就知道。
只要注意读写RTC 时钟寄存器前要先打开RTCEN位就行。
代码下载:。