1.1 交叉編譯器制作
默認(rèn)安裝的 GCC 編譯系統(tǒng)所產(chǎn)生的代碼適用于本機(jī),即運(yùn)行 GCC 的機(jī)器,但也可將 GCC 安裝成能夠生成其他的機(jī)器代碼。安裝一些必須的模塊,就可產(chǎn)生多種目標(biāo)機(jī)器代碼,而且可通過命令行選擇一種希望使用的代碼。
1.1.1 目標(biāo)機(jī)
從網(wǎng)站 http://gcc.gnu.org/install/specific.html 可以得到有可能的最新目標(biāo)機(jī)列表。在此站點(diǎn)中可找到更新過的目標(biāo)機(jī)列表,以及向各種目標(biāo)機(jī)進(jìn)行移植的最新信息。關(guān)于每種可能的目標(biāo)機(jī)都有一個(gè)簡短介紹,可以查找說明得到有關(guān)移植的一些特殊需求。已知目標(biāo)的列表非常長,而且也總在加入一些新端口。
1.1.2 創(chuàng)建交叉編譯器---crosstool-ng
當(dāng)前已經(jīng)不需要我們從源碼上進(jìn)行編譯安裝一個(gè)交叉編譯器了,我們可以通過工具crosstool-ng 或是 buildroot 工具來進(jìn)行交叉編譯器的制作
(1)下載
可以在官網(wǎng)上面直接下載
官網(wǎng):http://crosstool-ng.github.io/
也可以通過git命令直接進(jìn)行clone下載:
git clone https://github.com/crosstool-ng/crosstool-ng
直接執(zhí)行g(shù)it clone命令會(huì)在你的工作目錄中建立一個(gè)crosstool-ng目錄,里面存放的是源碼。
(2)安裝
可以進(jìn)入如下網(wǎng)站查看具體的安裝幫助信息:http://crosstool-ng.github.io/docs/
進(jìn)入crosstool-ng的源碼目錄,執(zhí)行如下命令進(jìn)行配置:./configure --prefix=/some/place
/some/place是自己的主機(jī)上的路徑。
./configure命令會(huì)檢查出自己的主機(jī)上缺少哪些軟件環(huán)境,檢查出來了逐一安裝即可。
執(zhí)行make命令
執(zhí)行make install命令
注意以上兩個(gè)命令可能會(huì)報(bào)權(quán)限不足,在命令前面加sudo解決
將編譯出來的bin文件加入到臨時(shí)環(huán)境變量:export PATH='${PATH}:/some/place/bin'
可以通過echo命令將其寫入 .bashrc中,如下所示:
或者執(zhí)行軟鏈接也可以:sudo ln -s /some/place/bin/ct-ng /usr/local/bin/ct-ng
export PATH=/some/place/bin:$PATH
使之生效:source /etc/bash.bashrc
此環(huán)境變量只在當(dāng)前終端中有效,關(guān)閉或者切換終端后立即失效。
若要在主機(jī)的任何地方任何終端上使用,必須將環(huán)境變量寫入 .bashrc中去:
(3)測試
安裝成功后,執(zhí)行 ct-ng 命令會(huì)打印如下信息:
(4)建立S3C2440交叉編譯工具鏈
【1】建立文件夾
建立工作文件夾:
rk3399@rk3399:~/work/tools/toolchain$ mkdir S3C2440_work src S3C2440
S3C2440_work:為S3C2440交叉編譯工具鏈的工作目錄
Src:存放下載下來的工具軟件源碼包
S3C2440:存放交叉編譯工具鏈
【2】查看支持的交叉編譯工具鏈類型
執(zhí)行命令:ct-ng list-samples
里面會(huì)列出很多的交叉編譯工具樣本。介紹ARM的幾種:
arm-unknown-eabi:基于裸板的,即無操作系統(tǒng)
arm-unknown-linux-gnueabi 是基于linux的
arm-unknown-linux-uclibcgnueabi是為uclinux用的。
arm-cortex_a8-linux-gnueabi為cortex-a8用的。
arm-cortexa9_neon-linux-gnueabihf:為cortex-a9帶neon用的,exynos4412就可以用此種
S3C2440選擇arm-unknown-linux-gnueabi 此種編譯器。
所有的支持的編譯器存放在rk3399@rk3399:~/work/tools/crosstool-ng/samples 此目錄下。將其arm-unknown-linux-gnueabi 中的文件拷貝到我們建立的S3C2440_work目錄下。
【3】工程配置
進(jìn)入S3C2440_work目錄中,將crosstool.config 文件改名為 .config,然后執(zhí)行 ct-ng menuconfig命令進(jìn)行配置
Paths and misc options:
Local tarballs directory:源碼包存放位置,修改為 /home/rk3399/work/tools/toolchain/src
Prefix directory :交叉編譯工具鏈存放位置,home/rk3399/work/tools/toolchain/S3C2440
Number of parallel jobs:工作線程,根據(jù)自己的CPU是多少核來選。
Target options:
Target Architecture:默認(rèn)是ARM
Default instruction set mode:指令集模式,默認(rèn)為ARM
Architecture level:架構(gòu)指令集,S3C2440為armv4t
Emit assembly for CPU:指定目標(biāo)處理器的名稱,GCC通過這個(gè)名字來決定通過匯編代碼來生成哪種指令。填入 arm9tdmi
Tune for CPU:新版本中填入上面兩個(gè)選項(xiàng)就沒有這個(gè)選項(xiàng)了,就管了。
Floating point:浮點(diǎn)類型,可以看芯片手冊(cè)的方框圖,看找不找不到對(duì)應(yīng)的浮點(diǎn)數(shù)類型,S3C2440沒有硬件浮點(diǎn),選擇軟件浮點(diǎn)。softfp (FPU)
Toolchain options:
Tuple's vendor string:編譯器前綴,設(shè)為s3c2440,編譯之后就為arm-s3c2440-linux-gnueabi-
Tuple's alias:給產(chǎn)生的交叉編譯工具起個(gè)別名,設(shè)置別名,這樣會(huì)給每個(gè)工具創(chuàng)建一個(gè)軟鏈接,比如arm-linux-gcc鏈接到到 arm-unknown-linux-gnueabi-gcc,可以省去自己建立軟鏈接的功夫。設(shè)置為
Operating System:
Source of linux:linux源碼,這里沒有自己需要的源碼包,可以在 .config中修改配置,系統(tǒng)會(huì)自動(dòng)去下載。
剩余的其他選項(xiàng)保持默認(rèn)即可。
架構(gòu)和處理器名稱,可以在芯片手冊(cè)的方框圖中找到,如下:
【4】編譯
執(zhí)行命令 ct-ng build 即可開始編譯。
制作完成會(huì)打印出下面的語句:
(5)制作 exynos 4412 編譯器
基本步驟與上面類似,不同的是在crosstool-ng中編譯器的選擇方面和工程配置上面。
Exynos 4412 選擇的是 arm-cortexa9_neon-linux-gnueabihf 編譯器,exynos 4412本身就是帶neon的,處理器本身就是屬于cortexa9系列。
配置上只是更改下Target options 中的內(nèi)容:
Target options:
Architecture level:架構(gòu)指令集為armv7a
Emit assembly for CPU:指定目標(biāo)處理器的名稱為cortex-a9
Floating point:與2440不同的是,a9系列帶應(yīng)浮點(diǎn),也就是neon,這里要選擇硬件浮點(diǎn)
Use specific FPU:這里要填上 neon
之后就是保存編譯了。
1.1.3 編譯程序的功能
編譯程序是一個(gè)翻譯器。它讀入一種語言格式的指令(通常是文本形式的編程語言),并將它們翻譯成可在計(jì)算機(jī)上運(yùn)行的指令集合(通常是二進(jìn)制硬件指令的集合)。
編譯程序可以分為兩部分:前端和后端。
詞法分析是編譯程序前端的最開始部分。它從輸入中讀出字符,確定哪些是在一起的,形成符號(hào)、數(shù)字和標(biāo)點(diǎn)符號(hào)。
語法分析處理會(huì)讀入來自詞法瀏覽器的符號(hào)流,以及后面跟著的一個(gè)規(guī)則集合,確定它們之間的關(guān)系。 語法分析器的輸出結(jié)果是樹結(jié)構(gòu), 會(huì)被傳遞給編譯程序的后端。
語法分析樹結(jié)構(gòu)會(huì)被翻譯成偽匯編語言(psuedo-assembly language) ,叫做寄存器傳送語言(Register Transfer Language,RTL)。
編譯程序的后端由分析 RTL 代碼開始,然后執(zhí)行一些優(yōu)化操作。代碼中冗余和未被使用的部分會(huì)被去掉。樹中有些部分會(huì)被移動(dòng)到其他位置以防止語句被不必要地多次執(zhí)行。總的說來,有十個(gè)以上的優(yōu)化操作,而且有些優(yōu)化操作會(huì)多次瀏覽代碼。
RTL 被翻譯成目標(biāo)機(jī)器上的匯編語言。
激活匯編器去將匯編語言翻譯成目標(biāo)文件。該文件不是可執(zhí)行格式——它包括可執(zhí)行的目標(biāo)代碼,但并不是最終運(yùn)行的形式。另外,它更可能包括未解析的到其他模塊例程和數(shù)據(jù)的引用。
連接程序?qū)碜詤R編器的目標(biāo)文件(其中有些可能保存在包含目標(biāo)文件的庫中)組合成可執(zhí)行程序。
前端讀出程序的源代碼,將找到的內(nèi)容以樹的形式轉(zhuǎn)換到內(nèi)存駐留表(memory-resident table)中。一旦構(gòu)造了該樹,編譯程序的后端就會(huì)讀出樹中保存的信息,并將它們轉(zhuǎn)換成目標(biāo)機(jī)器上的匯編語言。
將源文件翻譯成可執(zhí)行程序的大致步驟:
所有的命令行選項(xiàng)大致可分為三類:
指定語言 GCC 編譯程序有能力編譯多種語言,有些選項(xiàng)只可用于其中的一兩種。例如,-C89 選項(xiàng)只應(yīng)用于 C 語言,指定適用于 1989 年的標(biāo)準(zhǔn)。
指定平臺(tái) GCC 編譯程序可以為多種平臺(tái)生成目標(biāo)代碼,而有些選項(xiàng)只能應(yīng)用于為某個(gè)指定平臺(tái)生成代碼。例如,如果輸出平臺(tái)是 Intel 386,那么-fp-ret-in-387 選項(xiàng)可用來指出要將函數(shù)調(diào)用返回的浮點(diǎn)數(shù)保存在硬件的浮點(diǎn)寄存器中。
普適 很多選項(xiàng)對(duì)所有語言和平臺(tái)都適用。例如,-O 選項(xiàng)指示編譯程序要優(yōu)化輸出代碼。
例子:gcc -ansi -c muxit.c -o muxit.o
-ansi 即是指定語言
1.2 GCC組件及命令
1.2.1 GCC組件
GCC 是由許多組件組成的,但它們也并不總是出現(xiàn)的。有些部分是和語言相關(guān)的,所以如果沒有安裝某種特定語言,系統(tǒng)中就不會(huì)出現(xiàn)相關(guān)的文件。
組件 | 描述 |
c++ | gcc 的一個(gè)版本,默認(rèn)語言設(shè)置為 C++,而且在連接的時(shí)候自動(dòng)包含標(biāo)準(zhǔn) C++庫。這和g++一樣 |
cc1 | 實(shí)際的 C 編譯程序 |
cc1plus | 實(shí)際的 C++編譯程序 |
collect2 | 在不使用 GNU 連接程序的系統(tǒng)上, 有必要運(yùn)行 collect2 來產(chǎn)生特定的全局初始化代碼 (例如 C++的構(gòu)造函數(shù)和析構(gòu)函數(shù)) |
configure | GCC 源代碼樹根目錄中的一個(gè)腳本。用于設(shè)置配置值和創(chuàng)建 GCC 編譯程序必需的 make程序的描述文件 |
crt0.o | 這個(gè)初始化和結(jié)束代碼是為每個(gè)系統(tǒng)定制的,而且也被編譯進(jìn)該文件,該文件然后會(huì)被連接到每個(gè)可執(zhí)行文件中來執(zhí)行必要的啟動(dòng)和終止程序 |
cygwin1.dll | Windows 的共享庫提供的 API,模擬 UNIX 系統(tǒng)調(diào)用 |
f77 | 該驅(qū)動(dòng)程序可用于編譯 Fortran |
f771 | 實(shí)際的 Fortran 編譯程序 |
g++ | gcc 的一個(gè)版本,默認(rèn)語言設(shè)置為 C++,而且在鏈接的時(shí)候自動(dòng)包含標(biāo)準(zhǔn) C++庫。這和 c++ 是一樣的 |
gcc | 該驅(qū)動(dòng)程序用于執(zhí)行編譯程序和連接程序以產(chǎn)生需要的輸出 |
gcj | 該驅(qū)動(dòng)程序用于編譯 Java |
gnat1 | 實(shí)際的 Ada 編譯程序 |
gnatbind | 一種工具,用于執(zhí)行 Ada 語言綁定 |
gnatlink | 一種工具,用于執(zhí)行 Ada 語言連接 |
jc1 | 實(shí)際的 Java 編譯程序 |
libgcc | 該庫包含的例程被作為編譯程序的一部分,是因?yàn)樗鼈兛杀贿B接到實(shí)際的可執(zhí)行程序中。它們是特殊的例程,連接到可執(zhí)行程序,來執(zhí)行基本的任務(wù),例如浮點(diǎn)運(yùn)算。這些庫中的例程通常都是平臺(tái)相關(guān)的 |
libgcj | 運(yùn)行時(shí)庫包含所有的核心 Java 類 |
libobjc | 對(duì)所有 Objective-C 程序都必須的運(yùn)行時(shí)庫 |
libstdc++ | 運(yùn)行時(shí)庫,包括定義為標(biāo)準(zhǔn)語言一部分的所有的 C++類和函數(shù) |
1.2.2 GCC 編譯器命令
GCC的命令很多,常用的選項(xiàng)如下:
選項(xiàng) | 描述 |
-c | 只編譯不鏈接。 會(huì)明確指示 GCC 去編譯源代碼,在硬盤上留下目標(biāo)文件,且跳過將目標(biāo)文件連接到可執(zhí)行程序這一步。 缺省情況下, GCC通過用`.o'替換源文件名后綴`.c', `.i', `.s',等產(chǎn)生目標(biāo)文件名.可以使用-o選項(xiàng)選擇其他名字. GCC忽略-c選項(xiàng)后面任何無法識(shí)別的輸入文件(他們不需要編譯或匯編). 如:gcc -c hello.c |
-o file | 指定輸出的文件名 如果沒有使用 `-o' 選項(xiàng),默認(rèn)的輸出結(jié)果是:可執(zhí)行文件為`a.out'。如gcc -c hello.c -o hello.o |
-x language | 明確指出后面輸入文件的語言為language (而不是從文件名后綴得到的默認(rèn)選擇).這個(gè)選項(xiàng)應(yīng)用于后面 所有的輸入文件,直到遇著下一個(gè)`-x'選項(xiàng). language的可選值有`c', `objective-c', `c-header', `c++', `cpp-output', `assembler',和`assembler-with-cpp'. |
-x none | 關(guān)閉任何對(duì)語種的明確說明,因此依據(jù)文件名后綴處理后面的文件(就象是從未使用過`-x'選項(xiàng)). 如果只操作四個(gè)階段(預(yù)處理,編譯,匯編,連接)中的一部分,可以使用`-x'選項(xiàng)(或文件名后綴)告訴 gcc從哪里開始,用`-c', `-S',或`-E'選項(xiàng)告訴gcc到 哪里結(jié)束.注意,某些選項(xiàng)組合(例如, `-x cpp-output -E')使gcc不作任何事情. |
-S | 指示編譯程序生成匯編語言代碼,然后停止。 缺省情況下, GCC通過用 `.o' 替換源文件名后綴 `.c'、`.i' 等等,產(chǎn)生 目標(biāo)文件名??梢允褂?o選項(xiàng)選擇其他名字。 匯編語言的形式依賴于編譯程序的目標(biāo)平臺(tái)。如果編譯多個(gè)源文件,會(huì)為每個(gè)源文件都生成一個(gè)匯編語言模塊。 GCC忽略任何不需要編譯的輸入文件。 gcc -S helloworld.c |
-E | 預(yù)處理后即停止,不進(jìn)行編譯。預(yù)處理后的代碼送往標(biāo)準(zhǔn)輸出 GCC忽略任何不需要預(yù)處理的輸入文件. gcc -E helloworld.c gcc -E helloworld.c -o helloworld.i |
-C | 告訴預(yù)處理器不要丟棄注釋,配合 `-E' 選項(xiàng)使用。 |
-P | 告訴預(yù)處理器不要產(chǎn)生 `#line' 命令,配合 `-E' 選項(xiàng)使用 |
-v | (在標(biāo)準(zhǔn)錯(cuò)誤)顯示執(zhí)行編譯階段的命令.同時(shí)顯示編譯器驅(qū)動(dòng)程序,預(yù)處理器,編譯器的版本號(hào). |
-pipe | 在編譯過程的不同階段間使用管道而非臨時(shí)文件進(jìn)行通信.這個(gè)選項(xiàng)在某些系統(tǒng)上無法工作,因?yàn)槟切┫到y(tǒng)的 匯編器不能從管道讀取數(shù)據(jù). GNU的匯編器沒有這個(gè)問題. |
-ldl | 表示生成的對(duì)象模塊需要用到共享庫:$ gcc say.c -ldl -o say 主要是用到了 dlopen 等函數(shù)需要用到此選項(xiàng) |
-I | 指定頭文件路徑 |
-e name | 指定 name 為程序的入口地址 |
-ffreestanding | 編譯獨(dú)立的程序,不會(huì)自動(dòng)鏈接 C 運(yùn)行庫、啟動(dòng)文件等;他隱含聲明了 `-fno-builtin' 選項(xiàng),而且對(duì)main函數(shù)沒有特別要求。 |
-finline-functions -fno-inline-funcitons | 啟用內(nèi)聯(lián)函數(shù) 關(guān)閉內(nèi)聯(lián)函數(shù) |
-g | 以操作系統(tǒng)的本地格式(stabs,COFF,XCOFF 或 DWARF)產(chǎn)生調(diào)試信息,GDB能夠使用這些調(diào)試信息。 |
-ggdb | 以本地格式(如果支持)輸出調(diào)試信息,盡可能包括GDB擴(kuò)展。 |
-L | 指定鏈接時(shí)查找路徑,多個(gè)路徑之間用冒號(hào)隔開 |
-nostartfiles | 不鏈接系統(tǒng)標(biāo)準(zhǔn)啟動(dòng)文件,比如crtbegin.o、crtend.o,而標(biāo)準(zhǔn)庫文件仍然正常使用。 |
-nostdlib | 不鏈接系統(tǒng)標(biāo)準(zhǔn)啟動(dòng)文件和標(biāo)準(zhǔn)庫文件,只把指定的文件傳遞給連接器。 |
-static | 在支持動(dòng)態(tài)連接(dynamic linking)的系統(tǒng)上阻止連接共享庫。即只能使用靜態(tài)鏈接。 |
-shared | 生成一個(gè)共享目標(biāo)文件,他可以和其他目標(biāo)文件鏈接產(chǎn)生可執(zhí)行文件。 |
-O | 優(yōu)化。對(duì)于大函數(shù),優(yōu)化編譯占用稍微多的時(shí)間和相當(dāng)大的內(nèi)存。 不使用 `-O' 選項(xiàng)時(shí),編譯器的目標(biāo)是減少編譯的開銷,使編譯結(jié)果能夠調(diào)試。 語句是獨(dú)立的:如果在兩條語句之間用斷點(diǎn)中止程序,可以對(duì)任何變量重新賦值,或者在函數(shù)體內(nèi)把程序計(jì)數(shù)器指到其他語句,以及從源程序中精確地獲取你期待的結(jié)果。 不使用 `-O' 選項(xiàng)時(shí),只有聲明了register的變量才分配使用寄存器。編譯結(jié)果比不用 `-O' 選項(xiàng)的GCC要略遜一籌. 使用了 `-O' 選項(xiàng),編譯器會(huì)試圖減少目標(biāo)碼的大小和執(zhí)行時(shí)間。 如果指定了`-O'選項(xiàng),,`-fthread-jumps' 和 `-fdefer-pop' 選項(xiàng)將被打開。 |
-O2 | 多優(yōu)化一些。 除了涉及空間和速度交換的優(yōu)化選項(xiàng),執(zhí)行幾乎所有的優(yōu)化工作。例如不進(jìn)行循環(huán)展開(loop unrolling)和函數(shù)內(nèi)嵌(inlining)。 和 -O 選項(xiàng)比較,這個(gè)選項(xiàng)既增加了編譯時(shí)間,也提高了生成代碼的運(yùn)行效果。 |
-O3 | 優(yōu)化的更多。除了打開 -O2所做的一切,它還打開了-finline-functions選項(xiàng)。 |
-O0 | 不優(yōu)化。如果指定了多個(gè) -O選項(xiàng),不管帶不帶數(shù)字,最后一個(gè)選項(xiàng)才是生效的選項(xiàng)。 |
-Wall | 對(duì)源代碼中的多數(shù)編譯警告進(jìn)行啟用 |
-fpic | 如果支持這種目標(biāo)機(jī),編譯器就生成位置無關(guān)目標(biāo)碼。適用于共享庫(shared library)。 |
-fPIC | 如果支持這種目標(biāo)機(jī),編譯器就輸出位置無關(guān)目標(biāo)碼。適用于動(dòng)態(tài)連接(dynamic linking),即使分支需要大范圍轉(zhuǎn)移。 |
-fPIE | 使用地址無關(guān)代碼模式編譯可執(zhí)行文件 |
-Xlinker option | 把選項(xiàng)option傳遞給連接器,可以用他傳遞系統(tǒng)特定的連接選項(xiàng), GNU CC無法識(shí)別這些選項(xiàng)。 如果需要傳遞攜帶參數(shù)的選項(xiàng),必須使用兩次 `-Xlinker',一次傳遞選項(xiàng),另一次傳遞他的參數(shù)。 例如,如果傳遞 `-assert definitions',必須寫成 `-Xlinker -assert -Xlinker definitions',而不能寫成 `-Xlinker '-assert definitions'',因?yàn)檫@樣會(huì)把整個(gè)字符串當(dāng)做一個(gè)參數(shù)傳遞,顯然這不是連接器期待的。 |
-Wl option | 把選項(xiàng)option傳遞給連接器。如果option中含有逗號(hào),就在逗號(hào)處分割成多個(gè)選項(xiàng)。 |
-fomit-frame-pointer | 禁止使用 EBP 作為函數(shù)幀指針 |
-fno-builtin | 禁止 GCC 編譯器內(nèi)置函數(shù) |
-ffunction-sections | 將每個(gè)函數(shù)編譯到獨(dú)立的代碼段 |
-fdata-sections | 將全局/靜態(tài)變量編譯到獨(dú)立的數(shù)據(jù)段 |
上一篇:GCC編譯器原理(一)------GCC 工具:addr2line、ar、as、c++filt和elfedit
下一篇:三、編寫 s3c24x0 的 bootloader——重定位(一)
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- LTC1436CGN-PLL 演示板、雙路輸出穩(wěn)壓器、5.5V 至 28V 輸入、5V @ 3A 和 3.3V @ 0.1A
- 用于 Intel 90MHz 和 100MHz Pentium 處理器的 LT1584CT-3.3 3.3V/7A 低壓差穩(wěn)壓器的典型應(yīng)用
- DER-258 - 5 mW空載輸入功率,2.1W CV/CC充電器
- 使用 LTC3639HMSE 高效 100 mA 降壓穩(wěn)壓器的典型應(yīng)用
- DC2183A-A,具有 LTC2107 16 位、210Msps 高性能 ADC 和 DDR LVDS 輸出的演示板
- DIL 24 MEMS傳感器板連接到SPC5 MCU探索板的轉(zhuǎn)接板
- LT8570IDD-1 700kHz、-15V 輸出反相轉(zhuǎn)換器的典型應(yīng)用接受 5V 至 35V 輸入
- RT9032可編程雙路輸出線性穩(wěn)壓器典型應(yīng)用電路
- 使用 ROHM Semiconductor 的 BM2P093 的參考設(shè)計(jì)
- FS84/FS85/FS66 12 V汽車安全SBC評(píng)估板
- 集成電路處首位!上海先進(jìn)制造業(yè)發(fā)展“十四五”規(guī)劃發(fā)布
- 英特爾Evo?跨界賈樟柯,首創(chuàng)迷你短劇探索科技和人生
- MSP430 G2553 比較器Comparator_A+、數(shù)據(jù)流程圖DFD、狀態(tài)轉(zhuǎn)換圖STD
- STM32以太網(wǎng)程序解析三
- STM32進(jìn)階-超聲波傳感器的應(yīng)用詳細(xì)步驟
- 新買的蘋果手機(jī)壞了不給保修!蘋果公司“霸氣”回復(fù)遭到質(zhì)疑
- 安森美推出新的高功率圖騰柱PFC控制器,滿足具挑戰(zhàn)的能效標(biāo)準(zhǔn)
- FLIR熱像儀_FLIR紅外熱像儀_FLIR紅外熱像儀應(yīng)用
- 新思科技:車聯(lián)網(wǎng)產(chǎn)業(yè)的起點(diǎn)是安全
- 驍龍8發(fā)熱拜拜了!iQOO Neo6來襲:跑分輕松破百萬
- 蜂巢能源2025年試產(chǎn)半固態(tài)電池,2027年大批量供貨
- 激光雷達(dá)進(jìn)化論:RoboSense如何持續(xù)領(lǐng)跑?
- 法雷奧-全景顯示技術(shù) Panovision | 申報(bào)2025第七屆金輯獎(jiǎng)中國汽車新供應(yīng)鏈百強(qiáng)
- 公安部:目前我國市售汽車搭載的“智駕”系統(tǒng),都不具備“自動(dòng)駕駛”功能
- 德賽西威-旗艦級(jí)AI智能座艙域控制器 | 申報(bào)2025第七屆金輯獎(jiǎng)中國汽車新供應(yīng)鏈百強(qiáng)
- Mobileye推出駕駛員監(jiān)測系統(tǒng)(DMS)技術(shù) ,實(shí)現(xiàn)人與車輛協(xié)同駕駛
- 第三屆安富利汽車生態(tài)圈峰會(huì)盛大啟幕,雙城聯(lián)動(dòng)激發(fā)智慧出行產(chǎn)業(yè)新動(dòng)能
- Vicor Corporation 2025年第二季度財(cái)報(bào):專利訴訟和解推動(dòng)強(qiáng)勁增長
- 智能底盤2.0競賽,這家外資巨頭按下加速鍵
- GaN技術(shù)如何應(yīng)用到人形機(jī)器人執(zhí)行關(guān)節(jié)?
- 如今,蔚來、威馬、拜騰這些造車新勢(shì)力們的車造的怎么樣
- 董明珠顯然還沒有掌握造車的核心科技
- 特斯拉model3需求下滑的原因是什么?
- 特斯拉永遠(yuǎn)充滿爭議,因?yàn)樗鼤r(shí)刻都在進(jìn)化
- 寧德時(shí)代成為明星企業(yè),吸引人的點(diǎn)在哪里?
- 安徽合肥:能源互聯(lián)網(wǎng)等創(chuàng)新示范項(xiàng)目最高可獲300萬補(bǔ)貼
- 機(jī)器人產(chǎn)品的實(shí)在是它超越AI領(lǐng)先全球投資方向的主要原因
- 隨著AI的飛速發(fā)展,機(jī)器人逐漸取代人類員工的趨勢(shì)還能逆轉(zhuǎn)嗎?
- 人機(jī)協(xié)作走出護(hù)欄,智能制造全產(chǎn)業(yè)鏈生態(tài)已現(xiàn)雛形
- 國產(chǎn)工業(yè)機(jī)器人想要在核心零部件方面要想從本質(zhì)上獲得突破還需努力
- 新建F28M35 M3內(nèi)核工程 不好使
- 有沒有哪種通訊方式哪個(gè)廠家的哪個(gè)型號(hào)的產(chǎn)品在無線聯(lián)網(wǎng)上可以設(shè)備里end device也...
- 老外碼農(nóng)酒后吐槽,該說的不該說的全說了
- 如何使用wince自帶的web server進(jìn)行開發(fā)
- if語句
- 貝爾PCB設(shè)計(jì)規(guī)范
- Patch Antenna Simulation
- 陜西楊工c8051f單片機(jī)博客
- 有什么好處,設(shè)計(jì)的一方是否有完全的知識(shí)產(chǎn)權(quán)?
- EEWORLD大學(xué)堂----操作系統(tǒng)國防科大羅宇