chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

【感芯科技64線(xiàn)程MC3172開(kāi)發(fā)板免費(fèi)試用體驗(yàn)】這個(gè)芯片不一樣,硬件多線(xiàn)程MCU體驗(yàn)

開(kāi)發(fā)板試用精選 ? 來(lái)源:開(kāi)發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-13 11:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來(lái)源電子發(fā)燒友社區(qū),作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2306123_1_1.html



前言

對(duì)于RTOS開(kāi)發(fā)我們知道,線(xiàn)程調(diào)度不能太頻繁,因?yàn)檐浖M(jìn)行上下文切換需要時(shí)間,調(diào)度太頻繁則調(diào)度時(shí)間占的比例會(huì)越來(lái)越大,實(shí)際運(yùn)行用戶(hù)代碼的時(shí)間就會(huì)很少效率降低??刹豢梢詼p少這個(gè)調(diào)度時(shí)間呢,可以,感芯的MC3172就用硬件去實(shí)現(xiàn)了這個(gè)上下文切換個(gè)調(diào)度,使得實(shí)時(shí)性更高,用戶(hù)也不需要考慮這個(gè)軟件調(diào)度切換花掉的時(shí)間了。

MC3172這個(gè)芯片是一個(gè)非常大的創(chuàng)新,我們下面實(shí)際來(lái)體驗(yàn)下。

資料

http://www.gxchip.cn/down/show-70.html

https://whycan.com/f_57.html

https://gitee.com/gxchip

概述

CPU:MC3172,32 位RISC 處理器,個(gè)64線(xiàn)程同步并行運(yùn)行。最高200MHz主頻,3.37coremark/MHz。

數(shù)據(jù)段與代碼段共享128K字節(jié)SRAM可配置為

96KCODE+32KDATA

64KCODE+64KDATA

32KCODE+96KDATA

開(kāi)發(fā)環(huán)境

http://www.mounriver.com/download

下載MounRiver_Studio_Setup_V181.zip

安裝沒(méi)有什么特別的,過(guò)程略。

在http://www.gxchip.cn/down/show-70.html下下載

MC3172資料合集_v1.12.zip

分析

配置

時(shí)鐘

MC3172 擁有4 個(gè)時(shí)鐘源,

  • 0 內(nèi)嵌 200MHz 高速RC 振蕩器 默認(rèn)配置。
  • 1 內(nèi)嵌 8MHz 低速RC 振蕩器
  • 2 外部支持 4MHz~40MHz 高速振蕩器(無(wú)源)
  • 3 外部支持最高133MHz 輸入時(shí)鐘(有源)

線(xiàn)程配置工具_(dá)V1.exe工具中如下
image.png

對(duì)應(yīng)的代碼位于thread_start.c

**#if** ROTHD_COLCK_SOURCE_SEL==0

(*(**volatile** u32*)(0x50050108))=0x00200003;

(*(**volatile** u32*)(0x50050108))=0x00200007;

(*(**volatile** u32*)(0x50050108))=0x0020000f;

(*(**volatile** u32*)(0x50050108))=0x0020010f;

**#endif**

**#if** ROTHD_COLCK_SOURCE_SEL==1

(*(**volatile** u32*)(0x50050108))=0x00300003;

(*(**volatile** u32*)(0x50050108))=0x00300007;

(*(**volatile** u32*)(0x50050108))=0x0030000f;

(*(**volatile** u32*)(0x50050108))=0x0030010f;


**#endif**

**#if** ROTHD_COLCK_SOURCE_SEL==2

(*(**volatile** u32*)(0x50050088))=0x1d00;

(*(**volatile** u32*)(0x50050090))=0xff000000;

(*(**volatile** u32*)(0x50050098))=0x00000000;

(*(**volatile** u32*)(0x50050108))=0x00000003;

(*(**volatile** u32*)(0x50050108))=0x00000007;

(*(**volatile** u32*)(0x50050108))=0x0000000f;

