建立程式
- 在 ~/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 中,因此程式不會因為掉電而丟失。