蜂鳥E203系列——Linux下運行hello world常式
- 2020 年 7 月 11 日
- 筆記
創建程式
- 在 ~/hbird-e-sdk-master/software 路徑下創建一個「helloworld」中文件夾
- 在 ~/hbird-e-sdk-master/software/helloworld 路徑下創建文件「helloworld.c」
內容如下:
#include<stdio.h>
int main(void)
{
printf("hello world!");
printf("\n");
printf("hello anytao 0!");
printf("\n");
printf("hello anytao 1!");
printf("\n");
printf("hello anytao 2!");
printf("\n");
printf("hello anytao 3!");
printf("\n");
printf("hello anytao 4!");
printf("\n");
printf("hello anytao 5!");
printf("\n");
printf("hello anytao 6!");
printf("\n");
printf("hello anytao 7!");
printf("\n");
printf("hello anytao 8!");
printf("\n");
printf("hello anytao 9!");
printf("\n");
printf("hello anytao 10!");
printf("\n");
printf("hello anytao 11!");
printf("\n");
return 0;
}
- 在 ~/hbird-e-sdk-master/software/helloworld 路徑下創建文件「Makefile」
TARGET = helloworld
GFLAGS += -O2
BSP_BASE = ../../bsp
C_SRCS += helloworld.c
include $(BSP_BASE)/$(BOARD)/env/common.mk
編譯運行
1 編譯程式使得程式從Flash直接運行
make dasm PROGRAM=helloworld BOARD=hbird-e200 CORE=e203 DOWNLOAD=flashxip USE_NANO=1 NANO_PFLOA=0
-
dasm :表示對程式進行編譯
-
PROGRAM : 表示需要編譯的程式
-
BOARD : 開發板所對應的BSP名稱
-
CORE : 內核處理器型號
-
USE_NANO : 指明使用newlib-nano作為c運行庫
-
NANO_PFLOAT : 是否需要輸出浮點
運行
make upload PROGRAM=helloworld BOARD=hbird-e200 CORE=e203
字元串在串口顯示終端如下圖所示,通過列印可以看到運行速度比較慢,這是因為程式直接從 flash 中運行需要從 flash 中取指令,取指時間較長,影響了程式的執行速度。
但是由於程式被燒寫進了 flash 中,因此程式不會因為掉電而丟失。
2 編譯程式使得程式從ITCM直接運行
make dasm PROGRAM=helloworld BOARD=hbird-e200 CORE=e203 DOWNLOAD=itcm USE_NANO=1 NANO_PFLOA=0
運行
make upload PROGRAM=helloworld BOARD=hbird-e200 CORE=e203
採用這種方法編譯,通過列印可以看到運行速度非常快,這是因為程式直接從 ITCM 運行時,每次都是從 ITCM 中取指令,所以執行速度非常快。
3 編譯程式使得程式從Flash上載至ITCM中運行
make dasm PROGRAM=helloworld BOARD=hbird-e200 CORE=e203 DOWNLOAD=flash USE_NANO=1 NANO_PFLOA=0
運行
make upload PROGRAM=helloworld BOARD=hbird-e200 CORE=e203
採用這種方法編譯,通過列印可以看到運行速度非常快,這是因為程式直接從 ITCM 運行時,每次都是從 ITCM 中取指令,所以執行速度非常快。
但是由於程式被燒寫進了 flash 中,因此程式不會因為掉電而丟失。