在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【感芯科技64線程MC3172開發板免費試用體驗】這個芯片不一樣,硬件多線程MCU體驗

開發板試用精選 ? 來源:開發板試用 ? 作者:電子發燒友論壇 ? 2022-10-13 11:22 ? 次閱讀

本文來源電子發燒友社區,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2306123_1_1.html



前言

對于RTOS開發我們知道,線程調度不能太頻繁,因為軟件進行上下文切換需要時間,調度太頻繁則調度時間占的比例會越來越大,實際運行用戶代碼的時間就會很少效率降低。可不可以減少這個調度時間呢,可以,感芯的MC3172就用硬件去實現了這個上下文切換個調度,使得實時性更高,用戶也不需要考慮這個軟件調度切換花掉的時間了。

MC3172這個芯片是一個非常大的創新,我們下面實際來體驗下。

資料

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

https://whycan.com/f_57.html

https://gitee.com/gxchip

概述

CPU:MC3172,32 位RISC 處理器,個64線程同步并行運行。最高200MHz主頻,3.37coremark/MHz。

數據段與代碼段共享128K字節SRAM可配置為

96KCODE+32KDATA

64KCODE+64KDATA

32KCODE+96KDATA

開發環境

http://www.mounriver.com/download

下載MounRiver_Studio_Setup_V181.zip

安裝沒有什么特別的,過程略。

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

MC3172資料合集_v1.12.zip

分析

配置

時鐘

MC3172 擁有4 個時鐘源,

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

線程配置工具_V1.exe工具中如下
image.png

對應的代碼位于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**

線程頻率

64 個線程每個線程最高可以運行在主頻的1/4,最低是主頻的1/1024,

不使用的線程可設置為空閑,空閑線程完全不運行,也不產生功耗。64 個線程分屬4 個線

程組,每個線程組的最高主頻份額不能超過主頻的1/4。

實際上可以理解為64個線程去共享主頻分時執行。

線程配置工具_V1.exe工具中如下
image.png

對應的代碼位于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種配置

線程配置工具_V1.exe工具中如下
image.png

對應的代碼位于thread_start.c

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

剩下的就是CODE區域。

**#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**

棧空間

程序/DATA空間分配好后,再從DATA空間中分配棧空間

64 個線程,每個線程都有自己獨立的棧空間,且在數據空間允許的范

圍內隨意分配,只要所有非空閑線程的棧空間總和不超過數據空間的大小即可(數據空間有

192 字節的保留區不可使用),棧空間大小需要是4 字節的整數倍

線程配置工具_V1.exe工具中如下
image.png

對應的代碼位于thread_start.c

比如線程1,通過rothd_set_sp_const設置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**

}

其他線程類似

資源共享

各個線程之間共享全局變量實現通訊

執行過程分析

連接腳本

看程序的運行過程一般都是從連接腳本入手,先找入口點

再看MEMMAP等。

MC3172.lds

可以看到入口點

ENTRY(thread_start)

空間分配

MEMORY

{

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

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

}

以下可以看到.text.thread_start放在了CODE_SPACE的開始處。后續就是DATA區域分配。所以最開始就是執行thread_start函數。

. = 0x00000010;

  .text           :

  {

    *(.text.thread_start)

    *(.text)

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

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

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

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

  }

執行過程

thread_start ->

(*thread_initial_pointer[THREAD_ID])()

其中THREAD_ID寄存器指定一個運行的線程,一般是0。

則執行

thread0_initial->

進行時鐘源配置,CODE/DATA區域配置,線程頻率分配。

thread0_main->

其他線程運行

通過thread_initial_pointer查找到初始化函數

threadx_initial

進行棧配置然后

threadx_main運行

體驗

雙擊打開

MC3172資料合集_v1.12MC3172_TemplateMC3172.wvproj

打開工程瀏覽器
image.png

右鍵點擊

GPIO_GPCOM_TIMER_Example.c->Properties

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

取消

thread0_main~thread4_main相關代碼注釋

菜單欄

Project->Build ALL

生成進行鏡像位于

MC3172資料合集_v1.12MC3172_TemplateRelease

雙擊該目錄下開發板程序下載_v1.1.exe

按如下單次下載運行
image.png

image.png

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

從以下可以看出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

按如下接上串口線,使用串口調試助手設置為115200-8-n-1, 上位機發送數據開發板收到后原樣返回。

對應代碼如下

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