(*(**volatile** u32*)(0x50050108))=0x0000010f;

**for** (u8 var = 0;  var < 64; ++ var)

{

(*(**volatile** u32*)(0x50050090))=0xff000000+var;

(*(**volatile** u32*)(0x50050098))=0x00000001;

(*(**volatile** u32*)(0x50050098))=0x00000203;

**while** ((((*(**volatile** u8*)(0x500500ca)))&0x80)==0);

**while** ((((*(**volatile** u8*)(0x500500ca)))&0x80)!=0);

**if** ((((*(**volatile** u16*)(0x500500c8))))>16380){ **break** ;}


}


**#endif**

**#if** ROTHD_COLCK_SOURCE_SEL==3

(*(**volatile** u32*)(0x50050108))=0x00100003;

(*(**volatile** u32*)(0x50050108))=0x00100007;

(*(**volatile** u32*)(0x50050108))=0x0010000f;

(*(**volatile** u32*)(0x50050108))=0x0010010f;

**#endif**

線(xiàn)程頻率

64 個(gè)線(xiàn)程每個(gè)線(xiàn)程最高可以運(yùn)行在主頻的1/4,最低是主頻的1/1024,

不使用的線(xiàn)程可設(shè)置為空閑,空閑線(xiàn)程完全不運(yùn)行,也不產(chǎn)生功耗。64 個(gè)線(xiàn)程分屬4 個(gè)線(xiàn)

程組,每個(gè)線(xiàn)程組的最高主頻份額不能超過(guò)主頻的1/4。

實(shí)際上可以理解為64個(gè)線(xiàn)程去共享主頻分時(shí)執(zhí)行。

線(xiàn)程配置工具_(dá)V1.exe工具中如下
image.png

對(duì)應(yīng)的代碼位于thread_start.c

