1.1 前后臺系統(tǒng):
早期嵌入式開發(fā)沒有嵌入式操作系統(tǒng)的概念 ,直接操作裸機,在裸機上寫程序,比如用51單片機基本就沒有操作系統(tǒng)的概念。通常把程序分為兩部分:前臺系統(tǒng)和后臺系統(tǒng)。
簡單的小系統(tǒng)通常是前后臺系統(tǒng),這樣的程序包括一個死循環(huán)和若干個中斷服務(wù)程序:應(yīng)用程序是一個無限循環(huán),循環(huán)中調(diào)用API函數(shù)完成所需的操作,這個大循環(huán)就叫做后臺系統(tǒng)。中斷服務(wù)程序用于處理系統(tǒng)的異步事件,也就是前臺系統(tǒng)。前臺是中斷級,后臺是任務(wù)級。
1.2 RTOS系統(tǒng):
RTOS全稱為:Real Time OS,就是實時操作系統(tǒng),強調(diào)的是:實時性。實時操作系統(tǒng)又分為硬實時和軟實時。硬實時要求在規(guī)定的時間內(nèi)必須完成操作 ,硬實時系統(tǒng)不允許超時,在軟實時里面處理過程超時的后果就沒有那么嚴格。
在實時操作系統(tǒng)中,我們可以把要實現(xiàn)的功能劃分為多個任務(wù),每個任務(wù)負責實現(xiàn)其中的一部分,每個任務(wù)都是一個很簡單的程序,通常是一個死循環(huán)。
RTOS操作系統(tǒng):FreeRTOS,UCOS,RTX,RT-Thread,DJYOS等。
RTOS操作系統(tǒng)的核心內(nèi)容在于:實時內(nèi)核。
可剝奪型內(nèi)核:
RTOS的內(nèi)核負責管理所有的任務(wù),內(nèi)核決定了運行哪個任務(wù),何時停止當前任務(wù)切換到其他任務(wù),這個是內(nèi)核的多任務(wù)管理能力。多任務(wù)管理給人的感覺就好像芯片有多個CPU,多任務(wù)管理實現(xiàn)了CPU資源的最大化利用,多任務(wù)管理有助于實現(xiàn)程序的模塊化開發(fā),能夠?qū)崿F(xiàn)復雜的實時應(yīng)用。
RTOS中的經(jīng)典代表作:FreeRTOS,而FreeOS的內(nèi)核是可剝奪型的,所以我們簡單提一下什么是可剝奪型內(nèi)核,關(guān)于FreeRTOS內(nèi)核的詳細內(nèi)容我們會在后續(xù)的視頻中專門講解的。
可剝奪內(nèi)核顧名思義就是可以剝奪其他任務(wù)的CPU使用權(quán),它總是運行就緒任務(wù)中的優(yōu)先級最高的那個任務(wù)。
2.1 FreeRTOS系統(tǒng)簡介:
FreeRTOS是一個可裁剪、可剝奪型的多任務(wù)內(nèi)核,而且沒有任務(wù)數(shù)限制。FreeRTOS提供了實時操作系統(tǒng)所需的所有功能,包括資源管理、同步、任務(wù)通信等。
FreeRTOS是用C和匯編來寫的,其中絕大部分都是用C語言編寫的,只有極少數(shù)的與處理器密切相關(guān)的部分代碼才是用匯編寫的,F(xiàn)reeRTOS結(jié)構(gòu)簡潔,可讀性很強!最主要的是非常適合初次接觸嵌入式實時操作系統(tǒng)學生、嵌入式系統(tǒng)開發(fā)人員和愛好者學習。
為什么學FreeRTOS
1、因為FreeROTS開源。
2、FreeRTOS免費
3、FreeRTOS是很多第三方組件欽定的系統(tǒng)!
2.2 FreeRTOS相關(guān)資料查找:
1、FreeRTOS官網(wǎng):http://www.freertos.org/。
2、開源電子網(wǎng):www.openedv.com。
3、其他論壇。
FreeRTOS 移植
2.2.1 向工程中添加相應(yīng)文件
1、添加FreeRTOS 源碼
在基礎(chǔ)工程中新建一個名為FreeRTOS 的文件夾,如圖2.2.1.1 所示:
創(chuàng)建FreeRTOS 文件夾以后就可以將FreeRTOS 的源碼添加到這個文件夾中,添加完以后如圖2.2.1.2 所示:
在1.3.2 小節(jié)中詳細的講解過portable 文件夾,我們只需要留下keil、MemMang 和RVDS這三個文件夾,其他的都可以刪除掉,完成以后如圖2.2.1.3 所示:
2、向工程分組中添加文件
打開基礎(chǔ)工程,新建分組FreeRTOS_CORE 和FreeRTOS_PORTABLE,然后向這兩個分組中添加文件,如圖2.2.1.4 所示:
分組FreeRTOS_CORE 中的文件在什么地方就不說了,打開FreeRTOS 源碼一目了然。重點來說說FreeRTOS_PORTABLE 分組中的port.c 和heap_4.c 是怎么來的,port.c 是RVDS 文件夾下的ARM_CM3 中的文件,因為STM32F103 是Cortex-M3 內(nèi)核的,因此要選擇ARM_CM3中的port.c 文件。heap_4.c 是MemMang 文件夾中的,前面說了MemMang 是跟內(nèi)存管理相關(guān)
的,里面有5 個c 文件:heap_1.c、heap_2.c、heap_3.c、heap_4.c 和heap_5.c。這5 個c 文件是五種不同的內(nèi)存管理方法,就像從北京到上海你可以坐火車、坐飛機,如果心情好的話也可以走路,反正有很多種方法,只要能到上海就行。這里也一樣的,這5 個文件都可以用來作為FreeRTOS 的內(nèi)存管理文件,只是它們的實現(xiàn)原理不同,各有利弊。這里我們選擇heap_4.c,至于原因,后面會有一章節(jié)專門來講解FreeRTOS 的內(nèi)存管理,到時候大家就知道原因了。這里就先選擇heap_4.c,畢竟本章的重點是FreeRTOS 的移植。
3、添加相應(yīng)的頭文件路徑
添加完FreeRTOS 源碼中的C 文件以后還要添加FreeRTOS 源碼的頭文件路徑,頭文件路徑如圖2.2.1.5 所示:
頭文件路徑添加完成以后編譯一下,看看有沒有什么錯誤,結(jié)果會發(fā)現(xiàn)提示打不開“FreeRTOSConfig.h”這個文件,如圖2.2.1.6 所示:
這是因為缺少FreeRTOSConfig.h 文件,這個文件在哪里找呢?你可以自己創(chuàng)建,顯然這不是一個明智的做法。我們可以找找FreeRTOS 的官方移植工程中會不會有這個文件,打開FreeRTOS 針對STM32F103 的移植工程文件,文件夾是CORTEX_STM32F103_Keil,打開以后如圖2.2.1.7 所示:
果然!官方的移植工程中有這個文件,我們可以使用這個文件,但是建議大家使用我們例程中的FreeRTOSConf.h 文件,這個文件是FreeRTOS 的系統(tǒng)配置文件,不同的平臺其配置不同,但是我們提供的例程中的這個文件肯定是針對ALIENTEK 開發(fā)板配置正確的。這個文件復制到什么地方大家可以自行決定,這里我為了方便放到了FreeRTOS 源碼中的include 文件夾下。FreeRTOSConfig.h 是何方神圣?看名字就知道,他是FreeRTOS 的配置文件,一般的操作系統(tǒng)都有裁剪、配置功能,而這些裁剪及配置都是通過一個文件來完成的,基本都是通過宏定義來完成對系統(tǒng)的配置和裁剪的,關(guān)于FreeRTOS 的配置文件FreeRTOSConfig.h 后面也會有一章節(jié)來詳細的講解。到這里我們再編譯一次,沒有錯誤!如圖2.2.1.8 所示:
如果還有錯誤的話大家自行根據(jù)錯誤類型查找和修改錯誤!
2.2.2 修改SYSTEM 文件
SYSTEM 文件夾里面的文件一開始是針對UCOS 而編寫的,所以如果使用FreeRTOS 的話就需要做相應(yīng)的修改。本來打算讓SYSTEM 文件夾也支持FreeRTOS,但是這樣的話會導致SYSTEM 里面的文件太過于復雜,這樣非常不利于初學者學習,所以這里就專門針對FreeRTOS修改了SYSTEM 里面的文件。
1、修改sys.h 文件
sys.h 文件修改很簡單,在sys.h 文件里面用宏SYSTEM_SUPPORT_OS 來定義是否使用OS,我們使用了FreeRTOS,所以應(yīng)該將宏SYSTEM_SUPPORT_OS 改為1。
//0,不支持os
//1,支持os
#define SYSTEM_SUPPORT_OS 1 //定義系統(tǒng)文件夾是否支持OS
2、修改usart.c 文件
usart.c 文件修改也很簡單,usart.c 文件有兩部分要修改,一個是添加FreeRTOS.h 頭文件,默認是添加的UCOS 中的includes.h 頭文件,修改以后如下:
//如果使用os,則包括下面的頭文件即可.
#if SYSTEM_SUPPORT_OS
#include "FreeRTOS.h" //os 使用
#endif
另外一個就是USART1 的中斷服務(wù)函數(shù),在使用UCOS 的時候進出中斷的時候需要添加OSIntEnter()和OSIntExit(),使用FreeRTOS 的話就不需要了,所以將這兩行代碼刪除掉,修改以后如下:
void USART1_IRQHandler(void) //串口1 中斷服務(wù)程序
{
u8 Res;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART1); //讀取接收到的數(shù)據(jù)
if((USART_RX_STA&0x8000)==0) //接收未完成
{
if(USART_RX_STA&0x4000) //接收到了0x0d
{
if(Res!=0x0a)USART_RX_STA=0; //接收錯誤,重新開始
else USART_RX_STA|=0x8000; //接收完成了
}
else //還沒收到0X0D
{
if(Res==0x0d)USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;
}
}
}
}
}
3、修改delay.c 文件
delay.c 文件修改的就比較大了,因為涉及到FreeRTOS 的系統(tǒng)時鐘,delay.c 文件里面有4個函數(shù),先來看一下函數(shù)SysTick_Handler(),此函數(shù)是滴答定時器的中斷服務(wù)函數(shù),代碼如下:
extern void xPortSysTickHandler(void);
//systick 中斷服務(wù)函數(shù),使用OS 時用到
void SysTick_Handler(void)
{
if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系統(tǒng)已經(jīng)運行
{
xPortSysTickHandler();
}
}
FreeRTOS 的心跳就是由滴答定時器產(chǎn)生的,根據(jù)FreeRTOS 的系統(tǒng)時鐘節(jié)拍設(shè)置好滴答定時器的周期,這樣就會周期觸發(fā)滴答定時器中斷了。在滴答定時器中斷服務(wù)函數(shù)中調(diào)用FreeRTOS 的API 函數(shù)xPortSysTickHandler()。delay_init()是用來初始化滴答定時器和延時函數(shù),代碼如下:
//初始化延遲函數(shù)
//SYSTICK 的時鐘固定為AHB 時鐘,基礎(chǔ)例程里面SYSTICK 時鐘頻率為AHB/8
//這里為了兼容FreeRTOS,所以將SYSTICK 的時鐘頻率改為AHB 的頻率!
//SYSCLK:系統(tǒng)時鐘頻率
void delay_init()
{
u32 reload;
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);//選擇外部時鐘 HCLK
fac_us=SystemCoreClock/1000000; //不論是否使用OS,fac_us 都需要使用
reload=SystemCoreClock/1000000; //每秒鐘的計數(shù)次數(shù) 單位為M
reload*=1000000/configTICK_RATE_HZ; //根據(jù)configTICK_RATE_HZ 設(shè)定溢出
//時間reload 為24 位寄存器,最大值:
//16777216,在72M 下,約合0.233s 左右
fac_ms=1000/configTICK_RATE_HZ; //代表OS 可以延時的最少單位
SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk; //開啟SYSTICK 中斷
SysTick->LOAD=reload; //每1/configTICK_RATE_HZ 秒中斷
//一次
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //開啟SYSTICK
}
前面我們說了FreeRTOS 的系統(tǒng)時鐘是由滴答定時器提供的,那么肯定要根據(jù)FreeRTOS 的系統(tǒng)時鐘節(jié)拍來初始化滴答定時器了,delay_init()就是來完成這個功能的。FreeRTOS 的系統(tǒng)時鐘節(jié)拍由宏configTICK_RATE_HZ 來設(shè)置,這個值我們可以自由設(shè)置,但是一旦設(shè)置好以后我們就要根據(jù)這個值來初始化滴答定時器,其實就是設(shè)置滴答定時器的中斷周期。在基礎(chǔ)例程中滴答定時器的時鐘頻率設(shè)置的是AHB 的1/8,這里為了兼容FreeRTOS 將滴答定時器的時鐘頻率改為了AHB,也就是72MHz!這一點一定要注意!接下來的三個函數(shù)都是延時的,代碼如下:
//延時nus
//nus:要延時的us 數(shù).
//nus:0~204522252(最大值即2^32/fac_us@fac_us=168)
void delay_us(u32 nus)
{
u32 ticks;
u32 told,tnow,tcnt=0;
u32 reload=SysTick->LOAD; //LOAD 的值
ticks=nus*fac_us; //需要的節(jié)拍數(shù)
told=SysTick->VAL; //剛進入時的計數(shù)器值
while(1)
{
tnow=SysTick->VAL;
if(tnow!=told)
{
//這里注意一下SYSTICK 是一個遞減的計數(shù)器就可以了.
if(tnow told=tnow; if(tcnt>=ticks)break; //時間超過/等于要延遲的時間,則退出. } }; } //延時nms,會引起任務(wù)調(diào)度 //nms:要延時的ms 數(shù) //nms:0~65535 void delay_ms(u32 nms) { if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系統(tǒng)已經(jīng)運行 { if(nms>=fac_ms) //延時的時間大于OS 的最少時間周期 { vTaskDelay(nms/fac_ms); //FreeRTOS 延時 } nms%=fac_ms; //OS 已經(jīng)無法提供這么小的延時了, //采用普通方式延時 } delay_us((u32)(nms*1000)); //普通方式延時 } //延時nms,不會引起任務(wù)調(diào)度 //nms:要延時的ms 數(shù) void delay_xms(u32 nms) { u32 i; for(i=0;i delay_us()是us 級延時函數(shù),delay_ms 和delay_xms()都是ms 級的延時函數(shù),delay_us()和delay_xms()不會導致任務(wù)切換。delay_ms()其實就是對FreeRTOS 中的延時函數(shù)vTaskDelay()的簡單封裝,所以在使用delay_ms()的時候就會導致任務(wù)切換。delay.c 修改完成以后編譯一下,會提示如圖2.2.2.1 所示錯誤: 圖2.2.2.1 的錯誤提示表示在port.c、delay.c 和stm32f10x_it.c 中三個重復定義的函數(shù):SysTick_Handler()、SVC_Handler()和PendSV_Handler(),這三個函數(shù)分別為滴答定時器中斷服務(wù)函數(shù)、SVC 中斷服務(wù)函數(shù)和PendSV 中斷服務(wù)函數(shù),將stm32f10x_it.c 中的三個函數(shù)屏蔽掉,如圖2.2.2.2 所示: 再次編譯代碼,應(yīng)該沒有錯誤了,如果還是錯誤的話自行根據(jù)錯誤類型修改!至此,SYSTEM文件夾就修改完成了。 2.3 移植驗證實驗 2.3.1 實驗程序設(shè)計 1、實驗?zāi)康?p>編寫簡單的FreeRTOS 應(yīng)用代碼,測試FreeRTOS 的移植是否成功。鑒于大家還沒正式學習FreeRTOS,可以直接將本實驗代碼復制粘貼到自己的移植工程中。 2、實驗設(shè)計 本實驗設(shè)計四個任務(wù):start_task()、led0_task ()、led1_task ()和float_task(),這四個任務(wù)的任務(wù)功能如下: start_task():用來創(chuàng)建其他三個任務(wù)。 led0_task ():控制LED0 的閃爍,提示系統(tǒng)正在運行。 led1_task ():控制LED1 的閃爍。 float_task():簡單的浮點測試任務(wù),用于測試STM32F4 的FPU 是否工作正常。 3、實驗工程 FreeRTOS 實驗2-1 FreeRTOS 移植實驗。 4、實驗程序與分析 ●任務(wù)設(shè)置 #include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "FreeRTOS.h" #include "task.h" /************************************************ ALIENTEK 戰(zhàn)艦STM32F103 開發(fā)板 FreeRTOS 實驗2-1 FreeRTOS 移植實驗-庫函數(shù)版本 技術(shù)支持:www.openedv.com 淘寶店鋪:http://eboard.taobao.com 關(guān)注微信公眾平臺微信號:"正點原子",免費獲取STM32 資料。 廣州市星翼電子科技有限公司 作者:正點原子 @ALIENTEK ************************************************/ #define START_TASK_PRIO 1 //任務(wù)優(yōu)先級 #define START_STK_SIZE 128 //任務(wù)堆棧大小 TaskHandle_t StartTask_Handler; //任務(wù)句柄 void start_task(void *pvParameters); //任務(wù)函數(shù) #define LED0_TASK_PRIO 2 //任務(wù)優(yōu)先級 #define LED0_STK_SIZE 50 //任務(wù)堆棧大小 TaskHandle_t LED0Task_Handler; //任務(wù)句柄 void led0_task(void *p_arg); //任務(wù)函數(shù) #define LED1_TASK_PRIO 3 //任務(wù)優(yōu)先級 #define LED1_STK_SIZE 50 //任務(wù)堆棧大小 TaskHandle_t LED1Task_Handler; //任務(wù)句柄 void led1_task(void *p_arg); //任務(wù)函數(shù) ● main()函數(shù) int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//設(shè)置系統(tǒng)中斷優(yōu)先級分組4 delay_init(); //延時函數(shù)初始化 uart_init(115200); //初始化串口 LED_Init(); //初始化LED //創(chuàng)建開始任務(wù) xTaskCreate((TaskFunction_t )start_task, //任務(wù)函數(shù) (const char* )"start_task", //任務(wù)名稱 (uint16_t )START_STK_SIZE, //任務(wù)堆棧大小 (void* )NULL, //傳遞給任務(wù)函數(shù)的參數(shù) (UBaseType_t )START_TASK_PRIO, //任務(wù)優(yōu)先級 (TaskHandle_t* )&StartTask_Handler); //任務(wù)句柄 vTaskStartScheduler(); //開啟任務(wù)調(diào)度 } ● 任務(wù)函數(shù) //開始任務(wù)任務(wù)函數(shù) void start_task(void *pvParameters) { taskENTER_CRITICAL(); //進入臨界區(qū) //創(chuàng)建LED0 任務(wù)
上一篇:STM32CubeMX+FreeRTOS實驗---使用兩個實例,共用一個task
下一篇:STM32使用FreeRTOS中的鏈表創(chuàng)建節(jié)點與列表項
推薦閱讀
史海拾趣
Defense Supply Center Columbus公司自成立之初,就深知技術(shù)創(chuàng)新對于電子行業(yè)的重要性。公司投入大量資源,建立起一支專業(yè)的研發(fā)團隊,專注于研發(fā)先進的軍事電子設(shè)備和系統(tǒng)。通過不斷的技術(shù)創(chuàng)新,公司成功開發(fā)出了一系列高性能、高可靠性的軍事電子產(chǎn)品,為國防事業(yè)做出了重要貢獻。這些產(chǎn)品的成功推出,不僅提升了公司的市場地位,也為公司贏得了眾多客戶的信賴和好評。
經(jīng)過近百年的發(fā)展,CDE公司始終堅守品質(zhì)至上的原則,為全球客戶提供高品質(zhì)的電容器產(chǎn)品。公司通過不斷的技術(shù)研發(fā)和產(chǎn)品升級,逐步在全球市場上樹立了良好的口碑。如今,CDE的電容器產(chǎn)品已廣泛應(yīng)用于電源、電機、驅(qū)動器、航空電子、電力和軍用電子設(shè)備等多個領(lǐng)域,贏得了全球客戶的信賴。
隨著產(chǎn)品技術(shù)的不斷成熟和市場競爭的加劇,Davicom開始積極拓展市場,加強品牌建設(shè)。公司加大市場推廣力度,積極參加國內(nèi)外各類展會和論壇,與潛在客戶建立聯(lián)系。同時,Davicom還注重提高產(chǎn)品質(zhì)量和服務(wù)水平,贏得了客戶的信任和好評。
Fairchild Semiconductor在創(chuàng)立之初就致力于半導體技術(shù)的研發(fā)與創(chuàng)新。公司推出了多種具有革命性意義的半導體產(chǎn)品,如邏輯門、功率MOSFET、模擬集成電路等,這些產(chǎn)品不僅在當時市場上取得了巨大的成功,更為Fairchild在半導體行業(yè)中確立了領(lǐng)導地位。
ADC始終堅持以技術(shù)創(chuàng)新為核心競爭力,不斷投入研發(fā)資源,探索新的技術(shù)領(lǐng)域。目前,公司正積極研發(fā)應(yīng)用于物聯(lián)網(wǎng)、人工智能等前沿領(lǐng)域的探測器技術(shù),并計劃推出更多具有創(chuàng)新性的產(chǎn)品。展望未來,ADC將繼續(xù)致力于技術(shù)創(chuàng)新和市場拓展,努力成為電子行業(yè)的領(lǐng)軍企業(yè)。
這五個故事展示了Advanced Detector Corp公司從創(chuàng)立初期到逐漸發(fā)展壯大的過程,體現(xiàn)了公司在技術(shù)創(chuàng)新、市場擴張、戰(zhàn)略合作等方面的努力和成就。同時,這些故事也揭示了ADC在電子行業(yè)中的重要地位和影響力。
面對激烈的市場競爭和不斷上升的成本壓力,芯聯(lián)集成通過優(yōu)化成本結(jié)構(gòu)、提高生產(chǎn)效率等措施,成功降低了生產(chǎn)成本。同時,公司還加強了與供應(yīng)商的合作,實現(xiàn)了供應(yīng)鏈的優(yōu)化管理。這些努力使芯聯(lián)集成在保持產(chǎn)品質(zhì)量的同時,降低了產(chǎn)品售價,提升了盈利能力。
我的硬件是PXA270 通過16位數(shù)據(jù)總線連接到64MBYTE的FLASH P33,地址總線是26位 p33是由兩塊32M的flash組成的,在程序中不能同時訪問上下兩塊FLASH的地址 而是需要有一個地址總線,即最高位的A25作為內(nèi)部片選,選擇當前訪問的是BOTTOM 還是top flas ...… 查看全部問答∨ |
|
我用的TI的DM642DSP和BCM5221以太網(wǎng)芯片,進行連網(wǎng) 采用UDP協(xié)議,報文頭: typedef union { Uint8 Bytes[6]; Uint16 Words[3]; }MacAddr; // Ethernet Header #define ETHHDR_SIZE&nbs ...… 查看全部問答∨ |
wince編譯時,點擊sysgen后但是沒通過,出現(xiàn)在BSP里面有個錯誤,是不是得重新SYSGEN還是只需build出錯的代碼然后再make就可以了呀?… 查看全部問答∨ |
這是本人在淘寶上購得的FPGA開發(fā)板的地址,http://item.taobao.com/item.htm?spm=a230r.1.10.12.XBn1Ov&id=13851235569,內(nèi)有詳細內(nèi)容,可供大家了解,由于個人原因,買后一直沒用過,可以說是全新的,現(xiàn)在要畢業(yè)實習離校了,想低價出售,個人的理 ...… 查看全部問答∨ |
在照明行業(yè),人們對于LED光源的調(diào)光往往有個誤區(qū),即認為對比其他光源(熒光燈,金鹵燈和鈉燈等)的調(diào)光LED相對容易的多。而現(xiàn)實是LED光源調(diào)光技術(shù)在工程中的應(yīng)用中往往不盡人意,為什么會是這樣的情形?是LED光源的調(diào)光 ...… 查看全部問答∨ |
哪些手段確保FPGA外部芯片提供的數(shù)據(jù)準確無誤地進入FPGA內(nèi)部? 通常采用哪些手段確保FPGA外部芯片(比如ad芯片,存儲器讀數(shù)據(jù)時)提供的數(shù)據(jù)準確無誤地進入FPGA內(nèi)部? \0\0\0eeworldpostqq… 查看全部問答∨ |
“芯靈思”免費送開發(fā)板活動第三期(9.15~9.21)及第二期中獎結(jié)果公布??! 本帖最后由 芯靈思 于 2014-9-14 23:41 編輯 “芯靈思”攜手“EEWorld”開展免費送開發(fā)板活動,于2014年9月1號開始,每周評獎一次,停止時間另行通知。趕緊喊你的小伙伴一起上!!人多機會大!!1、活動周期:每周評獎一次 (本期:9月15日00:00~9月 ...… 查看全部問答∨ |
設(shè)計資源 培訓 開發(fā)板 精華推薦
- 晶心科技:只需提供兩個設(shè)計文件,就能輕松擴展RISC-V指令集
- 艾邁斯歐司朗先進的高精度溫度傳感器助推動物健康管理
- Microchip與臺達電子簽署碳化硅解決方案合作協(xié)議,共創(chuàng)電源管理未來
- 馬斯克被曝將旗下腦機接口公司 Neuralink 登記為“小微企業(yè)”
- 寒武紀宣布將募資 39.85 億元加碼 AI 大模型芯片與軟件平臺
- 如何加快基于RISC-V的SoC項目上市時間?西門子EDA給出了解法
- 負責任的賦能技術(shù)實現(xiàn)邊緣AI全面適用
- 半導體創(chuàng)新推動能源格局演變的三種方式
- 大模型怎么幫助RISC-V設(shè)計和驗證?Nuclei Model讓芯來的IP更有競爭力
- 合見工軟如何幫助“香山”解決高性能多核RISC-V驗證難題?