嵌入式練習

通訊1班 陳港發表於2020-09-25

嵌入式練習

在Ubuntu系統下用C語言編寫一個簡單的輸出 hello word的程式,並編譯有、執行之;

在這裡插入圖片描述

#include<stdio.h>
int main()
{
  printf("hello world");
  return 0;
}

請編寫一個主程式檔案 main1.c 和一個子程式檔案 sub1.c, 要求:子程式sub1.c 包含一個算術運算函式 float x2x(int a,int b),此函式功能為對兩個輸入整型引數做某個運算,將結果做浮點數返回;主程式main1.c,定義並賦值兩整型變數,然後呼叫函式 x2x,將x2x的返回結果printf出來。1) 請在ubuntu系統用gcc 命令列方式編譯主程式main1.c 並執行; 2) 請在windows系統下用你熟悉的編譯工具編譯主程式main1.c 並執行。

在這裡插入圖片描述

$ vi sub1.c//編輯sub1.c檔案
$ vi main1.c//編輯main1.c檔案
$ gcc main1.c//編譯main1.c和sub1.c檔案
$ ./a.out//執行當前目錄下的a.out的檔案,‘./’是當前目錄的意思
//sub1.c
#include<stdio.h>
float x2x(float a,float b)
{
return a+b;//返回a+b的值
}
//main1.c
#include"sub1.c"//引用sub1.c檔案
#include<stdio.h>
int main()
{
float a=2,b=3;//定義
printf("%f",x2x(a,b));//輸出x2x(a,b)的值
return 0;
}


在此基礎上,在ubuntu系統下用Makefile方式程式設計主程式

在這裡插入圖片描述
在這裡插入圖片描述

$ vi makefile//編輯makefile檔案
$ vi main1.c//編輯main1.c檔案
$ vi sub1.c//編輯sub1.c檔案
$ gcc sub1.h//編譯sub1.h檔案
$ make//執行make 檔案
$ ./main//執行./main 檔案

//makefile
main:main1.o sub1.o
	gcc main1.c sub1.o -o main//main由main1.c和sub1.o組成
sub1.o:sub1.c
	gcc -c sub1.c//把sub1.c變成sub1.o形式
clean 
	rm *.o main//當輸入$makefile clean時清除.o檔案和main檔案

//sub1.c
#include"sub1.h"
#include<stdio.h>
float x2x(float a,float b)
{
return a+b;
}

//sub1.h
#include<stdio.h>
float x2x(float a,float b);

//main1.c
#include"sub1.h"
#include<stdio.h>
int main()
{
float a=2,b=3;//定義
printf("%f",x2x(a,b));//輸出x2x(a,b)的值
return 0;
}