Tensorflow暑期實踐——基於單個神經元的手寫數字識別(全部程式碼)
阿新 • • 發佈:2020-07-10
建立程式
- 在 ~/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 中,因此程式不會因為掉電而丟失。