娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月26日(星期日)

2021年01月26日 | msp430幾種不同開發(fā)平臺(tái)的對(duì)比

發(fā)布者:Meiren520 來源: eefocus關(guān)鍵字:msp430  開發(fā)平臺(tái)  對(duì)比 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

TinyOS (moteiv & mica)

編輯器

沒有特定的編輯器,記事本類似的都行,保證所編輯的源文件是“.nc”結(jié)尾的nesC程序。

工程管理

一個(gè)目錄即為一個(gè)工程,包括一個(gè)makefile檔和一個(gè)或多個(gè)“components”,組件有兩種:

1.       配件(configuration):描述不同組件之間的關(guān)系;

2.       模塊:(module):描述組件提供的接口中的函數(shù)功能的實(shí)驗(yàn)過程。

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

在windows下安裝cygwin環(huán)境,并在cygwin下安裝TinyOS的開發(fā)工具包,其中包括

avr-binutils,        二進(jìn)制代碼工具

avr-gcc,          

avr-insight,

avr-libc,            

nesC-1.1.2              nesC編譯器

編譯、運(yùn)行和下載

TinyOS支持多種硬件平臺(tái),每個(gè)硬件平臺(tái)在tos/platform有自己的目錄。

在應(yīng)用程序的目錄里/app/Blink下輸入:

make tmote      //其中tmote代表的是平臺(tái)種類。如果target為pc,剛生成的main.exe可

//用于GDB的調(diào)試。

上面的語句實(shí)際上是按照當(dāng)前目錄的makefile文件運(yùn)行的,makefile檔中包含了編譯、連接等。具體的實(shí)現(xiàn)如下:

1.ncc編譯鏈接:  #ncc –o main.exe –target=tmote Blink.nc   //編譯生成了main.exe,可以作

//PC機(jī)上的模擬之用。

2.轉(zhuǎn)換: #msp430-objcopy –output-target=ihex main.exe main.ihex   //生成了main.ihex

 

 

 

下載:運(yùn)行:  #make tmote reinstall,1          //設(shè)置網(wǎng)絡(luò)地址為1

 

其中運(yùn)行過程中主要的兩個(gè)命令如下:

installing tmote bootloader using bsl  ####安裝啟動(dòng)引導(dǎo)檔,根據(jù)開發(fā)板的不同而不同。

tos-bsl –telosb –c 7 –r –I –p C:/cygwin/opt/moteiv/tos/lib/Deluge/TOSBoot/build/tmote/main.ihex

       installing tmote binary using bsl      #####安裝二進(jìn)制程序。ihex與ihex.out-1文件相同

tos-bsl –telosb –c 7 –r –I –p build/tmote/main.ihex.out-1

 

make過程分析

其中提到的目錄說明如下:(具體參照上面的圖)

opttinyos-1.xtoslib  ----------------------------------------包括了用到的庫函數(shù).

opttinyos-1.xtosinterfaces----------------------------------包括接口函數(shù),

opttinyos-1.xtosplatform----------包括了不同硬件平臺(tái)間的配置文件.(啟動(dòng)引導(dǎo)檔在這里)

opttinyos-1.xtossensorboards ------------------------------包括板載傳感器的具體實(shí)現(xiàn)

可以看到所有的程序都是調(diào)用了同一個(gè)make規(guī)則,除了工程本身所在目錄的makefile文件與本工程相關(guān)外,在opttinyos-1.xapps目錄下的makerule文件是公用的,其中定義了選用的編譯器及硬件平臺(tái)的選擇。

 

 

TinyOS操作系統(tǒng)設(shè)計(jì)思想

1.輕量級(jí)線程技術(shù)(lightweight thread)

 

2.主動(dòng)消息通信技術(shù)(active message)

 

3.事件驅(qū)動(dòng)模塊(event driver)

 

4.組件化編程(component-based programming)

nesC語言把組件化/模塊化思想和基于事件驅(qū)動(dòng)的執(zhí)行模型結(jié)合起來。

組件化:其中的組件即“Configuration”(配件)、“Module”。兩個(gè)東西就像零件一樣組合在一起。

模塊化:

 

 

 

 

 

MSPGCC

編輯器

可以配置一些IDE(集成開發(fā)環(huán)境),如VIM、UltraEdit、CodeBlocks等,其中VIM是命令行的,用起來很有感覺,CodeBlocks是開源的,UltraEdit為商業(yè)軟件。但不管怎么樣,都是調(diào)用的mspgcc安裝程序里的make.exe,調(diào)試環(huán)境是msp430-insight

 

