关于 uC/OS-II 在 LPC210X 上移植的说明 1. 全部代码在 ADS1.2 中编译调试. 2. 您可以更改 RO BASE 为 0x0000 0000, 这样可以将代码写入 flash 中运行. 5. 全部代码采用 ARM 指令. 6. uC/OS-II 版本为 V2.52. 7. 当您暂停程序的时候, 如果定时器开着, 那么定时器并不会暂停,需要注意 8. Vectors.S 文件中的 startup 段为程序入口. 9. 编译时下面的警告不必理会. Warning : C2871W: static OS_InitTaskStat declared but not used OS_CORE.C line 1108 10. 如果您想通过软件仿真,请将 PLL.C 中的第 51 行屏蔽, 怎样就可以看到任务逐个切换,最后将进入空闲任务. 11. 此次移植将许多 uC/OS-II 的功能函数都关闭了,请查看 OS_CFG.H 文件.
上传时间: 2013-12-25
上传用户:Divine
8051工作于11.0592MHZ,RAM扩展为128KB的628128,FlashRom扩展为128KB的AT29C010A 128KB的RAM分成4个区(Bank) 地址分配为0x0000-0x7FFF 128KB的FlashRom分成8个区(Bank) 地址分配为0x8000-0xBFFF 为了使8051能访问整个128KB的RAM空间和128KB的FlashRom空间,在CPLD内建两个寄存器 RamBankReg和FlashRomBankReg用于存放高位地址
上传时间: 2015-12-04
上传用户:sxdtlqqjl
8051工作于11.0592MHZ,RAM扩展为128KB的628128,FlashRom扩展为128KB的AT29C010A\r\n 128KB的RAM分成4个区(Bank) 地址分配为0x0000-0x7FFF\r\n 128KB的FlashRom分成8个区(Bank) 地址分配为0x8000-0xBFFF\r\n 为了使8051能访问整个128KB的RAM空间和128KB的FlashRom空间,在CPLD内建两个寄存器\r\n RamBankReg和FlashRomBankReg用于存放高位地址
上传时间: 2013-08-30
上传用户:cainaifa
如何使用高级触发测量程序跑飞:LA系列逻辑分析仪内部集成了32位的定时器、32位的计数器和高速比较模块,高效的使用以上模块资源可以使您的测量事半功倍。逻辑分析仪在实际应用中主要作用有:1.观察波形,看看测量波形中是否存在毛刺、干扰、频率是否正确等;2.时序测量,对被测信号进行时序校对,看看操作时序是否符合要求。3.辅助分析,利用逻辑分析仪完善的协议分析功能来进行辅助分析;4.查错功能,利用逻辑分析仪强大的触发功能来进行错误捕获。当单片机的PC值(程序计数器)对没有程序的地方进行取指时,称为程序跑飞。程序跑飞的原因有多种,主要有以下原因:1) 客观原因:单片机受到外界强干扰造成PC值寄存器改变;2)程序Bug:用户程序调用函数指针,对非程序空间进行对用。以80C51单片机为例子,当程序跑到非用户程序区时,单片机使用PSEN对外部程序进行取指,使用逻辑分析仪可以设置触发条件,当使用PSEN对外部程序进行取指时进行记录,把出错情况前后的状态记录下来进行分析,查找出错原因。如80C51的取指范围正确为0x0000~0x3fff,则当对0x3fff以上地址进行取指时为程序跑飞。分析80C51对外部程序取指的时序,如图1所示。
上传时间: 2013-10-11
上传用户:panpanpan
串行编程器源程序(Keil C语言)//FID=01:AT89C2051系列编程器//实现编程的读,写,擦等细节//AT89C2051的特殊处:给XTAL一个脉冲,地址计数加1;P1的引脚排列与AT89C51相反,需要用函数转换#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引脚排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//编程前的准备工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//编程结束后的工作,设置合适的引脚电平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//从P0口获得数据{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//转换并设置P0口的数据{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//读特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//写器件{//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //写一个单元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效验:循环读,直到读出与写入的数相同 { nTimeOut++; if(nTimeOut>1000)//超时了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//读器件{ BYTE Data;//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //读一个单元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return Data;} void Lock01()//写锁定位{ InitPro01();//先设置成编程状态//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 if(ComBuf[2]>=1)//ComBuf[2]为锁定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//设置pw中的函数指针,让主程序可以调用上面的函数{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上传时间: 2013-11-12
上传用户:gut1234567
对于Intel x86 PC , 开启电源后, 机器就会开始执行ROM BIOS的一系列系统测试动作,包括检查RAM,keyboard,显示器,软硬磁盘等等。执行完bios 的系统测试之后,紧接着控制权会转移给ROM 中的启动程序(ROM bootstrap routine);这个程序会将磁盘上的第0轨第0 扇区(叫boot sector 或MBR ,系统的引导程序就放在此处)读入内存中,并放到自0x07C0:0x0000 开始的512 个字节处.
上传时间: 2014-12-30
上传用户:pei5
x1288读写时序 0xDE 写ccr阵列, 0xDF 读ccr阵列 //0xAE 写eeprom阵列,0xAF 读eeprom阵列 (0x0000---0x1FF)共512个字节 //P5.7--SCL BIT7 //P5.6--SDA BIT6
上传时间: 2014-01-06
上传用户:我们的船长
LM3S系列ARM用GPIO模拟并行总线扩展32KB SRAM PF0~PF7 D0~D7(数据总线) PA0~PA7 A0~A7(地址总线低8位) PB0~PB7 A8~A15(地址总线高8位) PB7 /CE(片选) PC4 /WE(写使能) PC5 /OE(读使能) 32KB SRAM 映射在地址0x0000~0x4FFF之间 为了加快访问速度,软件上将采用寄存器方式进行操作 PB7原为/TRST功能,现在也解放出来作为地址线A15
上传时间: 2014-01-01
上传用户:wlcaption
VIP专区-嵌入式/单片机编程源码精选合集系列(72)资源包含以下内容:1. STC89C58RD+ FLASH-ISP-IAP.2. c51programe的程序可能有你想要的.3. ARM和CPLD的JTAG的原理图.4. MIPS Assembly Language Programming.5. 一个已经在使用的16位DAC8830的源码,有用的,欢迎下载.6. C51-CPLD联合开发板的原理图。以调试通过.7. 美国豪威OmniVision生产的COMS SENSOR 读写程序.8. 2232接收 232接收 232接收.9. minigui实例源代码.10. 本程序使用一个定时器和任意的2个I/O口模拟一个串口通信。可以直接调用。.11. 仿真实例大集合收集的仿真实例免费为大家提供.12. 仿真实例大集合收集的仿真实例免费为大家提供.13. 仿真实例大集合收集的仿真实例免费为大家提供.14. 8051AD,use keil to program this code..15. 51DEVTest use keil to program this code..16. beep use keil to program this code..17. use keil to program this code..18. use keil to program this code..19. 适合KS8695X.20. KS8695的无线部分.21. ks8695的SOHO应用中的tftp部分.22. ks8695 SOHO应用中的iptable.23. 也是ks8695 soho中的文件.24. 此程序为ds18b20温度采集芯片的keil c 程序没有加入显示的部分,但已调试过.可用.25. 红外模块的控制程序实现.26. 模数转换模块ad7416的控制程序.27. 利用keil 51实现温湿度模块的控制程序.28. 一些关于Nios II学习的好资料.29. 文档中给出了使用VHDL编写的频率的精确测量方法的代码,同时还有cPLD与e2rom等的接口代码.30. c程序开发嵌入式工程模板,适用于进行arm7开发.在s3c44b0x进行开发时,需要包含必要的库文件,初始化文件等,这些文件为公共码,不需修改,用户只需在模板中编写main.c.31. MARS-7128-S CPLD开发板VHDL 源码.32. c51 uc/os源程序.33. ZigBee技术手册.34. 8051工作于11.0592MHZ,RAM扩展为128KB的628128,FlashRom扩展为128KB的AT29C010A 128KB的RAM分成4个区(Bank) 地址分配为0x0000-0.35. 用CPLD实现NAND FLASH接口的VHDL源码.36. 音频编解码芯片 LM4930的测试程序.37. 串行通信源程序.38. UC/OS2 的源码 北航大学出版社的那个版本 邵贝贝翻译的.39. CPLD/FPGA设计中的时钟应用讲解 及其实例.40. 本程序实现了7279键盘驱动芯片的使用和金鹏公司生产的液晶显示功能.
上传时间: 2013-06-01
上传用户:eeworm