**#ifdef** ROTHD_THREAD1_VALID

    *( **int** *)(THD_TS_ADDR+8)=ROTHD_THREAD1_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD2_VALID

    *( **int** *)(THD_TS_ADDR+16)=ROTHD_THREAD2_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD3_VALID

    *( **int** *)(THD_TS_ADDR+24)=ROTHD_THREAD3_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD5_VALID

    *( **int** *)(THD_TS_ADDR+40)=ROTHD_THREAD5_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD6_VALID

    *( **int** *)(THD_TS_ADDR+48)=ROTHD_THREAD6_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD7_VALID

    *( **int** *)(THD_TS_ADDR+56)=ROTHD_THREAD7_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD9_VALID

    *( **int** *)(THD_TS_ADDR+72)=ROTHD_THREAD9_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD10_VALID

    *( **int** *)(THD_TS_ADDR+80)=ROTHD_THREAD10_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD11_VALID

    *( **int** *)(THD_TS_ADDR+88)=ROTHD_THREAD11_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD13_VALID

    *( **int** *)(THD_TS_ADDR+104)=ROTHD_THREAD13_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD14_VALID

    *( **int** *)(THD_TS_ADDR+112)=ROTHD_THREAD14_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD15_VALID

    *( **int** *)(THD_TS_ADDR+120)=ROTHD_THREAD15_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD17_VALID

    *( **int** *)(THD_TS_ADDR+136)=ROTHD_THREAD17_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD18_VALID

    *( **int** *)(THD_TS_ADDR+144)=ROTHD_THREAD18_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD19_VALID

    *( **int** *)(THD_TS_ADDR+152)=ROTHD_THREAD19_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD21_VALID

    *( **int** *)(THD_TS_ADDR+168)=ROTHD_THREAD21_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD22_VALID

    *( **int** *)(THD_TS_ADDR+176)=ROTHD_THREAD22_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD23_VALID

    *( **int** *)(THD_TS_ADDR+184)=ROTHD_THREAD23_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD25_VALID

    *( **int** *)(THD_TS_ADDR+200)=ROTHD_THREAD25_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD26_VALID

    *( **int** *)(THD_TS_ADDR+208)=ROTHD_THREAD26_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD27_VALID

    *( **int** *)(THD_TS_ADDR+216)=ROTHD_THREAD27_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD29_VALID

    *( **int** *)(THD_TS_ADDR+232)=ROTHD_THREAD29_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD30_VALID

    *( **int** *)(THD_TS_ADDR+240)=ROTHD_THREAD30_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD31_VALID

    *( **int** *)(THD_TS_ADDR+248)=ROTHD_THREAD31_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD33_VALID

    *( **int** *)(THD_TS_ADDR+264)=ROTHD_THREAD33_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD34_VALID

    *( **int** *)(THD_TS_ADDR+272)=ROTHD_THREAD34_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD35_VALID

    *( **int** *)(THD_TS_ADDR+280)=ROTHD_THREAD35_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD37_VALID

    *( **int** *)(THD_TS_ADDR+296)=ROTHD_THREAD37_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD38_VALID

    *( **int** *)(THD_TS_ADDR+304)=ROTHD_THREAD38_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD39_VALID

    *( **int** *)(THD_TS_ADDR+312)=ROTHD_THREAD39_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD41_VALID

    *( **int** *)(THD_TS_ADDR+328)=ROTHD_THREAD41_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD42_VALID

    *( **int** *)(THD_TS_ADDR+336)=ROTHD_THREAD42_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD43_VALID

    *( **int** *)(THD_TS_ADDR+344)=ROTHD_THREAD43_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD45_VALID

    *( **int** *)(THD_TS_ADDR+360)=ROTHD_THREAD45_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD46_VALID

    *( **int** *)(THD_TS_ADDR+368)=ROTHD_THREAD46_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD47_VALID

    *( **int** *)(THD_TS_ADDR+376)=ROTHD_THREAD47_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD49_VALID

    *( **int** *)(THD_TS_ADDR+392)=ROTHD_THREAD49_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD50_VALID

    *( **int** *)(THD_TS_ADDR+400)=ROTHD_THREAD50_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD51_VALID

    *( **int** *)(THD_TS_ADDR+408)=ROTHD_THREAD51_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD53_VALID

    *( **int** *)(THD_TS_ADDR+424)=ROTHD_THREAD53_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD54_VALID

    *( **int** *)(THD_TS_ADDR+432)=ROTHD_THREAD54_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD55_VALID

    *( **int** *)(THD_TS_ADDR+440)=ROTHD_THREAD55_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD57_VALID

    *( **int** *)(THD_TS_ADDR+456)=ROTHD_THREAD57_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD58_VALID

    *( **int** *)(THD_TS_ADDR+464)=ROTHD_THREAD58_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD59_VALID

    *( **int** *)(THD_TS_ADDR+472)=ROTHD_THREAD59_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD61_VALID

    *( **int** *)(THD_TS_ADDR+488)=ROTHD_THREAD61_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD62_VALID

    *( **int** *)(THD_TS_ADDR+496)=ROTHD_THREAD62_FREQCFG_VALUE;

**#endif**

 

**#ifdef** ROTHD_THREAD63_VALID

    *( **int** *)(THD_TS_ADDR+504)=ROTHD_THREAD63_FREQCFG_VALUE;

**#endif**

程序/DATA空間

128KB RAM可以劃分3種配置

線(xiàn)程配置工具_(dá)V1.exe工具中如下
image.png

對(duì)應(yīng)的代碼位于thread_start.c

實(shí)際就是寫(xiě)DATA_RAM_RATIO寄存器,用于指定DATA的大小(32KBx1,32KBx2,32KBx3),

剩下的就是CODE區(qū)域。

**#if** ROTHD_DATA_RAM_VALUE==32768*3

    DATA_RAM_RATIO=0x60;

**#endif**

**#if** ROTHD_DATA_RAM_VALUE==32768*2

    DATA_RAM_RATIO=0x40;

**#endif**

**#if** ROTHD_DATA_RAM_VALUE==32768

    DATA_RAM_RATIO=0x20;

