0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

i.MX RT1052芯片的核心板,性能和代碼詳細(xì)資料概述

h1654155971.7688 ? 來(lái)源:未知 ? 作者:易水寒 ? 2018-06-10 10:55 ? 次閱讀

i.MX RT1052是i.MX RT系列芯片,是由 NXP 半導(dǎo)體公司推出的跨界處理器芯片,該系列下又包括i.MX RT1020、i.MX RT1050及 i.MX RT1060等子系列芯片。所謂“跨界”,是指它自身的定位既非傳統(tǒng)的應(yīng)用處理器也非傳統(tǒng)的微控制器。

傳統(tǒng)的應(yīng)用處理器如手機(jī)主控芯片,它們通常采用 ARM 的 Cortex-A系列內(nèi)核,配合其芯片架構(gòu)使得芯片能實(shí)現(xiàn)更高頻率的運(yùn)行。傳統(tǒng)的微控制器也稱為 MCU,它們通常采用ARM 的 Cortex-M 系列內(nèi)核,相對(duì)來(lái)說(shuō)該內(nèi)核對(duì)中斷響應(yīng)更快,所以具有良好的實(shí)時(shí)性,但其芯片架構(gòu)特別是集成片內(nèi)閃存帶來(lái)了生產(chǎn)技術(shù)限制和成本負(fù)擔(dān),從而限制了其性能。而i.MX RT 系列芯片集成了兩者的優(yōu)點(diǎn),它基于應(yīng)用處理器的芯片架構(gòu),采用了微控制器的內(nèi)核 Cortex-M7,從而具有應(yīng)用處理器的高性能及豐富的功能,又具備傳統(tǒng)微控制器的易用、實(shí)時(shí)及低功耗的特性。

野火的i.MX RT1052核心板搭載了i.MX RT1025DVL6A芯片,Cortex-M7內(nèi)核,主頻高達(dá)600M。130個(gè)IO全部引出。集成32MB SDRAM、128MB NAND FLASH、32MB QSPI FLASH、2Kb EEPROM、LCD-RGB565 FPC接口、1個(gè)SWD調(diào)試接口、1個(gè)uart 調(diào)試接口、1個(gè)電源LED、1個(gè)用戶LED、 一個(gè)復(fù)位按鍵、1個(gè)MODE按鍵、 1個(gè)WAKEUP按鍵 和1個(gè)Microusb接口等資源。芯片I0共130個(gè), 均通過(guò)0.8mm的BTB接口在背面引出,包括SEMC總線,方便我們擴(kuò)展各種模塊。

底板圖片如下:

裝在mini底板上的效果圖,哎,杰杰還是很羨慕Pro底板的,資源豐富。連LCD都能放在板子上,而我的LCD就只能通過(guò)排線弄出來(lái)。

看看火哥核心板的風(fēng)騷走線:

頂層

底層

騷氣得一批,不過(guò)很多信號(hào)線都采用等長(zhǎng)走線,保證了信號(hào)的穩(wěn)定性,這個(gè)值得點(diǎn)贊!!!

介紹一下i.MX RT1052芯片的性能優(yōu)點(diǎn)吧:

1. 無(wú)需片內(nèi)閃存

由于跨界處理器采用了應(yīng)用處理器架構(gòu),具有大幅縮小的 SRAM 位單元,在跨界設(shè)計(jì)架構(gòu)中,SRAM可以配置為具有“零等待”單周期訪問(wèn)的TCM,從而大幅提升系統(tǒng)性能。

2. 高性能

具備高密度片內(nèi) TCM 或緩存的跨界處理器的緩存未命中率可低至 1-2%,因此能夠提供明顯高于 MCU 的有效性能。

3. 低中斷延遲

在協(xié)調(diào)對(duì)內(nèi)部和外部硬件事件做出及時(shí)響應(yīng)方面,中斷在嵌入式系統(tǒng)中發(fā)揮了重要作用。在與用戶交互的實(shí)時(shí)系統(tǒng)中,它們發(fā)揮的作用尤其重要,這是因?yàn)橛捎脩糨斎胗|發(fā)的外部事件需要 CPU 做出可靠的低延遲即時(shí)響應(yīng)。跨界處理器采用 MCU 內(nèi)核構(gòu)建,因此即使它們采用應(yīng)用處理器架構(gòu),也延續(xù)了低中斷延遲這一重要特性??缃缣幚砥鞯闹袛嘌舆t最低可達(dá)到 10-20ns,而應(yīng)用處理器的延遲通常長(zhǎng)達(dá) 1毫秒。

4. 高能效以及安全性。

下面來(lái)說(shuō)說(shuō)固件庫(kù)寫(xiě)的工程吧,按照火哥一貫舒服的代碼風(fēng)格

i.MX RT1052芯片的核心板,性能和代碼詳細(xì)資料概述