工程管理

用UltraEdit可以很好的管理工程文件,在工程目錄里面應(yīng)該有一個(gè)makefile檔,告訴make如何去生成所要的目錄文件和文件之間的依賴關(guān)系。同樣,用開源的CodeBlocks也可以自己搭建一個(gè)很好的IDE,鑒于對(duì)CodeBlocks都比較熟悉,即采用之!

 

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

在windows下安裝mspgcc-2007021.exe,注意,這里最好是安裝最新版的,在之前我下載的是2003版的,又很多工具都不全,導(dǎo)致一個(gè)人摸索了好久。

然后在CodeBlocks里的“settings”項(xiàng)里配置相關(guān)的compiler和debugger,最重要的部分是庫函數(shù)所在的目錄位置。

 

編譯、運(yùn)行和下載

編譯和鏈接部分基本上和相同,只是分別調(diào)用的是msp430-gcc.exe、msp430-ld.exe

下載是通過msp430-downloader.exe來下載的。

 

make過程分析

下面是makefile文件的部分分析:

${NAME}.elf: ${OBJECTS}               #######################msp430-gcc進(jìn)行編譯

       msp43o-gcc.exe  -mmcu=${CPU}  -o $@ ${OBJECTS}  ####生成了 “*.elf”文件

 

${NAME}.a43:  ${NAME}.elf                  ##################目標(biāo)文件進(jìn)行轉(zhuǎn)換

       msp430-objcopy -O ihex $^ $@         ##################將elf文件轉(zhuǎn)換為*.a43文件

 

${NAME}.lst: ${NAME}.elf            ##################反匯編,生成*.lst文件,其中

msp430-objdump -dSt $^ >$@    ##################這個(gè)文件包含了c源碼,匯                                   ##################編原碼

 

download-jtag: all

       msp430-jtag -e ${NAME}.elf

 

download-bsl: all               #####這里的下載工具也是bsl,和TinyOS的tos-bsl類似

       msp430-bsl -e ${NAME}.elf

 

其中,*.a43為TI-Text格式, *.hex為Intel-hex格式.

 

 

 

IAR_MSP430

編輯器

IAR Embedded Workbench IDE一個(gè)瑞士開發(fā)的商用軟件的,價(jià)格好象在6500.00;目前個(gè)人感覺相比開源的MSPGCC也沒太大的優(yōu)勢(shì)。

工程管理

一個(gè)“.eww ”即為一個(gè)工程,

開發(fā)調(diào)試環(huán)境

 

編譯、運(yùn)行和下載

編譯:調(diào)用“icc430.exe”編譯器和已經(jīng)設(shè)定好的一些參數(shù),包括指定的動(dòng)態(tài)庫文件,輸出文件所在的目錄,具體的代碼好下:

 icc430.exe -I D:Program FilesIAR SystemsEmbedded Workbench 4.0430INC

-I D:Program FilesIAR SystemsEmbedded Workbench 4.0430INCDLIB

-o C:Documents and SettingsAdministratorMy DocumentsDebugObj

-z3 --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa --debug -e --double=32

-D_DLIB_CONFIG_FILE=D:ProgramFilesIARSystemsEmbeddedWorkbench4.0430LIBDLIBdl430fn.h  

D:Program FilesIAR SystemsEmbedded Workbench 4.0430FET_examplesfet140C-sourcefet140_1.c

運(yùn)行上面的命令之后,在“..obj”目錄下生成了“*.r43”文件。(The Obj directory is the destination directory for the object files from the compiler and the assembler. These files have the extension r43 and will be used as input to the IAR XLINK Linker.)

 

鏈接:這里調(diào)用的是“xlink.exe”,具體的代碼好下:

xlink.exe  C:Documents and SettingsAdministratorMy DocumentsDebugObjfet140_1.r43

-o C:Documents and SettingsAdministratorMy DocumentsDebugExeSMC4200.d43 –I  D:Program FilesIAR SystemsEmbedded Workbench 4.0430LIB

-f  D:Program FilesIAR SystemsEmbedded Workbench 4.0430CONFIGlnk430F149.xcl

-f D:Program FilesIAR SystemsEmbedded Workbench 4.0430configmultiplier.xcl -D_STACK_SIZE=50

-rt D:Program FilesIAR SystemsEmbedded Workbench 4.0430LIBDLIBdl430fn.r43

-e_PrintfLarge=_Printf

-e_ScanfLarge=_Scanf

-D_HEAP_SIZE=50

-s __program_start

