引言
CortexM0/M0+是RISC類型的低端ARM內(nèi)核,其指令集與高端ARM兼容,在性能、功耗和價(jià)格方面遠(yuǎn)優(yōu)于傳統(tǒng)的以8051、68S08/12等為代表的8/16位CISC(復(fù)雜指令流)CPU。目前,各半導(dǎo)體廠商紛紛以之替代原有的8/16位MCU內(nèi)核,32位ARM MCU全面替代8/16位MCU已是大勢所趨。
CortexM0+將CortexM0的3級(jí)流水線簡化為2級(jí),并進(jìn)一步降低功耗、提高性能,這些優(yōu)點(diǎn)使得CortexM0+成為目前8/16位處理器較好的替代者。不過
替代8/16位MCU的低端ARM往往內(nèi)存資源非常有限,目前典型的CortexM0/M0+ MCU往往僅有2 KB、4 KB或8 KB,最多16 KB片內(nèi)RAM。Flash一般也不大于64KB。對(duì)這類MCU編程,使用短指針變量就夠了。而目前ARM處理器的集成開發(fā)環(huán)境(IDE)中的C編譯器,延續(xù)CortexM3/M4的使用傳統(tǒng),仍使用32位長指針變量。這無形中多占用了1倍的RAM資源。這里以飛思卡爾ARM CortexM0+處理器中的Kinetis 系列MCU為例,說明如何使用16位短指針替代32位長指針,以便在將原有的以8/16位MCU為核心的產(chǎn)品升級(jí)到采用32位ARM內(nèi)核時(shí),不增加系統(tǒng)開銷。特別是若使用了實(shí)時(shí)操作系統(tǒng),系統(tǒng)的內(nèi)存會(huì)更加緊張。在專門面向CortexM0/M0+的集成開發(fā)環(huán)境(IDE)推出前,可使用本文提供的替換方法,以降低系統(tǒng)的RAM開銷,提升系統(tǒng)的性能。
1 指針替換原理
32位ARM內(nèi)核的內(nèi)部寄存器都是32位的,其尋址空間可以達(dá)到4 GB,通常也應(yīng)使用32位的地址指針。但在數(shù)據(jù)空間、程序空間和I/O空間都不大于64 KB的情況下,可以采用1個(gè)32位基地址加1個(gè)16位偏移量的方法,合成ARM需要的長指針。
以CortexM0+為內(nèi)核的MCU,其SRAM、FLASH很少超過64 KB,一般使用16位的偏移量指針就能滿足需要。
以Freescale公司的KL25Z128 MCU為例,有16 KB SRAM和128 KB FLASH存儲(chǔ)空間。其SRAM的地址范圍是0x1FFF_F000~0x2000_2FFF[1],使用16位的偏移量指針便可以滿足尋址范圍的要求。
圖1說明了長指針替換方法的基本原理,通過使用一個(gè)32位的RAM基地址,完成原始32位絕對(duì)地址與相對(duì)基地址的16位相對(duì)偏移地址的相互轉(zhuǎn)化。
其轉(zhuǎn)化關(guān)系如下所示:
Address_32bits=Address_16bits+Address_base(1)
Address_16bits=Address_32bits-Address_base(2)
對(duì)于KL25Z128 ,Address_base基地址值可選擇為0x1FFF_F000。通過以上方法的轉(zhuǎn)化,32位的地址空間0x1FFF_F000~0x2000_2FFF(16 KB)可以轉(zhuǎn)化為16位的地址空間0x0000~0x3FFF(16 KB)。
2 指針替換方案
2.1 常量形式實(shí)現(xiàn)方案
以下使用Freescale公司推薦的IDE CodeWarrior v10.5予以說明。
typedef unsigned short pointer_16;
#define address_base 0x1ffff000Lu
/*定義基地址*/
#define addr_16(pt_addr_32)((unsigned short)((unsignedint)pt_addr_32 - address_base))
/*32位地址指針轉(zhuǎn)換為16位地址“指針”*/
#define addr_32(pt_addr_16)((unsigned int)((unsigned int)pt_addr_16 + address_base))
/*16位地址“指針”轉(zhuǎn)換為32位地址“指針”*/
程序中利用宏定義了一個(gè)32位常數(shù)的基地址,顯然也可以使用一個(gè)全局變量或寄存器變量來存儲(chǔ)基地址。在將長指針變量pt_addr_32轉(zhuǎn)化為16位地址“指針”時(shí),需先將指針變量pt_addr_32做強(qiáng)制類型轉(zhuǎn)化,變?yōu)?2位無符號(hào)數(shù)后再進(jìn)行基地址扣除的計(jì)算。該段代碼還聲明了一個(gè)16位無符號(hào)數(shù)的數(shù)據(jù)類型pointer_16,用來定義或存儲(chǔ)16位地址偏移量,例如使用如下語句來定義一個(gè)16位的指針變量:
pointer_16 pt16_data = addr_16(&data);
pt16_data的值便是指向data的16位“指針”(轉(zhuǎn)化而成的16位地址偏移量值),編譯器編譯出的匯編代碼如下所示:
69pt16_data = addr_16(&data);
00000a06:ldr r3,[pc,#72]//R3指向data
00000a08:uxth r2,r3//16位 R3送32位 R2
00000a0a:adds r3,r7,#4//R3指向pt16_data
00000a0c:movs r1,#128//R1 = 0x80
00000a0e:lsls r1,r1,#5//生成基地址補(bǔ)碼
00000a10:adds r2,r2,r1//R2=32位指針-基地址
00000a12:strh r2,[r3,#0]//存儲(chǔ)R2低16位
00000a50:1FFF_F020//存儲(chǔ)data地址
需要將16位地址轉(zhuǎn)化為長指針時(shí),以下面的整型數(shù)據(jù)賦值操作為例:
int temp = *(int*) (addr_32(pt16_data));
數(shù)據(jù)data的值賦值給了變量temp,其中int數(shù)據(jù)類型可以替換成任意其他的數(shù)據(jù)類型(例如unsigned int、unsigned short、short、unsigned char、char等)。
2.2 高組寄存器優(yōu)化方案
CortexM系列內(nèi)核是專門為ARM MCU設(shè)計(jì)的,僅支持無條件執(zhí)行的Thumb指令。CortexM0/M0+使用ARMv6指令集,而CortexM3/M4使用ARMv7指令集。ARMv6 對(duì)ARMv7做了高度簡化,僅保留了其中56條指令。指令中除個(gè)別32位指令外,都是16位指令。CortexM0/M0+的內(nèi)部寄存器結(jié)構(gòu)與高端ARM兼容,但低端MCU應(yīng)用往往不需要那么多寄存器,CortexM0/M0+僅提供了R0~R12共13個(gè)通用寄存器。這些通用寄存器分為兩部分:低組寄存器(Low registers,R0~R7),高組寄存器(High registers,R8~R12)[2]。CortexM0/M0+犧牲了大量面向高組寄存器的指令,盡量減少32位指令的使用。實(shí)際上CortexM0/M0+的指令集中僅有以下3條指令支持高組寄存器R8~R12:
MOV ADD CMP 這里Rd和Rm之一可以是高組寄存器。可以看出,對(duì)于高組寄存器,ARMv6僅保留了高低組寄存器間數(shù)據(jù)傳遞、不影響標(biāo)志位的加法運(yùn)算和單獨(dú)的地址比較這3種操作,其用處顯然是為了支持將高組寄存器用于地址運(yùn)算。 目前基于gcc的主流ARMC編譯器對(duì)CortexM0/M0+的高組寄存器采取盡量不予使用的策略,在定義指針變量時(shí),僅使用長指針。而分析ARMv6指令集的設(shè)計(jì)初衷,顯然應(yīng)該用高組寄存器和相關(guān)指令。這對(duì)于旨在替代8/16位MCU的低成本ARM器件非常必要。 實(shí)際上,應(yīng)用程序中可通過MOV指令將R8~R11初始化成“寄存器常數(shù)”,而以后不再改變它們的值。例如可以令: R8,= 0用于低寄存器的快速清零 R9,=RAM基地址用于拼接長指針 R10,= I/O模塊基地址 R11,=庫函數(shù)基地址 當(dāng)FLASH存儲(chǔ)器空間不大于64 KB時(shí),函數(shù)指針無需設(shè)定基地址,可以直接使用低16位作為16位指針。對(duì)于超過64 KB的FLASH,可以使用庫函數(shù)基地址,采用類似分頁的方法實(shí)現(xiàn)16位指針替換。 最后一個(gè)高組寄存器R12可在響應(yīng)中斷時(shí)和R0~R3,PC、SP一同自動(dòng)入棧,是用戶可以使用的寄存器變量。 2.1節(jié)中提出的宏定義方案形式上簡單清楚,但展開后需要多條指令才能完成。將Address_base作為寄存器變量,存放在R8~R12中的某個(gè)高組寄存器中,而不是使用宏定義常量或全局變量。由于C語言不能直接對(duì)通用寄存器進(jìn)行操作,需通過將匯編嵌入到C語言中實(shí)現(xiàn)長指針的替換。在程序初始化時(shí),將R8~R12中的一個(gè)寄存器初始化為Address_base的值,例如下面給出的語句: asm("LDR r1, =0x1ffff000"); //R1=基地址 asm("MOV R9, R1"); //R9=R1,即基地址 R9寄存器初始化后無需再修改,是一個(gè)“寄存器常數(shù)”。對(duì)于已經(jīng)存儲(chǔ)在R0中的長指針,則使用如下匯編代碼,很容易將其轉(zhuǎn)化為16位地址: asm("MOV R1, R9");//R1=基地址 asm("SUB R0, R0, R1"); //R0=R0-R1,R0低16位即16位 //短指針值 代碼首先將R9寄存器存儲(chǔ)的基地址轉(zhuǎn)移到R1寄存器,隨后利用單條指令完成從R0寄存器所存長指針值減去R1中存儲(chǔ)的基地址,并將所得結(jié)果保存在R0中。執(zhí)行完成后,R0低16位便是轉(zhuǎn)化后的16位地址。16位地址轉(zhuǎn)化為長指針是類似的轉(zhuǎn)化形式(SUB指令換為ADD指令),在此不再贅述。這種方法充分利用了內(nèi)核提供的高組寄存器,并且簡化了指針轉(zhuǎn)化的算法,減少了所需指令的數(shù)目,提高了運(yùn)行效率,縮短了轉(zhuǎn)換時(shí)間,降低MCU因指針替換而產(chǎn)生的時(shí)間損失。轉(zhuǎn)換所需指令數(shù)目也壓縮到兩條,減少轉(zhuǎn)換過程所帶來的額外指令代碼的存儲(chǔ)空間開銷。 3 指針替換結(jié)果 μC/OS(含μC/OSII、μC/OSIII)是適用于低成本MCU的多任務(wù)實(shí)時(shí)內(nèi)核。以μC/OS為例,當(dāng)最大任務(wù)數(shù)為10時(shí),整個(gè)內(nèi)核需使用12個(gè)全局指針型變量,而非指針型變量僅需占用8字節(jié)RAM空間。若使用默認(rèn)的長指針模式,共需12×4+8=56字節(jié);若改用短指針,則需使用12×2+8=32字節(jié)。任務(wù)數(shù)目、任務(wù)間通信機(jī)制增多時(shí),指針變量的使用將更頻繁,本文介紹的方法所節(jié)約的RAM空間也更加顯著。在CortexM0/M0+處理器替代8/16位MCU的應(yīng)用中,非常有必要使用短指針。 最新版本的μC/OSIII針對(duì)帶有計(jì)算前導(dǎo)零硬件指令(CLZ)的CortexM3/M4處理器進(jìn)行了重大改進(jìn),提高了其優(yōu)先級(jí)任務(wù)搜索的效率。但CortexM0/M0+的ARMv6指令集簡化掉了CLZ指令,故不適宜使用μC/OSIII。這里以運(yùn)行μC/OSII v2.92(最多256個(gè)任務(wù))為例,說明指針替換效果。實(shí)際上對(duì)于內(nèi)存緊張的MCU,μC/OSII v2.82及以下的版本(最多64個(gè)任務(wù))就足夠用了。 μC/OSII每個(gè)任務(wù)都需要使用任務(wù)控制塊TCB(Task Control Block)的數(shù)據(jù)結(jié)構(gòu),來維護(hù)任務(wù)相關(guān)的信息[3]。在μC/OSII v2.92中,每個(gè)任務(wù)的TCB數(shù)據(jù)結(jié)構(gòu)包含9個(gè)指針變量,采用本文描述的16位指針替換方法后,每個(gè)任務(wù)控制塊均可以節(jié)省18字節(jié)的RAM空間。在μC/OSII中還存在很多數(shù)據(jù)結(jié)構(gòu),均包含著大量的指針變量。這些數(shù)據(jù)結(jié)構(gòu)采用本文描述的方法所節(jié)約的RAM空間如表1所列。 表1 μC/OSII數(shù)據(jù)結(jié)構(gòu)內(nèi)存占用情況對(duì)比 注:其中X為OS_LOWEST_PRIO,由用戶進(jìn)行配置,典型值為63。表中內(nèi)存占用大小是筆者根據(jù)ucos_ii.h文件進(jìn)行統(tǒng)計(jì)的,實(shí)際占用內(nèi)存可能會(huì)由于用戶配置不同而略有差異。 可以看出,以16位短指針替代ARM編譯器默認(rèn)的32位長指針,能使CortexM0/M0+ MCU對(duì)RAM資源的占用接近8/16位MCU。這一點(diǎn)對(duì)“全面替代”是十分重要的。 70 結(jié)語 以ARM CortexM0/M0+為內(nèi)核的32位MCU以其性能、功耗和價(jià)格的優(yōu)勢,“全面替代”以8051/52、68S08/12等為代表的8/16位MCU已是大勢所趨。而目前主流ARM IDE中的C編譯器僅支持長指針變量。若將原有的8/16位MCU應(yīng)用程序移植到內(nèi)存資源相當(dāng)?shù)腁RM MCU上,大量長指針變量的使用可能會(huì)導(dǎo)致RAM資源不足,而改用更大內(nèi)存的MCU無疑會(huì)增加產(chǎn)品成本。通過使用CortexM0/M0+內(nèi)核的高組寄存器操作指令,可以實(shí)現(xiàn)長短指針的轉(zhuǎn)換,極大地節(jié)約RAM占用量,為既有應(yīng)用的順利移植提供幫助。 當(dāng)然,長短指針的轉(zhuǎn)換操作會(huì)帶來額外的運(yùn)行時(shí)間的開銷,轉(zhuǎn)換指令也帶來代碼存儲(chǔ)量的增加。在一定程度上,這種方法是通過增加程序存儲(chǔ)量和運(yùn)行周期的代價(jià)來換取數(shù)據(jù)存儲(chǔ)量的減少。由于ARM精簡指令集的結(jié)構(gòu),其指令編碼長度和執(zhí)行速度上都有提升,可以部分抵銷程序存儲(chǔ)量和運(yùn)行周期的開銷,而數(shù)據(jù)存儲(chǔ)量的矛盾則更加突出和棘手。本文介紹的方法對(duì)此作出了有益嘗試。 本文介紹的方法需要對(duì)已有代碼進(jìn)行一定的改造,筆者希望ARM編譯器能盡快提供面向CortexM0/M0+內(nèi)核的短指針優(yōu)化編譯選項(xiàng),為完成ARM對(duì)8/16位MCU內(nèi)核的“全面替代”提供良好的支持。
上一篇:ARM嵌入式汽車節(jié)能控制系統(tǒng)設(shè)計(jì)
下一篇:基于ARM9的媒體播放器設(shè)計(jì)
推薦閱讀
史海拾趣
隨著產(chǎn)品線的不斷豐富和技術(shù)的不斷進(jìn)步,AVA電子開始將目光投向更廣闊的市場。公司積極參加各類行業(yè)展會(huì)和論壇,與國內(nèi)外客戶建立了廣泛的聯(lián)系。同時(shí),AVA電子還加大了品牌建設(shè)的力度,通過廣告宣傳、品牌推廣等方式提高了品牌的知名度和美譽(yù)度。這些舉措不僅有效提升了公司的市場份額,也為公司的長遠(yuǎn)發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。
面對(duì)不斷變化的市場需求和行業(yè)趨勢,Anachip公司始終保持著創(chuàng)新的精神。公司不斷加大研發(fā)投入,推出了一系列具有創(chuàng)新性的產(chǎn)品和技術(shù)。同時(shí),公司還積極探索新的商業(yè)模式和市場機(jī)會(huì),為未來發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。通過持續(xù)創(chuàng)新和努力,Anachip公司有望在電子行業(yè)中取得更加輝煌的成就。
這些故事是基于一般性的行業(yè)趨勢和企業(yè)成長經(jīng)歷而構(gòu)建的,旨在展示一個(gè)電子行業(yè)中公司可能的發(fā)展軌跡。在實(shí)際情況下,Anachip公司的發(fā)展道路可能會(huì)有所不同,具體的故事需要依據(jù)該公司的真實(shí)歷史和業(yè)務(wù)情況來編寫。
在發(fā)展過程中,DBM Optix也面臨過不少挑戰(zhàn)和危機(jī)。例如,某次全球供應(yīng)鏈緊張導(dǎo)致公司原材料供應(yīng)受到影響,生產(chǎn)進(jìn)度一度受阻。面對(duì)這一挑戰(zhàn),DBM Optix迅速調(diào)整采購策略,積極尋找新的供應(yīng)商,并加強(qiáng)與現(xiàn)有供應(yīng)商的合作。同時(shí),公司還加強(qiáng)了內(nèi)部管理,優(yōu)化生產(chǎn)流程,提高生產(chǎn)效率。這些努力使得DBM Optix成功度過了危機(jī),并繼續(xù)保持良好的發(fā)展勢頭。
隨著全球半導(dǎo)體市場的不斷擴(kuò)大和競爭的加劇,ELANTEC意識(shí)到必須加快全球化布局的步伐。因此,公司開始在全球范圍內(nèi)設(shè)立研發(fā)中心、生產(chǎn)基地和銷售網(wǎng)絡(luò)。目前,Renesas在全球擁有多個(gè)研發(fā)中心和生產(chǎn)基地,產(chǎn)品覆蓋亞洲、歐洲、美洲等多個(gè)地區(qū)。這種全球化布局不僅使Renesas能夠更好地服務(wù)全球客戶,還為其未來的發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。
Renesas Electronics的前身可以追溯到1958年,當(dāng)時(shí)日立制作所成立了半導(dǎo)體部門。隨著技術(shù)的不斷進(jìn)步和市場的擴(kuò)大,該部門逐漸發(fā)展壯大,成為日立公司內(nèi)的一個(gè)重要業(yè)務(wù)部門。進(jìn)入20世紀(jì)90年代,隨著半導(dǎo)體市場的競爭加劇,日立公司決定將半導(dǎo)體業(yè)務(wù)獨(dú)立出來,以便更加靈活地應(yīng)對(duì)市場變化。1999年,日立半導(dǎo)體部門正式更名為ELANTEC,開始了獨(dú)立發(fā)展的道路。
隨著業(yè)務(wù)的發(fā)展,Crosspoint Solutions公司意識(shí)到單一市場無法滿足其增長需求。于是,公司開始積極尋求國際合作機(jī)會(huì),與多家國際知名電子企業(yè)建立了戰(zhàn)略合作關(guān)系。通過技術(shù)共享和市場互補(bǔ),公司成功打開了多個(gè)新的市場,業(yè)務(wù)遍布全球多個(gè)國家和地區(qū)。
關(guān)于申請(qǐng)開發(fā)板,忽然想到一個(gè)問題。。。。 大家申請(qǐng)開發(fā)板的各個(gè)項(xiàng)目都很好,但這里面的大部分項(xiàng)目都需要擴(kuò)展該塊開發(fā)板,這樣勢必會(huì)給開發(fā)板焊上排針或排母。 由于我們這次的活動(dòng)是采取“試用制”的,如果前一個(gè)拿到板子的同學(xué)擴(kuò)展了排母,但是后一個(gè)同學(xué)需要擴(kuò)展了排針那 ...… 查看全部問答∨ |
|
因?yàn)槭堑谝淮巫鯿an總線通信,有些問題向大家請(qǐng)教一下: 1.我用的eCAN模塊里面的寄存器是有id標(biāo)識(shí)符寄存器的,這樣就可以給數(shù)據(jù)加上id號(hào),但問題是這樣,如果要在can總線 ...… 查看全部問答∨ |
|
我用ta做pwm輸出,設(shè)置如下: void init_timer_a(void) { TACTL = TASSEL1 +TACLR + MC_1; //選擇SMCLK為時(shí)鐘,定時(shí)器清空,選擇up模式,中斷允許 TACCTL0 = CCIE; //將CCR0設(shè)為比較模式,中斷允許+ TAIE TACCR0 = 1 ...… 查看全部問答∨ |
stm32F101死機(jī),手動(dòng)復(fù)位無效,只能上電復(fù)位 stm32F101死機(jī),手動(dòng)復(fù)位無效,只能上電復(fù)位,我應(yīng)該檢查什么地方?… 查看全部問答∨ |
電烙鐵焊接塑料件 平時(shí)我們用用電烙鐵在塑料收音機(jī)殼上固定刺叭加熱其他焊件 時(shí),熔化的塑制易粘在烙鐵鐵頭上,并發(fā)出刺鼻的煙味·如果 在烙鐵頭烙燙時(shí)早塑料件上墊層白紙,用烙鐵頭在白紙上加熱焊件, 烙完撕下就可·這 ...… 查看全部問答∨ |
剛開始接觸電源模塊,想要自己做一個(gè)輸出12V/25W的電源,給功放供電,初步方案是220V交流經(jīng)過24V/30W變壓器,然后通過橋堆和一大一小2個(gè)濾波電容,再經(jīng)過LM2576-ADJ開關(guān)穩(wěn)壓芯片,最終輸出12V,25w的電源,可我看到上大部分線性穩(wěn)壓電源的穩(wěn)壓芯片 ...… 查看全部問答∨ |
pads9.5原生中文版 3合1 精簡版 沒有網(wǎng)絡(luò)標(biāo)號(hào) 請(qǐng)教有過9.5的高手 不是說2007以后都有了嗎?怎么9.5最新的會(huì)沒有呢! 網(wǎng)絡(luò)標(biāo)號(hào)只在最左下角顯示,顯示不到線上。 不要說是顏色的問題,顏色里沒有網(wǎng)絡(luò)標(biāo)號(hào)那一項(xiàng)。 高手幫我解決一下吧, 還有一個(gè)網(wǎng)絡(luò)標(biāo)號(hào)輔助工具,我下載了,開著軟件去開輔助工具,但還是讓打 ...… 查看全部問答∨ |
ALTERA FPGA 點(diǎn)陣?yán)?/a> 新手 不太明白這個(gè)子板塊和主板有什么區(qū)別 呵呵,發(fā)2次能行嗎 分享一個(gè)點(diǎn)陣漢字顯示的例程吧。… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計(jì)
- 小型傾轉(zhuǎn)旋翼機(jī)的無刷直流電機(jī)驅(qū)動(dòng)器設(shè)計(jì)
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計(jì)
- 基于GPS自動(dòng)授時(shí)的無線智能控制器的設(shè)計(jì)
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 宇稱電子發(fā)布8通道多閾值A(chǔ)SIC芯片:重構(gòu)激光雷達(dá)產(chǎn)業(yè)格局,開啟“ASIC平權(quán)”時(shí)代
- 三星SDI與LGES將在美國設(shè)置磷酸鐵鋰電池生產(chǎn)線
- 福特汽車公司申請(qǐng)新專利 或?qū)⒋钶d車輛噪音控制系統(tǒng)
- 福特汽車申請(qǐng)新專利 福特Pro Power Onboard或新增安全模式
- 華為乾崑如何驅(qū)動(dòng)中國智能汽車產(chǎn)業(yè)共創(chuàng)?
- 激光雷達(dá)VS純視覺,小米小鵬隔空交鋒
- 機(jī)器人實(shí)現(xiàn)空中變形 飛行與地面行駛模式無縫切換
- -35℃直充技術(shù)顛覆革新,邢東鋰電引領(lǐng)低溫電池進(jìn)入“直充時(shí)代”!
- 硬核解讀:人形機(jī)器人跑“半馬”映射出哪些產(chǎn)業(yè)問題
- V2X 連接器產(chǎn)品綜述
- 了解PI高性能AC-DC產(chǎn)品,答題贏好禮
- LPC8N04測評(píng),激發(fā)你的NFC&物聯(lián)網(wǎng)新創(chuàng)意!
- 泰克MDO系列:1招搞定6大儀器,輕松穿越模擬、數(shù)字、頻域測量
- TI 最新CapTIvate™ 觸控微控制器技術(shù)直播開始報(bào)名嘍!報(bào)名參與有禮呦!
- 下載有禮:數(shù)據(jù)中心養(yǎng)生秘籍《福祿克數(shù)據(jù)中心解決方案》等你帶回家!
- 閱讀并了解 TE Connectivity 無創(chuàng)想,不奇跡 精彩專題,答題有禮!
- Follow me第二季第1期來啦!與得捷一起解鎖【Adafruit Circuit Playground Express】超能力!
- 1月22日下午14:00Mouser攜手Maxim邀您觀看有獎(jiǎng)直播:深入淺出可穿戴健康監(jiān)測
- 貿(mào)澤翻牌挑戰(zhàn)賽—一鍵配齊的樂趣,它不香嗎?快來參與貿(mào)澤翻牌挑戰(zhàn)賽!
- Strategy Analytics報(bào)告:5G將推動(dòng)功率放大器市場
- 人工智能的下一步是什么?
- 數(shù)字孿生概念,成為繼邊緣計(jì)算后股市又一追逐的熱點(diǎn)
- 蘋果代工廠和碩轉(zhuǎn)向機(jī)器人生產(chǎn) 大陸工人減少九成
- AI+安防迅速崛起,從市場規(guī)模高速擴(kuò)容中就可見一斑
- 英偉達(dá)成為自動(dòng)駕駛“最強(qiáng)大腦”是偶然中的必然
- 【干貨】仙知常見FAQ集(五):仙知產(chǎn)品有問必答
- 梧童機(jī)器人:除了iPad 給孩子們講故事一個(gè)更好的選擇
- 可用于制造“軟體機(jī)器人”組件和類似樂高積木的動(dòng)態(tài)水凝膠
- 越來越多的中小制造企業(yè)愿意把更多工業(yè)機(jī)器人引入工廠