**#endif**

??臻g

程序/DATA空間分配好后,再?gòu)腄ATA空間中分配棧空間

64 個(gè)線(xiàn)程,每個(gè)線(xiàn)程都有自己獨(dú)立的??臻g,且在數(shù)據(jù)空間允許的范

圍內(nèi)隨意分配,只要所有非空閑線(xiàn)程的??臻g總和不超過(guò)數(shù)據(jù)空間的大小即可(數(shù)據(jù)空間有

192 字節(jié)的保留區(qū)不可使用),??臻g大小需要是4 字節(jié)的整數(shù)倍

線(xiàn)程配置工具_(dá)V1.exe工具中如下
image.png

對(duì)應(yīng)的代碼位于thread_start.c

比如線(xiàn)程1,通過(guò)rothd_set_sp_const設(shè)置SP寄存器

**void**  **thread1_initial** ( **void** )

{

**#ifdef** ROTHD_THREAD1_VALID

**extern** **void**  **thread1_main** ( **void** );

    rothd_set_sp_const(ROTHD_THREAD1_STACKCFG_VALUE|0x20000000);

    thread1_main();

**#endif**

}

其他線(xiàn)程類(lèi)似

資源共享

各個(gè)線(xiàn)程之間共享全局變量實(shí)現(xiàn)通訊

執(zhí)行過(guò)程分析

連接腳本

看程序的運(yùn)行過(guò)程一般都是從連接腳本入手,先找入口點(diǎn)

再看MEMMAP等。

MC3172.lds

可以看到入口點(diǎn)

ENTRY(thread_start)

空間分配

MEMORY

{

    CODE_SPACE (x)  : ORIGIN = 0x00000010, LENGTH =  65520

    DATA_SPACE (rw) : ORIGIN = 0x20000010, LENGTH =  48672

}

以下可以看到.text.thread_start放在了CODE_SPACE的開(kāi)始處。后續(xù)就是DATA區(qū)域分配。所以最開(kāi)始就是執(zhí)行thread_start函數(shù)。

. = 0x00000010;

  .text           :

  {

    *(.text.thread_start)

    *(.text)

    *(.text.unlikely .text.*_unlikely .text.unlikely.*)

    *(.text.exit .text.exit.*)

    *(.text.startup .text.startup.*)

    *(.text.hot .text.hot.*)

  }

執(zhí)行過(guò)程

thread_start ->

(*thread_initial_pointer[THREAD_ID])()

其中THREAD_ID寄存器指定一個(gè)運(yùn)行的線(xiàn)程,一般是0。

則執(zhí)行

thread0_initial->

進(jìn)行時(shí)鐘源配置,CODE/DATA區(qū)域配置,線(xiàn)程頻率分配。

thread0_main->

其他線(xiàn)程運(yùn)行

通過(guò)thread_initial_pointer查找到初始化函數(shù)

threadx_initial

進(jìn)行棧配置然后

threadx_main運(yùn)行

體驗(yàn)

雙擊打開(kāi)

MC3172資料合集_v1.12MC3172_TemplateMC3172.wvproj

打開(kāi)工程瀏覽器
image.png

右鍵點(diǎn)擊

GPIO_GPCOM_TIMER_Example.c->Properties

按如下操作,將該文件添加到編譯。
image.png

取消

thread0_main~thread4_main相關(guān)代碼注釋

菜單欄

Project->Build ALL

生成進(jìn)行鏡像位于

MC3172資料合集_v1.12MC3172_TemplateRelease

雙擊該目錄下開(kāi)發(fā)板程序下載_v1.1.exe

按如下單次下載運(yùn)行
image.png

image.png

上述下載到RAM中掉電不保存,也可以點(diǎn)擊燒錄固件到這樣可以掉電保存。

從以下可以看出GPCOM8 P2:RXD PC2 GPCOM8 P3:TXD PC3 波特率115200

GPCOM_UART_EXAMPLE(GPCOM8_BASE_ADDR);

 

