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

歷史上的今天

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

正在發生

2020年01月15日 | 單片機成長之路(51基礎篇) - 015 關于sdcc的多文件編譯范例

發布者:InnovateMind 來源: eefocus關鍵字:單片機  51基礎篇  sdcc  多文件編譯 手機看文章 掃描二維碼
隨時隨地手機看文章

本文是續 單片機成長之路(51基礎篇) - 009 關于sdcc的多文件編譯范例(一)編寫的。 


在實際的工作中,單片機的頭文件和功能函數不可能同全部放在同一個文件夾下面,我們把單片機成長之路(51基礎篇) - 009 關于sdcc的多文件編譯范例的代碼進行重新拆分,然后把頭文件歸類到一個文件夾(include/)下面,便于管理。


拆分前文件目錄結構:


├── delay.c

├── delay.h

├── main.c

└── makefile

拆分侯生成以下文件:


├── include      //頭文件文件夾

│   ├── delay.c    //延時文件的頭文件

│   ├── delay.h

│   ├── led.c     //led燈頭文件

│   ├── led.h

│   └── macro.h    //宏定義頭文件

├── main.bin      //編譯結果

├── main.c        //主函數

└── makefile      //make文件


文件內容如下:


main.c


#include "include/delay.h"

#include "include/macro.h"

#include "include/led.h"


void main(void){

    while(1){

        led_0_7(100);

    }

}


makefile(本文件做了改動,增加個頭文件路徑的變量include)


# CC 編譯工具聲明

# stc 燒錄工具位置

# 功能是編譯并完成下載

CC    =sdcc

stc =sudo python /home/jikexianfeng/51-demo/.stcflash/stcflash.py

include = ./include/


all : main.bin 


download: main.bin

    $(stc) main.bin


#main.bin : main.hex

#    ~/51-demo/.Hex2bin-2.5/hex2bin main.hex


main.bin : main.hex

    objcopy -I ihex -O binary main.hex main.bin

    

main.hex : main.ihx

    packihx main.ihx > main.hex


main.ihx : main.rel delay.rel led.rel

    $(CC) main.rel led.rel delay.rel


main.rel : main.c $(include)delay.c $(include)macro.h

    $(CC) -c main.c

    

led.rel : $(include)led.c $(include)delay.c $(include)macro.h

    $(CC) -c $(include)led.c

    

delay.rel : $(include)delay.c $(include)macro.h

    $(CC) -c $(include)delay.c


cleanall:

    rm -rf *.lk *.bin *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map

clean:

    rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map *.lk


include/macro.h


1 #ifndef MACRO_H

2 #define MACRO_H

4 #include "8051.h"

6 #define uint unsigned int 

7 #define uchar unsigned char

9 #endif


include/macro.h


1 #ifndef LED_H

2 #define LED_H

3 #include"macro.h"

5 void led_0_7(uint xms);

7 #endif


include/led.h


#include "delay.h"

#include "macro.h"


uchar tab[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};


void led_0_7(uint xms){

    uchar i;

    for(i=0;i<8;i++){

        P1 = tab[i];

        Delay(xms);

    }

}


include/delay.c


1 #include "delay.h"

2 #include"macro.h"

4 void Delay(uint xms){

5         uint i,j;

6         for(i=xms;i>0;i--)

7         for(j=110;j>0;j--);

8 }


include/delay.h


1 #ifndef DELAY_H

2 #define DELAY_H

4 #include"macro.h"

6 void Delay(uint xms);

8 #endif


關鍵字:單片機  51基礎篇  sdcc  多文件編譯 引用地址:單片機成長之路(51基礎篇) - 015 關于sdcc的多文件編譯范例

上一篇:單片機成長之路(51基礎篇) - 016 常見總線類型
下一篇:單片機成長之路(51基礎篇) - 013 MCS-51單片機控制詳解–T2M

推薦閱讀

在iPhone X上,蘋果大刀闊斧地砍掉了使用多年的Touch ID,換上了全新的Face ID。蘋果在全面屏解鎖上的新方案,自然引起了安卓廠商的跟風模仿,一時間,大量安卓手機都在宣傳自家的面部識別功能。不過,根據最新的消息,今年上半年, 安卓旗艦恐怕還不能用上和iPhone X一樣的3D面部識別技術。 根據報道,3D傳感器的制造過程依然很困難,產量也很低,...
集微網消息,全球市場研究機構TrendForce出具最新報告指出,今年智能手機市場市場需求遲滯,預估全年生產總量將落在14.1億臺,年減3.3%;蘋果持續面臨換機周期延長、品牌獲利與定價策略如何取得平衡、中國高端市場銷售失利、美中貿易戰等4大逆風因素,今年生產總量恐持續衰退,預估生產總數將下滑至1.89億臺,市占率將下滑至13%,全球排名下滑至第三名,遭...
英特爾公司(NASDAQ:INTC)宣布,其聘請了一名新的首席信息官來負責其全球信息技術業務。目前英特爾已經約有10.7萬名員工。英特爾公布,Archana Deskus將在1月30日開始擔任這一職務,向首席財務官Geroge Davis匯報工作。目前英特爾已經約有10.7萬名員工。該公司首席執行官司睿博(Bob Swan)表示,這個職位為英特爾擴大了增長機會,通過IT賦能為其客戶和整...
昨(13)日,被動元件廠華新科位于廣東東莞的大朗廠區發生火災。臺媒稱,這場大火對芯片電阻、MLCC供應造成影響,影響華新科電阻月產能達50~70億顆,占電阻產能比重約12.5%。報道還指出,華新科東莞大朗廠生產MLCC和芯片電阻,其中MLCC的產能比重業界估計約占50%-60%。對此,華新科今日發布聲明回應稱,本公司子公司大朗廠其中的一棟廠區,13日頂樓廠務...

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 宁强县| 侯马市| 崇左市| 恩平市| 墨脱县| 百色市| 乌拉特中旗| 邹城市| 肇源县| 武宣县| 武功县| 崇礼县| 长春市| 思茅市| 微博| 三门县| 德保县| 凤冈县| 英超| 长海县| 湘乡市| 芒康县| 巴里| 稻城县| 怀安县| 博客| 鄂托克旗| 济宁市| 安远县| 衡东县| 内乡县| 永兴县| 江安县| 沐川县| 简阳市| 兰考县| 卢氏县| 沂南县| 凤台县| 嘉善县| 浑源县|