而且工程中含有不同版本的工程

i.MX RT1052芯片的核心板,性能和代碼詳細(xì)資料概述

正常來(lái)說(shuō),我們寫(xiě)代碼不可能一次成功的,需要調(diào)試很久才出結(jié)果,可以通過(guò)ram_debug或者sdram_debug版本將程序快速加載到我們的開(kāi)發(fā)板上的RT1052 芯片的內(nèi)部 RAM 中或者是板載的SDRAM 芯片中,實(shí)現(xiàn)快速調(diào)試代碼,但是RAM 空間小,適用于小程序調(diào)試,而板載的sdram則有32MB的空間,適用于大程序的調(diào)試。但是掉電則丟失這些程序,無(wú)法用在產(chǎn)品上,僅做調(diào)試用。

而下面兩個(gè)版本,則可以作為產(chǎn)品的最終代碼,將程序下載到NOR FLASH中,但是下載速度較慢,而且運(yùn)行速度較SDRAM慢,杰杰猜測(cè),我們或許應(yīng)該可以將程序?qū)憺閮啥?,在發(fā)布產(chǎn)品的時(shí)候,從NOR FLASH啟動(dòng),運(yùn)行NOR FLASH的第一段程序,將存在NOR FLASH的第二段程序加載到SDRAM中運(yùn)行,直到掉電。這樣子就能提高速度了吧。

前面的前三個(gè)模式均采用低優(yōu)化等級(jí)(-O0)優(yōu)化,而_flexspi_nor_release版本則采用高優(yōu)化(-O3)等級(jí),以便節(jié)約程序空間,提高運(yùn)行效率。(杰杰吐槽:就是編譯有點(diǎn)久)。

溫馨提示:如果不用mdk看代碼的話,可以去掉“魔術(shù)棒”->Output -> Browse Information的√。然后可以使用source insight看代碼,方便很多,至少比mdk好多了。

i.MX RT1052芯片的核心板,性能和代碼詳細(xì)資料概述

下個(gè)代碼欣賞欣賞。

例程是移植了RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)的(還是要支持一下國(guó)產(chǎn)的操作系統(tǒng)的),來(lái)看看源碼吧。

先介紹介紹RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)(以下簡(jiǎn)稱rtt),操作系統(tǒng)是輕量級(jí)的,利用很小的資源完成實(shí)時(shí)操作系統(tǒng)的工作。

i.MX RT1052芯片的核心板,性能和代碼詳細(xì)資料概述

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

i.MX RT1052芯片的核心板,性能和代碼詳細(xì)資料概述

看源碼確實(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;

}

}

i.MX RT1052芯片的核心板,性能和代碼詳細(xì)資料概述

i.MX RT1052

i.MX RT1052芯片的核心板,性能和代碼詳細(xì)資料概述

STM32H743

i.MX RT1052芯片的核心板,性能和代碼詳細(xì)資料概述

stm32f103zet6

i.MX RT1052芯片的核心板,性能和代碼詳細(xì)資料概述

在性能上面,i.MX RT1052,估計(jì)是一般mcu無(wú)法跨越的存在了,性能真的是超級(jí)強(qiáng)悍的。看文章的網(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ù)吞吐量。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    51002

    瀏覽量

    425204
  • 應(yīng)用處理器
    +關(guān)注

    關(guān)注

    0

    文章

    180

    瀏覽量

    28321
  • 核心板
    +關(guān)注

    關(guān)注

    5

    文章

    1024

    瀏覽量

    29816
  • Cortex-M7
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    9695

原文標(biāo)題:傳說(shuō)中的i.MX RT1052芯片,這塊板子讓它初漏猙獰