GPCOM_SET_IN_PORT(gpcom_sel,(GPCOM_RXD_IS_P2));

    GPCOM_SET_OUT_PORT(gpcom_sel,( 

            GPCOM_P0_OUTPUT_DISABLE|GPCOM_P3_OUTPUT_ENABLE|GPCOM_P2_OUTPUT_DISABLE|GPCOM_P1_OUTPUT_DISABLE| 

            GPCOM_P0_IS_HIGH       |GPCOM_P3_IS_TXD       |GPCOM_P2_IS_HIGH       |GPCOM_P1_IS_HIGH 

                      ));

image.png

image.png

按如下接上串口線(xiàn),使用串口調(diào)試助手設(shè)置為115200-8-n-1, 上位機(jī)發(fā)送數(shù)據(jù)開(kāi)發(fā)板收到后原樣返回。

對(duì)應(yīng)代碼如下

u8 rx_data_rp=0;

u8 rx_data=0;

rx_data_rp=GPCOM_GET_RX_WP(gpcom_sel);

 while (1) {

      if (rx_data_rp!=(GPCOM_GET_RX_WP(gpcom_sel))){

          rx_data=GPCOM_GET_RX_DATA(gpcom_sel,rx_data_rp);

          GPCOM_PUSH_TX_DATA(gpcom_sel,rx_data);

          rx_data_rp++;

          rx_data_rp&=0x0f;

     }

}

image.png

image.png

總結(jié)

  1. 打開(kāi)線(xiàn)程配置工具_(dá)V1.exe時(shí)能自動(dòng)加載當(dāng)前設(shè)置,這樣方便做修改,而不需要全部從頭配置。

  2. 64個(gè)線(xiàn)程共享主頻,所以實(shí)際并不是并行運(yùn)行,而是硬件進(jìn)行分時(shí)輪流執(zhí)行,也就是并沒(méi)有64個(gè)運(yùn)行環(huán)境(寄存器組等),實(shí)際是硬件完成了RTOS線(xiàn)程切換的上下文切換等動(dòng)作,各線(xiàn)程執(zhí)行的時(shí)間占比根據(jù)線(xiàn)程主頻控制器設(shè)置的共享頻率進(jìn)行分配。硬件完成上下文切換時(shí)間損失很小,這樣在高調(diào)度頻率的情況就避免了上下文切換時(shí)間占比較大導(dǎo)致的效率低的問(wèn)題,這樣比RTOS軟件實(shí)現(xiàn)實(shí)時(shí)性效率更高。

  3. 外設(shè)模塊能提供更詳細(xì)的編程手冊(cè)更好。

  4. 總結(jié)下從開(kāi)發(fā)環(huán)境,配置工具等來(lái)看還是比較容易入手的,尤其是硬件實(shí)現(xiàn)線(xiàn)程切換調(diào)度,減少了RTOS移植,上下文調(diào)度切換的時(shí)間考慮等問(wèn)題,編程更簡(jiǎn)單,使得開(kāi)發(fā)板都效率都更高,運(yùn)行的實(shí)時(shí)性也更高。

