1.8051Դ?源码?
2.å¦ä½å¦ä¹ åµå
¥å¼
3.在友晶科技DE10-Standard开发板上实现8051单片机(也适用于DE1-SOC)
8051Դ??
代码如下:第一个代码程序:
ORG H
LJMP MAIN
ORG BH
JMP T1_INT
ORG H
MAIN:
MOV TMOD, #H
MOV TH1, #6
MOV TL1, #6
MOV IE, #H
SETB TR1
MOV R7, #4
SJMP $
T1_INT:
CPL P1.3
DJNZ R7, T1_END
CPL P1.2
MOV R7, #4
T1_END:
RETI
END
第二个us程序:
#include <reg.h>
sbit P1_0=P1^0;
void main()
{
TMOD=0x;
TH0=0xFC;
TL0=0x;
EA=1;
ET0=1;
TR0=1;
while(1);
}
void time0_int(void) interrupt 1
{
TH0=0xFC;
TL0=0x;
P1_0=!P1_0;
}
扩展资料:
程序存储器特定入口:
H: 复位或开机后的程序入口
H: 外部中断0 服务程序入口
BH: 定时/计数器0 中断服务程序入口
H: 外部中断1 服务程序入口
BH: 定时/计数器1 中断服务程序入口
H: 串行I/O 中断服务程序入口
定时/计数器
片内有两个位定时/计数器(增量式计数)
工作方式(方式0、方式1、源码方式2、源码方式3)
以定时/计数器1为例
⑴方式0(位定时/计数)
方波是源码一种非正弦曲线的波形,通常会于电子和讯号处理时出现。源码理想方波只有“高”和“低”这两个值。源码线上源码编辑器下载电流的源码波形为矩形的电流即为方波电流。不论时间轴上下是源码不是对称的,只要是源码矩形就可叫方波,必要时,源码可加“对称”,源码“不对称”加以说明
通过单片机内部的源码计数器/定时器,采用软件编程来产生方波,源码这种方法的源码硬件线路较简单,系统的源码功能一般与软件设计相关。
选择MCS-系列中的单片机,由于是用指示灯显示输出方波信号,一个LED显示灯即可满足设计要求。
方波是htmloa源码一种非正弦曲线的波形,通常会与电子和讯号处理时出现。理想方波只有“高”和“低”这两个值。电流或电压的波形为矩形的信号即为矩形波信号,高电平在一个波形周期内占有的时间比值称为占空比,也可理解为电路释放能量的有效释放时间与总释放时间的比值。
占空比为%的矩形波称之为方波,方波有低电平为零与为负之分。必要时,可加以说明“低电平为零”、hogger源码“低电平为负”。
å¦ä½å¦ä¹ åµå ¥å¼
ä½è ï¼å¿åç¨æ·
é¾æ¥ï¼/question//answer/
æ¥æºï¼ç¥ä¹
èä½æå½ä½è ææãåä¸è½¬è½½è¯·èç³»ä½è è·å¾ææï¼éåä¸è½¬è½½è¯·æ³¨æåºå¤ã
å¦ä¹ åµå ¥å¼ç³»ç»ï¼é¦å åºè¯¥æç¡®ä»ä¹æ¯åµå ¥å¼ç³»ç»ï¼å¦åè´¹åå»å¦ï¼å´ä¸ç¥æå¦ä¸ºä½ç©ï¼å²ä¸æç¶ï¼åµå ¥å¼ç³»ç»çå®ä¹å¾å¤ï¼è¿ä¹æ¯å°æ°åµå ¥å¼ç³»ç»å¦ä¹ çä¸ä¸ªå ç´ ãç¬è æ ¹æ®èªå·±å¼ååæå¦è¿ç¨ä¸çç解ï¼ä»¥å对åç§åµå ¥å¼ç³»ç»çåºç¨è¿è¡æ»ç»ï¼æåºäºåµå ¥å¼ç³»ç»çç®åå®ä¹ï¼åµå ¥å¼ç³»ç»æ¯åµå ¥å¼è®¡ç®æºç³»ç»çç®ç§°ï¼è¿ä¸ªå®ä¹çªåºåµå ¥å¼è®¡ç®æºç³»ç»åæ®é计ç®æºç³»ç»çå ±æ§ãä¸è¡¨ååºäºåµå ¥å¼ç³»ç»çä¸äºå ¸åçåºç¨ï¼
æºè½æºå¨äººï¼S D R 4ï¼ç«æç»é车ï¼
娱ä¹åæ¶è´¹çµåï¼Gameboy Advanceï¼SonyPSPï¼
ç½ç»é信产åï¼Smartphoneï¼
åç¨è®¾å¤ï¼åç¨PDA ï¼
汽车ï¼è½¦è½½å¯¼èªï¼èªå¨é©¾é©¶ï¼å¨±ä¹ç³»ç»ï¼
æºè½ä»ªå¨ï¼èæ仪å¨ï¼
å®å ¨é²æ¤ï¼é²ç«ï¼é²çï¼
ç¯å¢ä¿æ¤ï¼æ¢ç©ºæ°çï¼
é¶è¡ååä¸æ¶è´¹ï¼ATMï¼
以ç«æç»é车为ä¾æ¥åæä¸ä¸åµå ¥å¼ç³»ç»çå®ä¹ãç«æç»é车è½ç¶å¬èµ·æ¥æè§å¨ææ¯ä¸æäºé«ä¸å¯æµï¼ä½æ¯æ¬è´¨å°±æ¯åµå ¥å¼è®¡ç®æºç³»ç»çåºç¨ï¼å ¶æ ¸å¿å°±æ¯ä¸ä¸ªè®¡ç®æºç³»ç»ï¼èè¿ä¸ªè®¡ç®æºç³»ç»çç»æåä¼ ç»ç计ç®æºç³»ç»å¨æ¬è´¨ä¸æ²¡æä»ä¹å·®å«ã两è çæ¾èä¸åä¹å¤å°±å¨äºï¼ç¨äºç«æç»é车ç计ç®æºç³»ç»è¢«å®è£ å°äºç«æç»é车ä¸ãå½ç¶ï¼ä¸ä¸ªè®¡ç®æºç³»ç»è½å¤è¢«å®è£ å¨ç«æç»é车ä¸ï¼æ¯éè¦è¿è¡å¾å¤ç¹æ®è®¾è®¡çãä½æ¯ä»æ¬è´¨ä¸è®²ï¼åµå ¥å¼ç³»ç»çæ ¸å¿æ¦å¿µè¿å¨è®¡ç®æºç³»ç»ãåµå ¥å¼ç³»ç»å¦ä¹ çéç¹ä¹å¨è®¡ç®æºç³»ç»ä¸ãä¸æ¹é¢ï¼å¦ä¹ è éè¦ç¢åºææ¡è®¡ç®æºç³»ç»æ¬èº«çæ¦å¿µï¼æ´éè¦çæ¯å¦ä¹ åµå ¥ç³»ç»çå¼åè¿ç¨åä¼ ç»è®¡ç®æºç³»ç»å¼åè¿ç¨çå·®å«ãè¿ééè¦æåºçæ¯ï¼å¾å¤å¦ä¹ è æ¬æ¥å°±æ²¡æä»äºè¿å®æ´è®¡ç®æºç³»ç»çå¼åï¼é«æ ¡çæå¦æ¯ä»¥ç¨åºè®¾è®¡ä¸ºä¸å¿çï¼è®¡ç®æºç³»ç»çææï¼æä½ç³»ç»çåçï¼ç¼ç¨è¯è¨ç课ç¨é½æ¯ä¸ºäºè½å¤è®©å¦çæ´å¥½ç使ç¨è®¡ç®æºç³»ç»è¿è¡ç¨åºè®¾è®¡ï¼å¨ç°æç计ç®å¹³å°ä¸æ¥è®¾è®¡å®ç°åç§åºç¨ï¼å¦çä¸è¬æ²¡ææºä¼å¦ä¹ ä¸ä¸ªå®æ´ç计ç®æºç³»ç»æ¯å¦ä½æ建ï¼å¹¶äº²èº«åä¸å°æ建çæ¯ä¸ä¸ªè¿ç¨ãè对äºåµå ¥å¼ç³»ç»èè¨ï¼ä»äºå¹³å°å¼åç人就æ¯è¦äº²èªå»å¼ååºä¸ä¸ªå®æ´ç计ç®æºç³»ç»ï¼è¿ä¸ªè¿ç¨å æ¬
1. éæ±åæ
2 硬件设计
3 驱å¨ç¨åº
4 Bootloader & BSP ï¼æ¿çº§æ¯æå ï¼
5 æä½ç³»ç»ç移æ¤
6 åºç¨ç¨åºçå¼å
7 æ§è½æ£æ¥
åµå ¥å¼ç³»ç»æå¦çç®çå°±æ¯æä¼å¦çå¦ä½æ ¹æ®éæ±å»å»ºç«æ»¡è¶³æç§ç¹æ®è¡ä¸éæ±çåµå ¥å¼è®¡ç®æºç³»ç»ã让å¦çå¦ä¼å¦ä½æ件硬件平å°ï¼è¿è¡ç¡¬ä»¶è®¾è®¡ï¼éæ©è½å¤æ»¡è¶³åºç¨è¦æ±çæä½³çåµå ¥å¼æä½ç³»ç»ï¼å¹¶å®æBootloaderï¼BSPå驱å¨ç¨åºçç¼åï¼ç§»æ¤ï¼è°è¯çè¿ç¨ã为äºæ»¡è¶³è¡ä¸éæ±ï¼æç»è¦å¨æ建ç«çç³»ç»ä¸ç¼åè°è¯ç¸åºçåºç¨ç¨åºï¼å¹¶è¿è¡æ§è½çæµè¯åæ£æ¥ã
ä½ æ¯è°,ä½ éè¦å¦ä¹ åªäºä¸è¥¿ï¼
å¦æä½ çå·¥ä½åªæ¯éè¦å¨PC æºä¸ç¼åä¸ä¸ªå¾çæµè§ç¨åºï¼é£ä¹ä½ 就没æå¿ è¦å»äºè§£å½ç³»ç»æ¶å°ä¸ä¸ªARP请æ±å ååºè¯¥å¦ä½ååºãåæ ·çéçï¼åµå ¥å¼ç³»ç»çå¦ä¹ ä¹æ¯æå¾å¤æ¹é¢çãå°±åµå ¥å¼ç³»ç»ç设计åå®ç°èè¨ï¼åºæ¬ä¸éè¦åç§ä¸åçå·¥ä½ï¼ç³»ç»è®¾è®¡å·¥ä½ï¼ç¡¬ä»¶è®¾è®¡å·¥ä½ï¼é©±å¨ç¨åºåæä½ç³»ç»ç§»æ¤å·¥ä½ååºç¨ç¨åºè®¾è®¡å¼åå·¥ä½ã
1.ç³»ç»è®¾è®¡å·¥ä½
å¨ç³»ç»ç设计é¶æ®µï¼ç³»ç»åæå¸å°æ ¹æ®éæ±ç¡®å®ç³»ç»ç硬件çåºæ¬ææï¼æ ¹æ®ç³»ç»çéæ±éæ©ä½¿ç¨é£ç§å¤çå¨ï¼ä½¿ç¨åªç§æä½ç³»ç»ï¼ä½¿ç¨é£äºè½¯ä»¶å¼åå·¥å ·ãç³»ç»åæå¸å¾å¾æ¯è¾ä¸ºå®æ´çåä¸è¿åµå ¥å¼ç³»ç»è®¾è®¡çå ¨è¿ç¨ï¼å¯¹äºç³»ç»åºç¨çè¡ä¸è¾ä¸ºäºè§£ï¼å¯¹äºåµå ¥å¼ç³»ç»æ¬èº«çå¼åæµç¨ååæ¸ æ¥ç人ã
2.硬件设计工ä½
ç³»ç»ç¡¬ä»¶è®¾è®¡äººåéè¦æ ¹æ®ç³»ç»åæå¸ç设计ç»æï¼è¿è¡ç¡¬ä»¶åçå¾ç设计ãé常éè¦ç¡¬ä»¶è®¾è®¡äººåçæåµå ¥å¼ç³»ç»ç硬件ææã硬件设计人åéè¦äºè§£å¸¸ç¨çåµå ¥å¼ç³»ç»å¤çå¨ï¼åå¨å¨ï¼Flashï¼SDRAMï¼ï¼ä»¥å¤ªç½MACè¯çï¼é³é¢/è§é¢ç¼è§£ç è¯çï¼çµæºç®¡çè¯çï¼æ»çº¿æ¥å£çµè·¯ (USB,PCI)ï¼æ¶²æ¶æ¾ç¤ºæ¨¡åï¼å¯ç¼ç¨é»è¾å¨ä»¶(FPGA/CPLD)ï¼æ 线ç½ç»é信模å(Bluetooth,WLAN,GPRS)ç硬件çµè·¯ææå ç´ çåºæ¬å·¥ä½åçï¼è¿æ¥ä½¿ç¨æ¹æ³ï¼ä½¿ç¨æ³¨æäºé¡¹ï¼åºæ¬è°è¯æ¹æ³çå 容ãå¨ç½ç»ä¸è½æ¾å°å¾å¤å ¬å¸çè¯ä¼°æ¿çåçå¾ï¼å¯¹äºè¿äºåçå¾è¦ä»ç»ç 究ï¼æ¸æ¸ å¤çå¨ååå¨å¨ï¼ç½å¡ï¼æ¶²æ¶æ¨¡åçå¨ä»¶çè¿æ¥æ¹æ³ååå ãéè¿å¯¹è¿äºçµè·¯çç 究ï¼è½å¤è¾å¿«å°äºè§£æ´ä¸ªåµå ¥å¼ç³»ç»çææï¼è¿äºçµè·¯åå®é 产åä¸ççµè·¯è½æä¸å®å·®å«çï¼ç¹å«æ¯å¯¹äºææ设å¤ï¼ä½è¿äºå·®å«ä¸å½±ååå¦è å¦ä¹ åµå ¥å¼ç³»ç»ç硬件设计åºæ¬ææã
以ä¸è¿äºç¥è¯ï¼å¾å¾éè¦è¾é¿æ¶é´çå¦ä¹ å积累ï¼éè¦äº²èªåä¸å®è·µçæºä¼ã对äºååæ¥è§¦åµå ¥å¼ç³»ç»ç¡¬ä»¶å¼åçå¦çæ¥è®²ï¼ä¸è¬ä¸å¯è½å ¨é¨äºè§£è¿äºç¥è¯ï¼ä½ä¹ä¸ä¼æ¯ééä¸æ æç¥ãç¬è ç»åèªå·±å¼ååæå¦çç»éªè®¤ä¸ºï¼é¦å åºè¯¥éå®ä¸æ¬¾ä¸»æµä¸è¾ä¸ºç®åçåµå ¥å¼ç³»ç»å¤çå¨ï¼æ¯å¦åºäºARM7TDMI å æ ¸çATM,S3CB0 çåµå ¥å¼ç³»ç»å¤çå¨ï¼å¦ä¹ ä½RISCå¤çå¨çç¼ç¨æ¨¡åï¼æ令éãé«æ ¡æå¦ä¸ï¼åç计ç®æºè¯¾ç¨ä¸è¬ä»¥ç³»ååçä¸ºæ ¸å¿è®²è§£ï¼ç±äºç°ä»£ä½å¤çå¨çç»æåå¼åæ¹å¼å8ä½åçæºæçè¾å¤§çå·®å«ï¼å¦ä¹ è è¿æ¯éè¦è±ä¸ç¹åæ°æ¥ç 究以ä¸ä½å¤çå¨çã以ARMå¤çå¨ä¸ºä¾ï¼å¦ä¹ è å°±éè¦ç解å¤çå¨çå¤ç§å·¥ä½æ¨¡å¼ï¼å¤ä»½å¯åå¨ï¼RISC æ令éçç¹ç¹ï¼MMU åèæå°åï¼ä¸æå¤çè¿ç¨çå 容ãå¨å¦ä¹ æ令éçè¿ç¨ä¸ï¼æ好è½å¤æ¯å¦ä¹ å æ¡æ令ï¼å°±ä½¿ç¨è¿å æ¡æ令å¨æ¨¡æå¨ä¸å®éªä»¥ä¸ï¼è§å¯å¤çå¨æ§è¡çç»æãè¿ä¸ªè¿ç¨ä¸æ¹é¢æ¯å¦ä¹ è 对äºæ令æ¬èº«çå¦ä¹ è½å¤åå¾ä¸ä¸ªæ¯è¾å¥½çææï¼å¦å¤ä¹æ¯å¯¹å¼åå·¥å ·æ¬èº«çä¸ç§å¦ä¹ ãæ¥çï¼å°±å¯ä»¥å¼å§å¦ä¹ çä¸èµæºç使ç¨åé ç½®æ¹æ³ãè¿æ¶å°±éè¦ä¸ä¸ªæ¹ä¾¿ä½¿ç¨çå¼åæ¿ï¼å¦ä¹ è è½å¤éè¿JTAG仿çå¨å°å¼åæ¿åè°è¯PCæºç¸è¿ï¼è¿è¡ç¨åºçä¸è½½ï¼è°è¯ãç¹å«æ¯è¦ä»ç»ç 究系ç»çåå§åè¿ç¨åä¸æå¤ççè¿ç¨ãå¨å¼åè¿ç¨ä¸å¦æéå°é®é¢ï¼åºèªå·±åæé®é¢äº§ççåå ï¼éè¿åæ缩å°é®é¢å¯è½äº§ççèå´ï¼æç»æ¾å°é®é¢çæå¨ãæéè¦çå°±æ¯è¦ä¿æä¸ç§è§£å³é®é¢çä¿¡å¿ï¼é¢å¯¹å°é¾å¦ä½å¤çï¼å¾å¾è½å¤å³å®æç»ç³»ç»æ¯å¦è½å¤è°è¯æåãç¶åï¼å¦ä¹ è å¯ä»¥å¼å§ä»ç»å¦ä¹ å¤çå¨ååå¨å¨çè¿æ¥ï¼åå¨ç©ºé´çé ç½®ï¼åç§å¤æ©å¨ä»¶ï¼å¦ç½å¡ï¼AC声å¡çå·¥ä½åçå使ç¨æ¹æ³ãåµå ¥å¼ç³»ç»ç¡¬ä»¶è®¾è®¡ä¸å¾å¾éè¦ä½¿ç¨å¯ç¼ç¨å¨ä»¶ï¼å¦ä¹ è è¿éè¦ä¸å®çæ¶é´æ¥å¦ä¹ 使ç¨å¸¸ç¨çå¯ç¼ç¨å¨ä»¶ï¼CP L D / F P G Aï¼ï¼å¸¸ç¨çæXilinxåAlteraå ¬å¸ç产åãè¿è¡ç³»ç»ç¡¬ä»¶åçå¾è®¾è®¡ï¼å°±éè¦ä½¿ç¨åçå¾è®¾è®¡çEDAå·¥å ·ï¼å¸¸ç¨çEDA åçå¾è®¾è®¡å·¥å ·ä¸»è¦å æ¬Cadenceå ¬å¸çCaptureï¼Protelå ¬å¸çProtelSEçãæ¥ä¸æ¥å°±å¯ä»¥åç §è¯ä¼°æ¿ççµè·¯å¾ï¼æ ¹æ®ç³»ç»ç设计è¦æ±ï¼å¼å§è¿è¡åçå¾çç»å¶äºãå¨åçå¾ç»å¶è¿ç¨ä¸ï¼ä¸å®è¦ææ¸ è¯ä¼°æ¿çµè·¯è¿æ¥çåå ï¼å¯¹äºä¸æ¶æ²¡æææ¸ æ¥çé®é¢åä¸å¯èæ··è¿å ³ãä¾å¦ï¼æäºå¤çå¨çå°å线æ¯ä»¥åèä½åä½çï¼èå¦ä¸äºå¤çå¨çå°å线åæ¯ä»¥ä¸¤ä¸ªåè为åä½çï¼å½è¿æ¥ä½çåå¨å¨çæ¶åï¼åä¸å¯æ³å½ç¶çæå¤çå¨çA 0 ç´æ¥è¿æ¥å°åå¨å¨çA 0 ä¸é¢ãå¦å¤ï¼å¦çè¿åºå ·æä¸å®çPCBæ¿å¾ç»å¶è½åï¼å 为å¨ç°é¶æ®µï¼å¾å¤å ¬å¸è¿ä¸è½å®å ¨æåçå¾ç设计工ä½åPCB çç»å¶å·¥ä½åå¼ï¼å¾å¾è¦æ±ç¡¬ä»¶è®¾è®¡äººåæ¢è½è¿è¡åçå¾è®¾è®¡åè½è¿è¡æ¿å¾è®¾è®¡ãå³ä½¿æ¯PCB设计ååçå¾è®¾è®¡åå¼çå ¬å¸ï¼ä¹éè¦åçå¾è®¾è®¡è è½ä¸ºPCB ç设计è 对äºä¸åçä¿¡å·æåºå¸æ¿è¦æ±ã
3.驱å¨ç¨åºåæä½ç³»ç»ç§»æ¤å·¥ä½
ç°ä»£åµå ¥å¼ç³»ç»çå¼ååä¼ ç»8ä½åçæºç³»ç»çå¼åç¸æ¯ï¼ä¸ä¸ªæ¾èçåºå«å°±æ¯åµå ¥å¼æä½ç³»ç»ç广æ³ä½¿ç¨ãå¨æ¿å°çæ¥å®æ¯ççµè·¯æ¿ï¼å¹¶è¿è¡åºæ¬çæµè¯åï¼å°±è¦è¿è¡é©±å¨ç¨åºåæä½ç³»ç»ç移æ¤å·¥ä½äºãé¦å è¦è¿è¡çBootloaderçç¼åå移æ¤å·¥ä½ãBootloaderç¸å½äºPCç³»ç»çBIOSã对äºæäºåµå ¥å¼æä½ç³»ç»ï¼å¦uc/OSII没æbootloaderåæ ·å¯ä»¥å¼åè°è¯ãä½æ¯å¯¹äºWindowsCEååµå ¥å¼linuxç³»ç»èè¨Bootloaderå°±æ¯å¿ é¡»çäºãæ¬æ以Windows CE 为ä¾ï¼åä¸ä¸ªç®è¦ç说æã
Windows CE ç³»ç»ç移æ¤å·¥ä½ä¸»è¦å°±æ¯BSPï¼æ¿çº§æ¯æå ï¼çå¼åè¿ç¨ãBSPå°å ·ä½ç硬件差å¼åæä½ç³»ç»çæ ¸å¿é离å¼æ¥ï¼ä¸»è¦ç±Bootloaer ï¼OALï¼OEMAbstraction Layerï¼å设å¤é©±å¨ç¨åºä¸é¨åç»æãWindowsCEç³»ç»ä¸Bootloaderå«åEbootãEboot被åå ¥ç³»ç»çå¼å¯¼Flashãç³»ç»å¯å¨æ¶è¿è¡Ebootï¼å®æéè¿ç½å¡å°è°è¯PC æºä¸WindowsCE æä½ç³»ç»æ åä¸è½½å°ç®æ ç³»ç»çSDRAMä¸å¹¶å¼å§æ§è¡çåè½ã对äºä¸ä¸ªç³»ç»ç§»æ¤äººåï¼é¦å éè¦é 读ææ¡£ï¼äºè§£WindowsCEç³»ç»BootloaderåBSPçåºæ¬æ¦å¿µåå¼åè¿ç¨ãï¼åµï¼è¿è¦åè¿å·¥ä½åï¼æè¿æ²¡æ³å°ï¼åå¦^_^ï¼ï¼Windows CEçå¼åç³»ç»Platform Builderæä¾äºè¯¦ç»çææ¡£åä¾ç¨ï¼å¼å人åéè¦ä»ç»çé 读ææ¡£åä¾ç¨ãææ¸ æ¥å个å½æ°ä¹é´çè°ç¨å ³ç³»ãå¨å¼åè¿ç¨ä¸çä¸ä¸ªéè¦çæ¥éª¤å°±æ¯æé串å£ï¼ä½¿å¾ç®æ æ¿è½å¤éè¿PCæºä¸²å£åè°è¯PC æºåéæ°æ®ãç±äºARMç³»ç»ç仿çå¨æ¯è¾æè´µï¼èä¸æä½ç³»ç»çè°è¯å¾å¾ä¸ä½¿ç¨JTAGè°è¯å¨è¿è¡åæ¥è°è¯ãæ以è½ä»ä¸²å£è§å¯ç¨åºçæ§è¡è¿ç¨åç»æ对äºè°è¯å°±æ¾å¾ååéè¦äºã串å£æéä¹åä¸ä¸ªæ¯è¾æ£æçé®é¢å°±æ¯ç½å¡è¯ççè°è¯ãååæ¥è§¦åµå ¥å¼ç³»ç»å¼åç人å¾å¾æ²¡æç´æ¥å¨å¯åå¨çº§ä¸ä½¿ç¨ç½å¡è¯ççç»éªï¼èç½å¡è¯çç说æä¸è¬é½è¾ä¸ºç®çï¼è¿å°±è¦æ±å¼åè å¦ä¹ ä¸äºä»¥å¤ªç½çåºç¡ç¥è¯ï¼å¯¹ä»¥å¤ªç½çMAC å±æä¸ä¸ªåºæ¬ç认è¯ãå¦å¤ï¼åç§ç½ç»è°è¯ï¼æå ï¼å·¥å ·ç使ç¨ä¹è½å¤§å¤§éä½ç³»ç»è°è¯çé¾åº¦ãç³»ç»çOALéè¦æ ¹æ®å ·ä½ç¡¬ä»¶çä¸åååºç¸åºçä¿®æ¹ï¼è¿ä¸ªé¨åå¯åç §ææ¡£è¿è¡ï¼å¨è°è¯è¿ç¨ä¸æ ¹æ®ä¸²å£çä¿¡æ¯åæåºéçå°æ¹ãè¦å ååæ¥è·¨æ件å符串æç´¢å·¥å ·çåè½ï¼å¨æµ©å¦çæµ·çæºæ件ä¸æ¾å°åºéçä½ç½®ãå½ç¶ï¼éçå¼åè 对系ç»æ件ç®å½ç»æççæåäºè§£ï¼é误å®ä½çé度ä¼ä¸æå å¿«ãWindowsCE ç驱å¨ç¨åºç¸å¯¹èè¨æ¯æ¯è¾å¥½åçã
4.åºç¨ç¨åºçå¼å
åµå ¥å¼ç³»ç»çåºç¨ç¨åºå¼ååå¨PC æºä¸å¼ååºç¨ç¨åºçåºå«ä¸æ¯å¾å¤§ã对äºWindows CEç³»ç»èè¨ï¼Microsoftå·²ç»æä¾äºè¾ä¸ºå®åçå¼åå·¥å ·ãç¹å«æ¯.NET Compact workç使ç¨ï¼ä½¿å¾åºäºWindows CE.NETCompactworkçåºç¨ç¨åºæäºè·¨å¹³å°æ§ãå¼å人åå¯ä»¥ä½¿ç¨Windows çC# è¯è¨ç´æ¥å¨PC ä¸è¿è¡http://CE.NETåºç¨ç¨åºçå¼åå模æè°è¯ï¼ä¹å¯å°ç®æ ç³»ç»åPC æºç¸è¿ï¼è¿è¡èæºè°è¯ãç°å¨æå¾å¤ç³»ç»æ¯æJ2ME(JAVAçåµå ¥å¼ç³»ç»çæ¬) ï¼è¿ä½¿å¾JAVA å¨åµå ¥å¼ç³»ç»åºç¨å¼åä¸å æè¾å¤§çä¼å¿ãå¦å¤ï¼ä½ä¸ºä¸ä¸çåµå ¥å¼ç³»ç»è½¯ä»¶å¼å人åï¼è¿éè¦å åäºè§£é¢å对象ææ¯å设计模å¼çæ¹é¢çç¥è¯ï¼å½ç¶ä½ä¸ºåå¦è å¯ä»¥å ä¸æ·±å ¥ç 究è¿æ¹é¢çå 容ã
常ç¨åµå ¥å¼ç³»ç»å¤çå¨åæä½ç³»ç»
å¤çå¨
常ç¨åµå ¥å¼ç³»ç»å¤çå¨ä¸»è¦å æ¬ARM å¤çå¨ï¼Power PC å¤çå¨ï¼åºäºMIPS å æ ¸çåµå ¥å¼å¤çå¨ï¼è½¯æ ¸å¤çå¨ï¼å¦Altera çNiosåXilinxçMicroBlazeçï¼åDSPï¼æ°åä¿¡å·å¤çå¨ï¼çã
ARM å¤çå¨ç主è¦ç¹ç¹æ¯å ·æè¾é«çæ§è½åèæ¯ãARMå¤çå¨è¢«å¹¿æ³çåºç¨å¨ææºï¼PDAçé¢åï¼å ¶ä¸è¾ä¸ºèåçæIntel å ¬å¸ç产çåºäºARM å æ ¸çXScaleç³»åå¤çå¨ãç±äºææå ¬å¸ç产çåºäºARMå æ ¸çå¤çå¨å ·æç¸åçç¼ç¨æ¨¡åï¼å¨ææåçµæ± ä¾çµçç³»ç»ä¸ï¼åºäºARMçåµå ¥å¼ç³»ç»å¤çå¨å¾å¾è¢«é¦å éç¨ãPowerPCï¼ç®ç§°PPCï¼å¤çå¨å ·æè¾å¼ºçè¿ç®æ§è½åæ°æ®ååè½åï¼å¨ç½ç»åæ°æ®éä¿¡é¢ååºäºPPCçåµå ¥å¼ç³»ç»å¤çå¨æç广æ³çåºç¨ãå ¶ä¸Motorolaå ¬å¸ç产çMPC/MPC被大éå°åºç¨å¨åµå ¥å¼ç½ç»äº§åä¸ãMIPS å¤çå¨çç¹ç¹è¡¨ç°å¨åå强大çå¤çè½åä¸ãä½ä¸ºé«æ§è½å¤çå¨ï¼MIPSå¤çå¨éç¨äºç½ç»ãä¼ä¸åé«çº§æ¶è´¹ç±»çµååºç¨ï¼ç¹å«æ¯å¨æºé¡¶çç³»ç»ä¸ï¼MIPSå¤çå¨å ·æè¾é«çå¸åºå æçãéçå¯ç¼ç¨å¨ä»¶çè§æ¨¡ä¸ææ©å¤§ï¼ä½¿å¾äººä»¬è½å¤æ ¹æ®éè¦å®å¶å¤çå¨ï¼å¹¶æ¹ä¾¿çå°é对æç§ç¹æ®åºç¨å®å¶çå¤çå¨æ¹ä¾¿çå¨å¯ç¼ç¨å¨ä»¶å é¨å®ç°ãé¤äºå¤çå¨å¤ï¼è®¡ç®æºç³»ç»è¿éè¦è®¸å¤å ¶ä»ææé¨åï¼æ¯å¦å¨å¤ééåªä½æ°æ®å¤çç³»ç»ä¸ï¼ç»å¸¸éè¦ä½¿ç¨å¯ç¼ç¨å¨ä»¶æ¥å®ç°é«éçæ°æ®å¤çåè½ï¼ä½¿ç¨è½¯æ ¸DSPæ¥å®ç°å¤æçæ°åä¿¡å·å¤çç®æ³ï¼åæ¶è¿éè¦å¤çå¨è¿è¡äºå¡å¤çï¼è½¯æ ¸å¤çå¨å°å¯ç¼ç¨å¨ä»¶ï¼DSPåå¤çå¨ç»åå¨ä¸èµ·ï¼ä¸ºç³»ç»çº§è®¾è®¡æä¾äºæ大ççµæ´»æ§ãDSPï¼æ°åä¿¡å·å¤çå¨ï¼æå«äºéç¨å¤çå¨ï¼éä¸è¡¨ç°å¨å ¶å¼ºå¤§çæ°åä¿¡å·å¤çè½åä¸ãå¨DSP å é¨æä¾äºç¡¬ä»¶ä¹ç´¯å å¨ï¼å¤çå¨å¨è®¾è®¡ä¸å¯¹äºç¹æ®ç寻åæ¹å¼åäºä¼åï¼ä¸äºDSP è¿æ¯æé¶è循ç¯ï¼Zero OverheadLoopï¼ã为äºæ¹ä¾¿åµå ¥å¼ç³»ç»è®¾è®¡ï¼ä¸»æµDSP ä¸è¬ä¹é½æä¾äºä¸°å¯çå¤è®¾ãç¹å«å¼å¾ä¸æçæ¯ADI å ¬å¸çBlackfin ç³»åDSPåTI å ¬å¸çDMXç³»åDSPï¼ä¸¤ç§å¤çå¨é½æä¾äºä¸°å¯ççä¸å¤è®¾ï¼é常éç¨åµå ¥å¼ç³»ç»åºç¨ã
æä½ç³»ç»
http://WindowCE.NET/5.0
ä½ä¸ºMicrosoftç产åï¼WindowCE.NE/5.0æä¾äºåè½å®å¤çå¹³å°å¼åå·¥å ·Platform Builderååºç¨å¼åå·¥å ·Embedded Visual C++/Visual Studio ãWindowsCEç±äºæ¥æ广大使ç¨è æçæçwindowsçé¢ï¼ç³»ç»æä¾äºä¼å¤é©±å¨ç¨åºï¼å¹¶ä¸æå®å¤çææ¡£æ¯æã对äºåºç¨å¼åèè¨ï¼çæWindowsç³»ç»å¼åçç¨åºåå¾å®¹æ转å°WindowsCE åºç¨ç¨åºçå¼åãWindows CEå°ä¼æ¯ä¸ä¸ªé常æåéçåµå ¥å¼æä½ç³»ç»ã
VxWorks
VxWorksæ¯ç±Windriverï¼é£æ²³ï¼å ¬å¸åºåçåµå ¥å¼å®æ¶æä½ç³»ç»ï¼å¤§åé¼é¼çç«æç»é车就æ¯ä½¿ç¨äºVxWorksãWindriver为VxWorksæä¾äºéæå¼åç¯å¢tornadoã
Ï C/OSII
Ï C/OSæ¯ç±Jean Labrosse设计ç¼åçå¼æ¾æºä»£ç çåµå ¥å¼å®æ¶æä½ç³»ç»ï¼ç¬è ææ©æ¥è§¦çåµå ¥å¼æä½ç³»ç»å°±æ¯å®ãé è¯»å¹¶æ·±å ¥çè§£Ï C/OSçæºä»£ç 对äºç解å®æ¶ç³»ç»æ¯å¤§æ裨ççã
ARM Linux
ARM linuxæ¯ç±Russell Kingåå ¶ä»å¼åè å¼å移æ¤çç¨äºARM å¤çå¨çlinuxæä½ç³»ç»ãARM Linuxç³»ç»å¨GNU GPLä¸åå¸ã
Ï CLinux
Ï Clinux æ¯éç¨äºæ²¡æMMU çåµå ¥å¼å¤ççLinuxOS çæ¬ãÏ Clinux åæ ·å¨GNU GPLåå¸ã
åµå ¥å¼ç³»ç»å¼åè¿ç¨ä¸ç常è§é®é¢å解å³æ¹æ³
Bootloaderå¦ä½åå ¥Flash ï¼
åå¦è ä¸è¬é½ä¼éå°å¦ä½å°ç¨åºåå ¥å¤çå¨çé®é¢ã对äºä¸åçå¤çå¨ï¼å¯ä»¥éç¨ä¸åçæ¹æ³ãä¾å¦IntelçXscaleå¤çå¨å¯ä»¥ä½¿ç¨Intelå ¬å¸æä¾çJFlashå·¥å ·ç§åã对äºå ·æJTAGè°è¯å·¥å ·è½¯ä»¶çå¤çå¨ï¼å¯ä»¥ä½¿ç¨å¦ä¸æè·¯ï¼ç¼åä¸æ®µç¨åºï¼è¿æ®µç¨åºè½å°ä½äºSDRAM/SRAM åºå®å°åä¸çæ°æ®åå ¥Flashä¸ãç§åæ¶ï¼é¦å ï¼å°è¿æ®µè½¯ä»¶ä¸è½½å°SDRAM ä¸ï¼ç¶åéè¿è°è¯è½¯ä»¶å°è¦åå ¥Flashçæ°æ®ä¸è½½å°SDRAM/SRAMçæ个åºå®å°åå¼å§çç¼å²åºï¼ç¶åéè¿è°è¯å¨å¼å§æ§è¡ç¨åºï¼å°æ°æ®åå ¥Flashãé¤æ¤ä»¥å¤ï¼ç½ç»ä¸è¿æä¾äºå¾å¤ä¸ç¨çåFlashçå·¥å ·ï¼å¼åè å¯ä»¥æ ¹æ®èªå·±çéè¦éç¨ã(ç°å¨æç½äºæå¨å¦çé£ä¸ªBF为ä»ä¹å ä¸ä¸ªflashProgramer.dxeå äº)
ä»ä¹æ¯arm-elf-gccï¼
arm-elf-gccæ¯ä¸ä¸ªäº¤åCè¯è¨ç¼è¯å¨ãæ们å¨PCå¹³å°ä¸ç¼è¯ç¨åºï¼ç¼è¯å¨è¿è¡çå¤çå¨åçæç代ç å°è¦è¿è¡çå¤çå¨ç¸åãä½æ¯ï¼å¨PC
æºä¸ç¼è¯ARMç¨åºæ¶ï¼ç¼è¯å¨è¿è¡çå¤çå¨åçæç代ç è¿è¡çå¤çå¨ä¸åï¼è¿ç§ç¼è¯å¨å«å交åç¼è¯å¨ãå ¶ä¸çelfæ¯æç¼è¯å¨çæçç®æ æä»¶æ ¼å¼ã(å ¶å®æ们平æ¶ç¨çåçæºç¼è¯å¨å¦GCCâAVRçå·²æ¯äº¤åç¼è¯å¨äºï¼æå°ç°å¨æå¼æ¸ æ¥ä»ä¹æ¯äº¤åç¼è¯å¨)
èµ°äºåªæ¡ç¼è¯è·¯å¾ï¼
ç³»ç»ç¨åºå驱å¨ç¨åºå¾å¾å å«å¾å¤çç¼è¯é项ï¼å¾å¤é项é½æ¯å¨ç¼è¯æ¶éè¿å½ä»¤è¡å®ä¹çï¼å¦ææ³ç¥éç¼è¯çæ¯é£ä¸æ®µç¨åºå¯ä»¥ä½¿ç¨å¦ä¸çæ¹æ³ï¼
#ifdef PLAT_AAA
#error Code for Platform AAA
#else
#error Code NOT for Platform AAA
#endif
è¿æ ·å¨ç¼è¯çæ¶åå°±ç¥éï¼ç¼è¯çæ¯åªä¸æ¡è·¯ç»äºã对äºæ¯æ#pragma message( âI am hereâ)çç¼è¯å¨ä¹å¯ä½¿ç¨#pragma messageé¢ç¼è¯æ令ã
ææä¹ç¥éé£æ®µä»£ç å¨é£ä¸ªæ件ä¸ï¼
ç³»ç»ç¼ç¨ä¸ç»å¸¸éè¦ä½¿ç¨å¨å¤ä¸ªæ件ä¸æç´¢å符串ï¼å¨windowså¹³å°ä¸å¯ä»¥ä½¿ç¨å¹³å°æä¾çå¤æ件å符串æç´¢å·¥å ·ãå¨linuxå¹³å°ä¸ï¼å¯ä»¥ä½¿ç¨grepæ¥æç´¢å符串ãGrepçæç´¢åè½åå强大ï¼æ¯ææ£å表达å¼æç´¢ï¼çç»ä½¿ç¨grep对äºé 读系ç»å驱å¨ç¨åºä»£ç æ¯å¾æ帮å©çã
ç³»ç»æ¯ä»é£ä¸ªæ件å¼å§è¿è¡çï¼
对äºWindows CEç³»ç»ï¼ä¸è¬ä»WINCE\PLATFORM\YourPlatform\KERNEL\HALç®å½çæ个æ±ç¼æ件ä¸ã对äºLinuxç³»ç»çæ¬ä¸åä¼åå¨ä¸å®å·®å¼ï¼ä»¥armå¤çå¨ä¸ºä¾ï¼ä¸è¬ä¼å¨linux2.4.x\arch\arm\kernelçhead-armv.Sä¸ã
ç¨åºæ§è¡å°äºé£éï¼
å¯ä»¥å¨ç¨åºä¸æå ¥å¦ä¸ä»£ç æ¥å®ç°
printf( âI am here %s, %d\nâ,__FILE__,__LINE__);
代ç å°æåºprintfè¯å¥æå¨çæ件ååè¡å·ã
æ¨è书ç®
Jean J.Labrosse MicroC/OS-II The Real-TimeKernel,Second Editionè¿æ¬ä¹¦æ¯ç¬è æ¥è§¦åµå ¥å¼å®æ¶ç³»ç»çå ¥é¨ä¹¦ï¼å¨å½å è½å¤ä¹°å°ä¸æçãè¿æ¬ä¹¦è¾ä¸ºæ¸ æ¥å°è®²è¿°äºå®æ¶ç³»ç»çæ¦å¿µï¼å个ç»æé¨åçå·¥ä½åçï¼ç¹å«æ¯å ¬å¼äºå®æ¶ç³»ç»å æ ¸çæºä»£ç ï¼ä»ç»ç 究å®ä¼åçåªæµ ãæ个å°çæ示ï¼å¯¹äºåå¦è ï¼è¿æ¬ä¹¦å¯ä»¥å ä¸ç第ä¸ç« ï¼ç´æ¥ä»ç¬¬äºç« çèµ·ã
Abraham Silberschatz, Peter Baer Galvin,GregGagne Operating System Conceptsç¬è å¨æå¦è¿ç¨ä¸åç°ï¼æ 论æ¯è®¡ç®æºè¿æ¯çµåå·¥ç¨ä¸ä¸é½æå¾å¤å¦ç对äºæä½ç³»ç»çåºæ¬æ¦å¿µé½æ²¡æææ¸ ï¼å¾å°æå¦çæå®æ´çç³»ç»ç¼ç¨ç»éªãOperating System Conceptsè¿æ¬ä¹¦å¯¹æä½ç³»ç»çæ¦å¿µè®²è¿°åªè½ç¨ç»å ¸æ¥å½¢å®¹ã对äºåµå ¥å¼ç³»ç»æå ´è¶£æ·±å ¥ç 究çåå¦ï¼é¦å è¦æåºç¡æ好ï¼è¿æ¬ä¹¦å°±æäºå¿ 读ä¹ç©äºã
Andrew S. Tanenbaum Computer Networks æèµ·Andrew S. Tanenbaum å¦ä¹ 计ç®æºçåå¦ä¸å®é½ç¥éOPERATINGSYSTEMs:Designand
Implementationè¿æ¬ä¹¦ï¼ç¬è 对äºTanenbaumè¿æ ·çææç±è¡·ä½©æãç½ç»åè®®æ æ¯åµå ¥å¼ç³»ç»ä¸çæ¯æ±æ§ç»æé¨åãæ¿æè´åäºç½ç»æ·±å±ææ¯ç 究çåå¦ï¼è¿æ¬ä¹¦å°ä¸ºä½ 们建ç«ä¸ä¸ªåå®çç½ç»åºç¡ã
Karim Yaghmour Building Embedded Linux Systemsæ¬ä¹¦è¯¦å°½çä»ç»äºåµå ¥å¼linuxç³»ç»çç»æï¼åºæ¬æ¦å¿µåå¦ä½å»å»ºç«å个é¨åãå ¨ä¹¦ç¯å¹ è¾å°ï¼å¯è°çå°ç²¾æãå³å¯ä»¥ä½ä¸ºåµå ¥å¼linuxç³»ç»çå ¥é¨è¯»ç©ï¼åæ¯å¼åè¿ç¨å个é¨åçæåã
Advanced RISC Machines Ltd (ARM) ARM7 TDMI DataSheet Advanced RISC Machines Ltd (ARM) ARMTTechnical Reference Manualå¦ä¹ åµå ¥å¼ç³»ç»ä¸äºè§£å½ååºç¨æ广æ³çåµå ¥å¼å¤çå¨æä¹è¡ï¼ARM7 TDMI ç data sheetæ¯å¦ä¹ ARMç¼ç¨æ¨¡åï¼æ令éç好ä¸è¥¿ãå¨åµå ¥å¼ç³»ç»ä¸ï¼MMUï¼å å管çåå ï¼æ¯å¾éè¦çé¨åï¼åæ¯è¾é¾ç解åææ¡çé¨åãARMTTechnical Reference Manual æ£å¥½å¯ä»¥å¸®ä½ 讲解è¿æ¹é¢çå 容ã
Perter Van Der LinDen Expert C Programmingåµå ¥å¼ç³»ç»çº§ç¼ç¨æ常ç¨çè¯è¨è¿æ¯C ãå¾å¤åå¦é½èªè®¤ä¸ºèªå·±çCè¯è¨å¦çå¾å¥½ï¼é£å¥½ï¼å°±ççè¿æ¬ä¹¦å§ï¼æ¾æ¾èªå·±åExpertså·®è·ã
åµå ¥å¼å¼åä¸æ¡é¢å¼åæ¢æä¸åï¼åæé常大çèç³»ï¼èä¸åå注éå®é æä½è½åãææ¡é¢å¼åç人å¨ä¸å¼å§æ¥è§¦åµå ¥å¼çæ¶åï¼é常转æ¢ä¸è¿æ¥ï¼è¿ä¸»è¦ä½ç°å¨å®ä½ä¸ãå¦æä¸æ说ï¼ä½ æ¯è°ï¼ä½ è¦åä»ä¹ï¼æ对硬件çäºè§£ä» éäºç¼ç¨é¢åï¼PCB设计ä¸çªä¸éï¼ä½å¹¶ä¸è½è¯´ä½ ä¸æ硬件就ä¸è½ä»äºåµå ¥å¼å¼åãä¸ä¸ªç³»ç»çå¼å设计æ¹æ¹é¢é¢ï¼å¨èªå·±æå ´è¶£åçæçé¢åååºèªå·±çè´¡ç®ææ¯æ主è¦çã
1ã硬件设计: éè¦æ硬件设计çç»éªï¼å¯¹åç§åµå ¥å¼å¨ä»¶æå¾å¥½çäºè§£ã
2ãç³»ç»ç§»æ¤ï¼éè¦æ±ç¼ç»éªï¼æä½ç³»ç»åç以ååºå±é©±å¨çäºè§£
3ãåºç¨ç¨åºï¼éè¦æ¡é¢ç¼ç¨ç»éª
在友晶科技DE-Standard开发板上实现单片机(也适用于DE1-SOC)
要在友晶科技DE-Standard开发板上实现单片机,按照北邮学生设计的FPGA平台移植指南,你需要经历一系列精心步骤。首先,从开源内核开始配置软核,内核源码存放在src文件夹,为后续的集成奠定基础。 紧接着,vidc 源码扩展rom、ram和ramx组件,这是存放C程序编译成果(.hex文件)和运行程序的存储空间。深入理解微控制器IP的完整架构,可通过相关网站获取详细说明。 为了将移植到DE-Standard,你需要调整FPGA配置,比如将器件设置为5CSXFC6DEFC6。同时,力天 源码修改rom, ram, ramx IP的device设置,并重置PLL IP,确保它能处理hex文件。此外,mc.v文件是关键,需针对DE-Standard特性进行定制,包括集成数码管显示和按键逻辑。 然后,合理分配引脚,参考DE-Standard手册,特别是数码管段序的配置,以确保所有外设的正常工作。在mc.qsf文件中,可能需要定义虚拟引脚来支持这些功能。 完成所有设置后,点击Quartus进行编译,生成sof文件,这是至关重要的一步。为了验证在DE-Standard上的功能,安装SDCC编译器,通过双击make.bat执行C代码编译,生成main.hex文件。 在Quartus工程中,利用USB Blaster与DE-Standard建立连接,选择相应的设备,配置FPGA并导入编译后的main.hex。通过instance Manager执行写入操作,观察流水灯和数码管的显示,验证移植的成功。如果想深入了解,可以参考相关视频:DE-Standard实现的实战演示。 如果你需要DE-Standard或DE1-SOC的工程模板,可以直接下载:DE-Standard工程可从这里获取,DE1-SOC工程则在这里。祝你成功完成在友晶科技平台的移植过程!2024-12-22 17:07
2024-12-22 17:07
2024-12-22 15:41
2024-12-22 15:31
2024-12-22 15:21
2024-12-22 14:51