arduino初探

  • 前后臺系統(tǒng)
    • 初始化
    • 無限循環(huán)
void setup()
{}
void loop()
{}
  • 這相當(dāng)于只開放了兩個業(yè)務(wù)接口,那么main在哪里呢?
  • \hardware\arduino\avr\cores\arduino\main.cpp
int main(void)
{
    init();

    initVariant();

#if defined(USBCON)
    USBDevice.attach();
#endif
    
    setup();
    
    for (;;) {
        loop();
        if (serialEventRun) serialEventRun();
    }
        
    return 0;
}
  • 透過這個過程看到還有init()以及initVariant()。init()可能是平臺相關(guān)的初始化過程,已經(jīng)編譯好了在平臺庫中,initVariant()可以進(jìn)行重寫。
  • 另外,這是C++風(fēng)格的
  • 系統(tǒng)的一些變量,常量,預(yù)定義對象等在這個目錄下也可以找到一些,比如


    serialX
HardwareSerial Serial(&UBRRH, &UBRRL, &UCSRA, &UCSRB, &UCSRC, &UDR);
HardwareSerial Serial1(&UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UCSR1C, &UDR1);
#if defined(UBRRH) || defined(UBRR0H)
  extern HardwareSerial Serial;
  #define HAVE_HWSERIAL0
#endif
#if defined(UBRR1H)
  extern HardwareSerial Serial1;
  #define HAVE_HWSERIAL1
#endif
#if defined(UBRR2H)
  extern HardwareSerial Serial2;
  #define HAVE_HWSERIAL2
#endif
#if defined(UBRR3H)
  extern HardwareSerial Serial3;
  #define HAVE_HWSERIAL3
#endif
  • 還有重要的一點,嵌入式系統(tǒng)需要一個鏈接文件來定義內(nèi)存等
    \hardware\tools\avr\lib\gcc\avr\7.3.0\device-specs\specs-atmega2560可能是一些鏈接文件
*avrlibc_startfile:
    crtatmega2560.o%s

*avrlibc_devicelib:
    %{!nodevicelib:-latmega2560}

*cc1_n_flash:
    %{!mn-flash=*:-mn-flash=4}

*cc1_rmw:
    %{mrmw}

*cc1_errata_skip:
    %{!mskip-bug: -mno-skip-bug}

*cc1_absdata:
    %{mabsdata}

*cc1_absdata:
    %{mabsdata}

*asm_arch:
    -mmcu=avr6

*asm_relax:
    %{mrelax:--mlink-relax} 

*asm_rmw:
    %{mrmw}

*asm_errata_skip:
    %{!mskip-bug: -mno-skip-bug}

*link_pmem_wrap:


*link_relax:
    %{mrelax:--relax} 

*link_arch:
    %{mmcu=*:-m%*} 

*link_data_start:
    %{!Tdata:-Tdata 0x800200}

*link_text_start:


*self_spec:
    %{!mmcu=avr*: %<mmcu=* -mmcu=avr6} %<mshort-calls %<msp8
  • “導(dǎo)出已編譯的二進(jìn)制文件”編譯鏈接后的文件在工程目錄下可以找到格式是HEX
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容