[導(dǎo)讀] IO口速度測(cè)試,使用以下程序測(cè)試高電平脈寬。 while(1) { P0 = 0xf; P0 = 0x0; }同等條件下與其他MCU比較: 單片機(jī)/處理器
IO口速度測(cè)試,使用以下程序測(cè)試高電平脈寬。
while(1)
{
P0 = 0xf;
P0 = 0x0;
}
同等條件下與其他MCU比較:
|
單片機(jī)/處理器
|
工作頻率
|
高脈沖寬度
|
| ASTRO 8051硬核 |
25MHz |
約1us |
| ASTRO 8051硬核 |
50MHz |
約500ns |
| ASTRO 8051硬核 |
100MHz |
約250ns |
| STC89C516 |
11.0592MHz |
約2.16us |
| NIOS II/e 32位軟核 |
25MHz |
約2.5us |
| NIOS II/s 32位軟核 |
25MHz |
約160ns |
| NIOS II/f 32位軟核 |
25MHz |
約160ns |
在兩次操作之間插入延時(shí)函數(shù),分別延時(shí)delay(1)、delay(2)、delay(3)、delay(4)。測(cè)試延時(shí)函數(shù)如下:
void delay(uchar cnt)
{
uchar i =0;
while(i < cnt)
{
i++;
}
}
由于delay()函數(shù)調(diào)用一次會(huì)有一些額外開(kāi)銷(xiāo)(如賦初值等),所以我們通過(guò)不同延時(shí)值的實(shí)際延時(shí)差來(lái)看指令運(yùn)行的速度。換句話說(shuō),對(duì)前面的程序,可以通過(guò)每次delay()函數(shù)的差值來(lái)計(jì)算每多執(zhí)行一次i++和一次i
特權(quán)同學(xué)曾使用相同條件測(cè)試了51單片機(jī),通常11.0592MHz下工作的51單片機(jī)每多執(zhí)行一次i++和一次i
|
延時(shí)函數(shù)
|
ASTRO 8051硬核
|
NIOS II/s 32位軟核
|
|
50MHz
|
100MHz
|
25MHz
|
50MHz
|
| Delay(1) |
5.0us |
2.5us |
6.5us |
4us |
| Delay(2) |
6.6us |
3.3us |
9us |
6us |
| Delay(3) |
8.3us |
4.2us |
11.5us |
7.5us |
| Delay(4) |
9.9us |
5.0us |
14us |
9.5us |
| i++與i |
約1.63us |
約0.83us |
約2.5us |
約1.25us |
簡(jiǎn)單的一些性能測(cè)試,發(fā)現(xiàn)這個(gè)51硬核還是有花頭的,至于穩(wěn)定性和可靠性上還需繼續(xù)驗(yàn)證和嘗試。當(dāng)然,本文的測(cè)試是使用了片內(nèi)的存儲(chǔ)器作為代碼和數(shù)據(jù)存儲(chǔ),實(shí)際速度性能和存儲(chǔ)器的性能關(guān)系非常大,是需要進(jìn)一步考核的項(xiàng)目。
欲知詳情,請(qǐng)下載word文檔
下載文檔
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。