www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

首頁(yè) > 評(píng)測(cè) > 野火i.MX RT1052開(kāi)發(fā)板評(píng)測(cè):移植RTT、與STM32H743性能對(duì)比

野火i.MX RT1052開(kāi)發(fā)板評(píng)測(cè):移植RTT、與STM32H743性能對(duì)比

  • 作者:杰杰
  • 來(lái)源:21ic
  • [導(dǎo)讀]
  • i.MX RT系列一經(jīng)推出就受到了市場(chǎng)廣泛關(guān)注,不少第三方也馬不停蹄地進(jìn)行開(kāi)發(fā)板等配套開(kāi)發(fā)資源的開(kāi)發(fā)。本文對(duì)野火 i.MX RT1052開(kāi)發(fā)板進(jìn)行了評(píng)測(cè),主要評(píng)測(cè)項(xiàng)目為:板載資源分析、RTT移植以及與STM32H743的性能對(duì)比測(cè)試。

image9.png

這些就是rtt的一些文件,bsp就是一些板級(jí)相關(guān)的東西,components就是一些組件,看英文單詞都知道啦。然后就是src就是rtt的實(shí)現(xiàn)的源碼,include就是一些頭文件,而libcpu就是一些芯片的支持,tools就是一些rtt的工具,example還不會(huì)的別學(xué)嵌入式了。。。。。

image10.png

看源碼確實(shí)是一個(gè)很輕量級(jí)的操作系統(tǒng),移植起來(lái)也是很簡(jiǎn)單,重點(diǎn)是火哥已經(jīng)幫我們移植好啦,直接用吧,杰杰在學(xué)校rtt的過(guò)程中,發(fā)現(xiàn)跟一些操作系統(tǒng)還是有點(diǎn)不一樣的,他的啟動(dòng)方式就在啟動(dòng)文件已經(jīng)做好了。來(lái)看看:

在components.c中的148行

/* re-define main function */

int $Sub$$main(void)

{

rt_hw_interrupt_disable();

rtthread_startup();

return 0;

}

先關(guān)中斷,再做rtt的啟動(dòng)

int rtthread_startup(void)

{

rt_hw_interrupt_disable();

/* board level initalization

* NOTE: please initialize heap inside board initialization.

*/

rt_hw_board_init();

/* show RT-Thread version */

rt_show_version();

/* timer system initialization */

rt_system_timer_init();

/* scheduler system initialization */

rt_system_scheduler_init();

#ifdef RT_USING_SIGNALS

/* signal system initialization */

rt_system_signal_init();

#endif

/* create init_thread */

rt_application_init();

/* timer thread initialization */

rt_system_timer_thread_init();

/* idle thread initialization */

rt_thread_idle_init();

/* start scheduler */

rt_system_scheduler_start();

/* never reach here */

return 0;

}

里面有一些函數(shù)是我們自己實(shí)現(xiàn)的,比如開(kāi)發(fā)板初始化:rt_hw_board_init,

rtt還是有點(diǎn)好玩的,對(duì)外開(kāi)放了main嘛!我們一般寫(xiě)程序都在main.c中,所以,它又搞了個(gè)main_thread_entry線程(其實(shí)我更喜歡把這些稱作任務(wù),不過(guò)都一樣啦,既然學(xué)了rtt,那就跟官方叫吧)

void main_thread_entry(void *parameter)

{

extern int main(void);

extern int $Super$$main(void);

/* RT-Thread components initialization */

rt_components_init();

/* invoke system main function */

#if defined (__CC_ARM)

$Super$$main(); /* for ARMCC. */

#elif defined(__ICCARM__) || defined(__GNUC__)

main();

#endif

}

這個(gè)函數(shù)是跳轉(zhuǎn)到我們的main.c中的main。下面才是真正實(shí)現(xiàn)我們的代碼的地方。

由于前面說(shuō)了,rtt啟動(dòng)的時(shí)候,會(huì)將開(kāi)發(fā)板相關(guān)資源初始化,所以,我們自己的main就不需要再初始化了,直接開(kāi)啟rtt的線程的創(chuàng)建與啟動(dòng)。

lcd_thread = rt_thread_create("lcd",

lcd_thread_entry,

RT_NULL,

LCD_THREAD_STACK_SIZE,

LCD_THREAD_PRIORITY,

LCD_THREAD_TIMESLICE);

if (lcd_thread != RT_NULL) //創(chuàng)建成功

rt_thread_startup(lcd_thread); //啟動(dòng)線程

else

return -1;

相關(guān)宏定義:

#define LCD_THREAD_PRIORITY 13 /* 優(yōu)先級(jí),數(shù)值越大,優(yōu)先級(jí)越低 */

#define LCD_THREAD_STACK_SIZE 1024 /* 線程棧大小,單位為字節(jié) */

#define LCD_THREAD_TIMESLICE 5 /* 線程時(shí)間片,單位為tick */

然后就是lcd_thread_entry線程的實(shí)現(xiàn)了,這個(gè)自己定義就好啦。

既然是評(píng)測(cè),當(dāng)然得有性能的評(píng)測(cè)啦,一段使用(-O0)低級(jí)優(yōu)化的整形數(shù)計(jì)算,在野火 i.MX RT1052板載的SDRAM上僅跑了21.487秒。在STM32H743上面跑了21.479秒(400M的工作頻率,打開(kāi)CaChe(高速緩存)),而在stm32f103zet6上跑了9分57秒多。性能可見(jiàn)一斑了吧???如果不信可以自行測(cè)試,我可是等了幾分鐘就去刷牙了,回來(lái)還沒(méi)跑完。。。。。

測(cè)試代碼如下:(來(lái)源網(wǎng)絡(luò)的測(cè)試代碼)

void Calculate()

{

unsigned long x;

unsigned long a;

a=1;

for(x=0;x<4294967294;x++)

{

a=a+1;

}

}

image11.png

 i.MX RT1052

image12.png

STM32H743

image13.png

stm32f103zet6

image14.png

在性能上面, i.MX RT1052,估計(jì)是一般mcu無(wú)法跨越的存在了,性能真的是超級(jí)強(qiáng)悍的?次恼碌木W(wǎng)友可能有疑問(wèn)了,明明400M主頻的H7比1052快啊,在此杰杰回答一下,1052是在外部SDRAM上的程序,而H7在片內(nèi)內(nèi)存上,而且H7開(kāi)了cache,能不快嗎,如果這點(diǎn)小程序在1052的片內(nèi)內(nèi)存上跑,絕對(duì)飛起。。。。。但是用上這么強(qiáng)的芯片,絕對(duì)不會(huì)只干這點(diǎn)小程序的活的,到時(shí)候跑GUI,你就發(fā)現(xiàn)速度了。

據(jù)火哥測(cè)試, i.MX RT1052的刷屏速度也很快,1366*768分辨率的屏幕可以達(dá)到52HZ,而1280*800的屏幕則達(dá)到了60HZ,70MHZ左右的VCLK時(shí)鐘,占用SDRAM的50%左右的數(shù)據(jù)吞吐量。

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評(píng)論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開(kāi)放投稿

熱門(mén)標(biāo)簽
項(xiàng)目外包 more+