聲明:本文內(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)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    多線(xiàn)程的系統(tǒng)

    多線(xiàn)程系統(tǒng)的事件響應(yīng)也是在中斷中完成的,但事件的處理是在線(xiàn)程中完成的。在多線(xiàn)程系統(tǒng)中,線(xiàn)程跟中斷一樣,也具有優(yōu)先級(jí),優(yōu)先級(jí)高的
    發(fā)表于 12-08 07:55

    這個(gè)MCU+”有點(diǎn)不一樣

    ,“MCU+”戰(zhàn)略也是實(shí)現(xiàn)差異化競(jìng)爭(zhēng)、打破國(guó)際大廠壟斷的重要手段。 在這場(chǎng)變革中,作為家高性能高可靠性模擬及混合信號(hào)芯片公司,納微正以“MCU
    發(fā)表于 12-02 09:50 ?4891次閱讀

    Linux多線(xiàn)程對(duì)比單線(xiàn)程的優(yōu)勢(shì)

    :「資源利用率」:通過(guò)多線(xiàn)程,可以更有效地利用CPU資源,特別是多核CPU?!覆⑿刑幚怼梗?b class='flag-5'>線(xiàn)程允許同時(shí)執(zhí)行多個(gè)任務(wù),提高程序的執(zhí)行效率?!负?jiǎn)化設(shè)計(jì)」:使用線(xiàn)程可以簡(jiǎn)化程序設(shè)計(jì),因?yàn)?b class='flag-5'>線(xiàn)程
    發(fā)表于 12-01 06:11

    不一樣的展會(huì),不一樣的精彩 2025灣展圓滿(mǎn)收官

    10月17日,2025灣區(qū)半導(dǎo)體產(chǎn)業(yè)生態(tài)博覽會(huì)(2025灣展)在深圳會(huì)展中心(福田)圓滿(mǎn)收官。全球600多家展商、超30場(chǎng)論壇,在6萬(wàn)平方米的展區(qū)內(nèi),打造場(chǎng)“不一樣的展會(huì)”,呈現(xiàn)出“不一樣
    的頭像 發(fā)表于 10-29 16:56 ?1041次閱讀
    <b class='flag-5'>不一樣</b>的展會(huì),<b class='flag-5'>不一樣</b>的精彩 2025灣<b class='flag-5'>芯</b>展圓滿(mǎn)收官

    不一樣的展會(huì),不一樣的精彩:2025灣展順利收官

    內(nèi),打造場(chǎng)"不一樣的展會(huì)",呈現(xiàn)出"不一樣的精彩"。本屆展會(huì)人氣火爆,展期三天累計(jì)接待總量達(dá)到11.23萬(wàn)人次。參展企業(yè)集中發(fā)布年度新品數(shù)約2500件,新品發(fā)布與商業(yè)合作收獲頗豐。 ? 不一
    的頭像 發(fā)表于 10-19 20:27 ?380次閱讀
    <b class='flag-5'>不一樣</b>的展會(huì),<b class='flag-5'>不一樣</b>的精彩:2025灣<b class='flag-5'>芯</b>展順利收官

    芯片不同開(kāi)發(fā)板的BSP能不能用?

    在RTT studio中基于開(kāi)發(fā)板創(chuàng)建項(xiàng)目,芯片選擇是一樣的,但是彈出的開(kāi)發(fā)板和我購(gòu)買(mǎi)到的不一樣,這種情況下會(huì)有問(wèn)題嗎? 不用RTT stu
    發(fā)表于 09-16 06:40

    【HZ-T536開(kāi)發(fā)板免費(fèi)體驗(yàn)】—— linux創(chuàng)建線(xiàn)程

    自己的私有資源。 在linux系統(tǒng)中,線(xiàn)程狀態(tài)通常反映了當(dāng)前線(xiàn)程的當(dāng)前活動(dòng)和執(zhí)行階段。 主要分為: 1。運(yùn)行轉(zhuǎn)態(tài) 2。阻塞轉(zhuǎn)態(tài) 3。終止?fàn)顟B(tài) 如何區(qū)分單線(xiàn)程多線(xiàn)程? 在單個(gè)程序中只
    發(fā)表于 09-01 21:31

    有獎(jiǎng)丨米爾 瑞微RK3506開(kāi)發(fā)板免費(fèi)試用來(lái)啦!

    米爾與瑞微合作發(fā)布的新品基于瑞微RK3506應(yīng)用處理器的MYD-YR3506開(kāi)發(fā)板免費(fèi)試用名額增加啦
    的頭像 發(fā)表于 07-10 08:03 ?655次閱讀
    有獎(jiǎng)丨米爾 瑞<b class='flag-5'>芯</b>微RK3506<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>免費(fèi)</b><b class='flag-5'>試用</b>來(lái)啦!

    多線(xiàn)程的安全注意事項(xiàng)

    多線(xiàn)程安全是指多個(gè)線(xiàn)程同時(shí)訪(fǎng)問(wèn)或修改共享資源時(shí),能夠保證程序的正確性和可靠性。 開(kāi)發(fā)者選擇TaskPool或Worker進(jìn)行多線(xiàn)程開(kāi)發(fā)時(shí),在
    發(fā)表于 06-20 07:49

    有獎(jiǎng)丨米爾 瑞微RK3506開(kāi)發(fā)板免費(fèi)試用

    米爾與瑞微合作發(fā)布的新品基于瑞微RK3506應(yīng)用處理器的MYD-YR3506開(kāi)發(fā)板免費(fèi)試用名額來(lái)啦~~米爾提供了3塊價(jià)值299元的MYD
    的頭像 發(fā)表于 06-19 08:04 ?862次閱讀
    有獎(jiǎng)丨米爾 瑞<b class='flag-5'>芯</b>微RK3506<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>免費(fèi)</b><b class='flag-5'>試用</b>

    有獎(jiǎng)丨米爾 瑞微RK3562開(kāi)發(fā)板免費(fèi)試用新增名額!

    米爾與瑞微合作發(fā)布的新品基于瑞微RK3562應(yīng)用處理器的MYD-YR3562開(kāi)發(fā)板免費(fèi)試用名額增加
    的頭像 發(fā)表于 06-13 08:04 ?858次閱讀
    有獎(jiǎng)丨米爾 瑞<b class='flag-5'>芯</b>微RK3562<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>免費(fèi)</b><b class='flag-5'>試用</b>新增名額!

    基于RK3576處理器,米爾RK3576開(kāi)發(fā)板免費(fèi)試用

    年7月19日 ? 評(píng)測(cè)數(shù)量: 3塊 ? 更多熱點(diǎn)文章閱讀 基于平頭哥TH1520芯片,潤(rùn)開(kāi)鴻HH-SCDAYU800A開(kāi)發(fā)板免費(fèi)試用 RISC-V開(kāi)
    的頭像 發(fā)表于 06-09 15:00 ?933次閱讀
    基于RK3576處理器,米爾RK3576<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>免費(fèi)</b><b class='flag-5'>試用</b>

    【評(píng)測(cè)試用】合眾HZ-T536開(kāi)發(fā)板免費(fèi)試用體驗(yàn)

    【評(píng)測(cè)試用】合眾HZ-T536開(kāi)發(fā)板免費(fèi)試用體驗(yàn)
    的頭像 發(fā)表于 05-27 08:05 ?698次閱讀
    【評(píng)測(cè)<b class='flag-5'>試用</b>】合眾HZ-T536<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>免費(fèi)</b><b class='flag-5'>試用</b>體驗(yàn)

    有獎(jiǎng)丨米爾 瑞微YR3562開(kāi)發(fā)板免費(fèi)試用

    米爾與瑞微合作發(fā)布的新品基于瑞微RK3562應(yīng)用處理器的MYD-YR3562開(kāi)發(fā)板免費(fèi)試用活動(dòng)來(lái)啦~~米爾提供了3塊價(jià)值599元的MYD
    的頭像 發(fā)表于 03-20 08:05 ?807次閱讀
    有獎(jiǎng)丨米爾 瑞<b class='flag-5'>芯</b>微YR3562<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>免費(fèi)</b><b class='flag-5'>試用</b>

    dsPIC33EDV64MC205電機(jī)控制開(kāi)發(fā)板用戶(hù)指南

    電子發(fā)燒友網(wǎng)站提供《dsPIC33EDV64MC205電機(jī)控制開(kāi)發(fā)板用戶(hù)指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-21 14:34 ?12次下載
    dsPIC33EDV<b class='flag-5'>64MC</b>205電機(jī)控制<b class='flag-5'>開(kāi)發(fā)板</b>用戶(hù)指南