##### -o This option creates a UBROF output file, with a DE>d43DE> filename extension, to be used with the IAR C-SPY Debugger. (The Exe directory is the destination directory for the executable file. It has the extension d43 and will be used as input to the IAR C-SPY Debugger. Note that this

directory will be empty until you have linked the object files.)  <> P66

 

下載:

在下載部分,IAR沒有給出很詳細(xì)的,

 

總結(jié):

 

下面是和IAR、Jennic及TinyOS平臺(tái)做的對(duì)比:  

 

開發(fā)工具包

IAR

Jennic

TinyOS

MSPGCC

 

compiler

編譯器

C Compiler

icc430.exe

ba-elf-gcc.exe

ncc.exe

msp430-gcc.exe

msp430-gcc.exe

C++ Compiler


ba-elf-g++.exe


msp430-g++.exe

Linker

鏈接器

 

動(dòng)態(tài)庫的鏈接器

xlink.exe

ba-elf-ld.exe


msp430-ld.exe

靜態(tài)庫的鏈接器

?

ba-elf-ar.exe


msp430-ar.exe

Debugger


ba-elf-gdb.exe


msp430-gdb.exe

make


Make.exe

Make.exe

Make.exe

Download file

?

*.bin

*.hex.out-1 (tmote)

*.elf  *.hex  *.txt

downloader



tos-bsl

download-bsl







 

 

 

AVRGCC、ARMGCC和MSPGCC

IAR

ü         application and library projects.

 

ü          The Obj directory is the destination directory for the object files from the compiler and the assembler. These files have the extension r43 and will be used as input to the IAR XLINK Linker(<> P69)

 

嵌入式開發(fā),C語言不可或缺。優(yōu)秀的編譯器直如倚天屠龍。讀書時(shí),用過MSP430,編譯器為IAR(盜版),code有2K限制。為此,曾攻讀過專門以此器為背景的C語言書(藍(lán)封面,北航社,忘其名)。此器,功能強(qiáng)大,調(diào)試方便,硬件寄存器皆有顯示。窺430之門徑,離Hello World之苦海,伴我?guī)滓缀睿跆?a href="http://www.nncyjs.com/zhuanti/jTKiPC" style="color:#4595e6;" target="_blank">嵌入式之地者,正是此器。
后,一直未曾用430。前些天,某任務(wù)要用。我重拾往日之事。IAR終為不完全盜版,破解太煩。懶,不愿做。放狗搜,見mspgcc,版本號(hào):20081230。與gcc一脈傳承,想必不錯(cuò)。試用幾日,感覺這才是利器!
1. 正版。無限制。
GPL,天下皆知
2. 與gcc系出同源,使用方式極像。
如果用過gcc
    查看mspgcc對(duì)gcc的擴(kuò)展
如果沒有用過gcc
    先了解一下gcc的基本用法,比如
    gcc -o hello hell.c
    gcc -S hell.c
    等
    然后,mspgcc
其它
goto error;

3. 針對(duì)430擴(kuò)展C語言,匯編能做的,他幾乎都能做。
僅在此列出我認(rèn)為有趣的幾個(gè),詳情,查手冊(cè)。
(1)堆棧
mspgcc對(duì)堆棧的設(shè)置很靈活。你可以為自己保留一定字節(jié)的RAM不被C占用。如下聲明
int RESERVE_RAM(10) main()
你保留的10字節(jié)RAM。
你也可以自己寫啟動(dòng)文件,代替標(biāo)準(zhǔn)的啟動(dòng)文件,自己控制進(jìn)入C語言時(shí)的環(huán)境。
(2)頭文件
在嵌入式開發(fā)中,一般會(huì)有針對(duì)硬件的頭文件。其中為特殊功能寄存器定義等。不同的硬件環(huán)境,當(dāng)然需要不同的定義。在mspgcc的開發(fā)環(huán)境中只需增加
#include
即可。
不同的硬件如何區(qū)別?在Makefile文件中或者在編譯時(shí)說明是哪種430芯片就可以了。這一點(diǎn),和winavr相同。
(3)中斷
中斷是硬件的珍貴資源。標(biāo)準(zhǔn)C中似乎沒有中斷的定義,所以一般采用擴(kuò)展。mspgcc提供了interrupt關(guān)鍵字,以及控制進(jìn)入中斷方式的選項(xiàng)。比如,下面的中斷程序中沒有用到諸如R4,R5等其它寄存器,卻仍將其在堆棧中保護(hù)。
interrupt (ADC_VECTOR) ADC12ISR(void)
{
    ADCresult = ADC12MEM0;                // Move results, IFG is cleared
}
屬性naked修飾后,裸奔。不做任何事情,甚至reti都不執(zhí)行,所以,得自己控制返回。
interrupt (ADC_VECTOR) __attribute__ ((naked))  ADC12ISR(void)
{
    ADCresult = ADC12MEM0;                // Move results, IFG is cleared
    asm("reti");
}
mspgcc中擴(kuò)展了下面這些屬性(參考mspgcc手冊(cè))。
reserve(x)    When applied to main(), this reserves "x" bytes of RAM above the stack. This cannot be used with C++ (if C++ is supported later on).
interrupt(x)    Make the function an interrupt service routine for interrupt "x".
signal        Make an interrupt service routine allow further nested interrupts.
wakeup        When applied to an interrupt service routine, wake the processor from any low power state as the routine exits. When applied to other routines, this attribute is silently ignored.
naked        Do not generate a prologue or epilogue for the function.
critical    Disable interrupts on entry, and restore the previous interrupt state on exit.
reentrant    Disable interrupts on entry, and always enable them on exit.
saveprologue    Use a subroutine for the function prologue, to save memory.
noint_hwmul    Supress the generation of disable and enable interrupt instructions around hardware multiplier code.
(4)匯編
mapgcc支持行間匯編。只是,gcc的匯編語言似乎與TI的不盡相同。