文章出處:【微信號(hào):weixin21ic,微信公眾號(hào):21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于M1052核心板多種物聯(lián)網(wǎng)解決方案供您選擇

    方向應(yīng)用設(shè)計(jì)。 一、因物聯(lián)網(wǎng)而生,多種物聯(lián)網(wǎng)解決方案供您選擇 M1052-16F128AWI-T核心板 M1052跨界核心板基于NXP i.MX
    的頭像 發(fā)表于 04-06 09:56 ?9431次閱讀

    飛凌嵌入式推出i.MX RT1052跨界開(kāi)發(fā)

    `2018年8月23日飛凌嵌入式最新發(fā)布基于NXP i.MX RT1052處理器的核心板FET1052-C與開(kāi)發(fā)套件OK
    發(fā)表于 08-31 15:12

    轉(zhuǎn)飛凌嵌入式FET1052-C解決方案 實(shí)現(xiàn)7.1聲道FLAC播放器

    本文介紹了采用飛凌嵌入式FET1052-C核心板快速的實(shí)現(xiàn)7.1聲道FLAC播放器。核心板CPU采用i.MX RT1052,具備528MHz
    發(fā)表于 10-23 10:00

    求野火I.MX RT1052上手指南?

    那位大神有沒(méi)有野火 I.MX RT1052 上手指南啊?
    發(fā)表于 04-02 06:24

    求正點(diǎn)原子號(hào)令者I.MX RT1052的上手指南?

    誰(shuí)能介紹一下I.MX RT1052 號(hào)令者呢?有沒(méi)有正點(diǎn)原子 I.MX RT1052 號(hào)令者上手指南 ?。?/div>
    發(fā)表于 04-02 06:26

    恩智浦i.MX RTxxx系列MCU的特性

    芯片i.MX RT1052,主頻高達(dá)600MHz,直接引爆眾多MCU開(kāi)發(fā)者的神經(jīng)。如今i.MX RT發(fā)布已近三年,陸續(xù)推出了9款型號(hào),細(xì)心的
    發(fā)表于 11-04 07:08

    如何使用Pendrive通過(guò)USB更新i.MX RT1052 EVK上的外部閃存固件?

    尋找為使用外部閃存的 i.MX RT1052 (EVK) 更新固件的解決方案。新文件將在筆式驅(qū)動(dòng)器中可用,該驅(qū)動(dòng)器將連接到 EVK 上的 USB 主機(jī)端口。請(qǐng)幫助/建議任何現(xiàn)成的示例代碼來(lái)實(shí)現(xiàn)這一點(diǎn)。
    發(fā)表于 04-11 06:40

    RT1052上不了電是為什么?

    昨天收到的RT1052,開(kāi)機(jī)自帶歷程可以跑,然后我就下載了個(gè)原子的歷程,下載一半時(shí)卡了一會(huì),然后完成以后核心板就掉電了。試了下,核心板單獨(dú)供電沒(méi)有問(wèn)題,插上核心板的地板也有電,但是
    發(fā)表于 11-08 07:05

    I.MX RT1052代碼執(zhí)行在哪里?

    試用的開(kāi)發(fā)里有了I.MX RT1052 但是看I.MX RT1052代碼與數(shù)據(jù)的SPI Fl
    發(fā)表于 11-09 06:49

    emWin介紹和emWin開(kāi)發(fā)的詳細(xì)資料概述

    i.MX RT1052具有增強(qiáng)型顯示接口(eLCDIF),支持8/16/18/24位的數(shù)據(jù)總線模式。M1052核心板最高可支持1366x768的高清圖像顯示,
    的頭像 發(fā)表于 06-12 19:20 ?6.7w次閱讀

    野火電子基于RT-Thread的i.MX RT1052 EVK Pro板卡特點(diǎn)介紹

    RT-Thread合作伙伴野火電子攜RT-Thread Inside板卡i.MX RT1052 EVK Pro參展NXP技術(shù)日,現(xiàn)場(chǎng)展示了多個(gè)基于R
    的頭像 發(fā)表于 07-16 09:44 ?9096次閱讀

    i.MX RT1052對(duì)視頻應(yīng)用的支持

    Cortex-M7處理器的核心本質(zhì)為微控制器,卻擁有高達(dá)600MHz的主頻,高密度的512KB TCM SRAM和16MB的高速SDRAM,超快的實(shí)時(shí)響應(yīng),超強(qiáng)處理性能賦予了RT1052視頻編解碼
    發(fā)表于 09-22 07:03 ?458次閱讀

    飛凌嵌入式FET1052-C核心板簡(jiǎn)介

    FET1052-C核心板基于NXP公司 i.MX RT1052跨界處理器設(shè)計(jì),搭載ARM Cortex-M7內(nèi)核,集微控制器的低功耗、易用性與應(yīng)用處理器的高
    的頭像 發(fā)表于 11-21 10:08 ?2978次閱讀
    飛凌嵌入式FET<b class='flag-5'>1052</b>-C<b class='flag-5'>核心板</b>簡(jiǎn)介

    RT-Thread文檔_野火 I.MX RT1052上手指南

    RT-Thread文檔_野火 I.MX RT1052 上手指南
    發(fā)表于 02-22 18:25 ?2次下載
    <b class='flag-5'>RT</b>-Thread文檔_野火 <b class='flag-5'>I.MX</b> <b class='flag-5'>RT1052</b>上手指南

    RT-Thread文檔_正點(diǎn)原子 I.MX RT1052號(hào)令者上手指南

    RT-Thread文檔_正點(diǎn)原子 I.MX RT1052 號(hào)令者上手指南
    發(fā)表于 02-22 18:26 ?3次下載
    <b class='flag-5'>RT</b>-Thread文檔_正點(diǎn)原子 <b class='flag-5'>I.MX</b> <b class='flag-5'>RT1052</b>號(hào)令者上手指南