總結

  1. 打開線程配置工具_V1.exe時能自動加載當前設置,這樣方便做修改,而不需要全部從頭配置。

  2. 64個線程共享主頻,所以實際并不是并行運行,而是硬件進行分時輪流執行,也就是并沒有64個運行環境(寄存器組等),實際是硬件完成了RTOS線程切換的上下文切換等動作,各線程執行的時間占比根據線程主頻控制器設置的共享頻率進行分配。硬件完成上下文切換時間損失很小,這樣在高調度頻率的情況就避免了上下文切換時間占比較大導致的效率低的問題,這樣比RTOS軟件實現實時性效率更高。

  3. 外設模塊能提供更詳細的編程手冊更好。

  4. 總結下從開發環境,配置工具等來看還是比較容易入手的,尤其是硬件實現線程切換調度,減少了RTOS移植,上下文調度切換的時間考慮等問題,編程更簡單,使得開發板都效率都更高,運行的實時性也更高。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    追加名額丨米爾瑞微RK3576開發板有獎試用

    米爾與瑞微合作發布的新品基于瑞微RK3576應用處理器的MYD-LR3576開發板免費試用活動加碼啦~~米爾追加了2塊價值849元的MY
    的頭像 發表于 11-22 01:00 ?210次閱讀
    追加名額丨米爾瑞<b class='flag-5'>芯</b>微RK3576<b class='flag-5'>開發板</b>有獎<b class='flag-5'>試用</b>

    socket 多線程編程實現方法

    是指在同個進程中運行多個線程,每個線程可以獨立執行任務。線程共享進程的資源,如內存空間和文件句柄,但每個線程有自己的程序計數器、寄存器集合
    的頭像 發表于 11-12 14:16 ?392次閱讀

    有獎丨米爾 瑞微RK3576開發板免費試用

    米爾與瑞微合作發布的新品基于瑞微RK3576應用處理器的MYD-LR3576開發板免費試用活動來啦~~米爾提供了7塊價值849元的MYD
    的頭像 發表于 11-12 01:00 ?344次閱讀
    有獎丨米爾 瑞<b class='flag-5'>芯</b>微RK3576<b class='flag-5'>開發板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>

    有獎試用!!RA-Eco-RA4E2-64PIN-V1.0開發板試用活動開始報名

    有獎試用!!RA-Eco-RA4E2-64PIN-V1.0開發板試用活動開始報名
    的頭像 發表于 11-09 01:02 ?278次閱讀
    有獎<b class='flag-5'>試用</b>!!RA-Eco-RA4E2-<b class='flag-5'>64</b>PIN-V1.0<b class='flag-5'>開發板</b><b class='flag-5'>試用</b>活動開始報名

    Python中多線程和多進程的區別

    Python作為種高級編程語言,提供了多種并發編程的方式,其中多線程與多進程是最常見的兩種方式之。在本文中,我們將探討Python中多線程與多進程的概念、區別以及如何使用
    的頭像 發表于 10-23 11:48 ?415次閱讀
    Python中<b class='flag-5'>多線程</b>和多進程的區別

    多線程設計模式到對 CompletableFuture 的應用

    最近在開發 延保服務 頻道頁時,為了提高查詢效率,使用到了多線程技術。為了對多線程方案設計有更加充分的了解,在業余時間讀完了《圖解 Java 多線程設計模式》這本書,覺得收獲良多。本篇
    的頭像 發表于 06-26 14:18 ?370次閱讀
    從<b class='flag-5'>多線程</b>設計模式到對 CompletableFuture 的應用

    請問pad和pin有什么不一樣

    pad 和 pin 有什么不一樣
    發表于 06-25 06:08

    bootloader開多線程做引導程序,跳app初始化后直接進hardfualt,為什么?

    過是沒有什么問題的,在做IAP跳app時發現多線程iap跳多線程app跳進去做完初始化就進hardfault,然后單任務IAP跳多線程APP時程序跳進去都能正常執行
    發表于 04-18 06:07

    STM32的VDD與VDDA不一樣可以嗎?

    STM32 的VDD與VDDA不一樣可以么
    發表于 04-11 06:34

    鴻蒙APP開發:【ArkTS類庫多線程】TaskPool和Worker的對比(2)

    創建Worker的線程稱為宿主線程不一定是主線程,工作線程也支持創建Worker子線程),Wo
    的頭像 發表于 03-27 15:44 ?547次閱讀
    鴻蒙APP<b class='flag-5'>開發</b>:【ArkTS類庫<b class='flag-5'>多線程</b>】TaskPool和Worker的對比(2)

    STM32L471RE同樣的硬件使用LL庫和HAL編譯的工程運行功耗不一樣?為什么?

    項目在使用STM32L471RE開發,涉及到低功耗的處理。在測試過程中發現同樣的硬件結構(PCB上僅焊接mcu的最小系統),使用LL庫和HAL庫生產的兩個工程運行功耗不一樣,工程配置時
    發表于 03-21 06:17

    java實現多線程的幾種方式

    的CompletableFuture 、繼承Thread類 繼承Thread類是實現多線程的最基本方式,只需創建個類并繼承Thread類,重寫run()方法即可。 ``
    的頭像 發表于 03-14 16:55 ?731次閱讀

    AT socket可以多線程調用嗎?

    請問AT socket 可以多線程調用嗎? 有互鎖機制嗎,還是要自己做互鎖。
    發表于 03-01 08:22

    MCU冷復位和熱復位有什么不一樣

    求問MCU冷復位和熱復位有什么不一樣
    發表于 02-02 15:52

    個IGBT用不同的驅動會得到不一樣的效果嗎?為什么?

    個IGBT用不同的驅動會得到不一樣的效果嗎?為什么? 當使用不同的驅動驅動同個 IGBT 時,會產生不同的效果。這是因為驅動
    的頭像 發表于 01-15 11:26 ?941次閱讀
    主站蜘蛛池模板: 清冷双性被cao的合不拢腿| 欧美性色黄大片四虎影视| 天天视频免费入口| 五月停停| 人操人爱| 国产最好的精华液网站| fenfencao在线观看免费视频| japanese色系tube日本护士| 成人最新午夜免费视频| 日本免费不卡一区| 在线免费成人| 四虎永久在线精品2022| 拍拍拍美女黄色1000视频| 免费观看成人毛片| 国产成在线观看免费视频| 一级特色黄大片| 欧美黄色录像| 亚洲欧美啪啪| 性性性性bbbbxxxx| 亚洲婷婷国产精品电影人久久| 四虎在线永久免费视频网站| 欧美色婷婷| 丁香花免费观看视频| 天天爽夜夜春| 干成人| 亚洲福利一区二区| 新网球王子u17世界杯篇免费观看| 日韩午夜免费| 国产精品特黄毛片| 天天爽夜夜爽视频| 91aaa免费观看在线观看资源 | 欧美影院一区| 国产精品麻豆va在线播放| 午夜视频精品| 999国产精品| 最好看的2019中文字幕免费高清 | 色多多网站在线观看| 黄色网址有那些| 天天干视频在线观看| 欧美激情 在线| 亚洲香蕉影视在线播放|