4. 燒寫
有三種方式
(1) gdb
(2) msp430-downloader.exe
(3) msp430-jtag.exe

5. 調(diào)試
當(dāng)前,最新版mspgcc沒有insight,只有g(shù)db。個(gè)人感覺不如IAR直觀

[1] [2]
關(guān)鍵字:msp430  開發(fā)平臺(tái)  對(duì)比 引用地址:msp430幾種不同開發(fā)平臺(tái)的對(duì)比

上一篇:MSP430F5529 GPIO 按鍵LED燈
下一篇:msp430g2553串口接收字符串_接收指令

推薦閱讀

  “熔斷”(Meltdown)和“幽靈”(Spectre)兩大芯片漏洞在國內(nèi)外芯片行業(yè)可謂一石激起千層浪。它帶來的不僅是英特爾、微軟等國際IT產(chǎn)業(yè)巨頭忙不迭地“打補(bǔ)丁”,更燃起了中國信息安全產(chǎn)業(yè)“自主可控”“砥礪前行”的氣氛,國產(chǎn)芯片的發(fā)展也因此再度引發(fā)關(guān)注。帶著“國產(chǎn)CPU該如何發(fā)展”等一系列命題的叩問,本報(bào)特啟動(dòng)“關(guān)注國產(chǎn)CPU發(fā)展”系列文章,以供...
工業(yè)機(jī)器人本體競(jìng)爭(zhēng)格局:四大家族壟斷,國產(chǎn)品牌突圍工業(yè)機(jī)器人“四大家族”日本發(fā)那科、瑞士ABB、日本安川、德國KUKA,在全球高端應(yīng)用領(lǐng)域占有較高市占率。國內(nèi)品牌廣州啟帆、埃夫特、新松、埃斯頓、廣州數(shù)控、新時(shí)達(dá)享受市場(chǎng)增長(zhǎng)紅利快速成長(zhǎng),正在國內(nèi)市場(chǎng)實(shí)現(xiàn)突圍。2016年,“四大家族”全球市場(chǎng)中的市占率合計(jì)達(dá)58%,占據(jù)了全球市場(chǎng)份額的超過半壁江...
簡(jiǎn)介:ARM映像文件*****************************************************ARM映像文件*****************************************************1.ELF格式文件的結(jié)構(gòu)1.1映像文件組成部分**一個(gè)映像文件有一個(gè)或多個(gè)域組成**每個(gè)域包含一個(gè)或多個(gè)輸出段**每個(gè)輸出段包含一個(gè)或多個(gè)輸入段**各輸入段中包含了目標(biāo)文件中的代碼和數(shù)據(jù)輸入段中包含了四類內(nèi)容:代...

史海拾趣

問答坊 | AI 解惑

求助我的51為啥輸出不了125K的方波

我用下段程序輸出125K的方波  可是輸出的是50K的方波不知為啥啊 我用示波器是雙宗的20M的,是CALTEK的啊  型號(hào)是CA8020B  ORG     0000H    AJMP    START    OR ...…

查看全部問答∨

電動(dòng)小車的循跡 循跡資料

本帖最后由 paulhyde 于 2014-9-15 08:58 編輯 電動(dòng)小車的循跡 [ 本帖最后由 fqegeeer 于 2009-8-10 14:59 編輯 ]  …

查看全部問答∨

關(guān)于PESQ和PEAQ

請(qǐng)教一下這個(gè)PESQ和PEAQ到底有什么具體的區(qū)別???…

查看全部問答∨

王爽老師的《匯編語言》答案及詳解

很多人抱怨這本書沒有答案,本人貢獻(xiàn)出此書的答案及詳解。 自己對(duì)自己做一個(gè)評(píng)估吧 [ 本帖最后由 madokaaukawa 于 2009-10-16 00:14 編輯 ]…

查看全部問答∨

自適應(yīng)濾波的verilog程序

自適應(yīng)濾波的verilog程序求助,最近在做自適應(yīng)濾波lms算法的verilog編程,我在數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)(第二版)中看到有相關(guān)的程序,但為什么仿真的輸出都是不定值呢,權(quán)系數(shù)f0,f1就是不定值,mult是用quartus產(chǎn)生的ip核產(chǎn)生的,誰能幫我看一下啦 ...…

查看全部問答∨

請(qǐng)教MAX7219驅(qū)動(dòng)8個(gè)LED顯示全亮的問題!

關(guān)于max7219的顯示 我是電子愛好者,近日有個(gè)MAX7219的片子,用89C2051 想編個(gè)程序顯示看看,結(jié)果不可以,我感覺沒有問題,但我要顯示的8個(gè)led一上電就全亮,再就沒有熄滅過,怎么回事呢,軟件問題還是硬件問題,百思不得其解,請(qǐng)問哪位大蝦給各指 ...…

查看全部問答∨

activesync連接和斷開的監(jiān)測(cè)

現(xiàn)在要在wince6.0的某個(gè)驅(qū)動(dòng)監(jiān)測(cè)activesync的連接和斷開狀態(tài),比如連接好了,注冊(cè)表哪里可以有這個(gè)標(biāo)志位,斷開同樣。 我查了很多地方,包括activesync manager的代碼,都是在窗口應(yīng)用程序里監(jiān)測(cè)消息。驅(qū)動(dòng)里不能有窗口消息,所以請(qǐng)各位大蝦給我一 ...…

查看全部問答∨

新手求助 希望各位能幫幫忙

我是學(xué)軟件工程的 大三就要分方向 有嵌入式和數(shù)據(jù)庫兩個(gè)方向 聽說嵌入式很好 只是很難入門 學(xué)校不好的話硬件設(shè)施根本無法滿足學(xué)生的需要 至于數(shù)據(jù)庫 容易一點(diǎn) 但發(fā)展空間沒有前者好 我感到很迷茫 到底學(xué)哪個(gè)呢 目前的就業(yè)形勢(shì)哪個(gè)更好 希望各位學(xué)哥 ...…

查看全部問答∨

想買個(gè)ARM開發(fā)板,請(qǐng)給我點(diǎn)建議

  我現(xiàn)在51單片機(jī)學(xué)的差不多了,我的專業(yè)是電子信息科學(xué)與技術(shù),我想以后往嵌入式開發(fā)方向發(fā)展。   想先自學(xué)ARM,所以想買個(gè)板子。但是不大清楚arm7,arm9之類的。   希望有過經(jīng)歷的學(xué)長(zhǎng)給我點(diǎn)建議,大概買什么 ...…

查看全部問答∨

什么叫封裝了TCP/IP協(xié)議的無線模塊

西門子的MC3i封裝TCP/IP了嗎,所謂封裝是一個(gè)什么概念 我發(fā)現(xiàn)一些所謂的封裝了TCP/IP協(xié)議的GPRS Modem和我用mc39i撥號(hào)上網(wǎng)毫無區(qū)別,都是通過AT指令的,所以對(duì)這些概念開始模糊了 哪位大俠解釋下,謝謝…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 沾益县| 平乡县| 榆树市| 阿拉善右旗| 屏边| 大渡口区| 长寿区| 长沙市| 拜城县| 五河县| 姚安县| 扎赉特旗| 华宁县| 定西市| 玉山县| 文山县| 无锡市| 神农架林区| 绥芬河市| 新田县| 开远市| 安多县| 泾川县| 唐山市| 永嘉县| 当阳市| 祁东县| 新龙县| 西林县| 奉节县| 旺苍县| 民勤县| 中西区| 韩城市| 西和县| 岳池县| 孟州市| 凤台县| 清水河县| 东安县| 铜鼓县|