创建程序编译运行1 编译程序使得程序从Flash直接运行2 编译程序使得程序从ITCM直接运行3 编译程序使得程序从Flash上载至ITCM中运行
创建程序
- 在 ~/hbird-e-sdk-master/software 路径下创建一个“helloworld”中文件夹
- 在 ~/hbird-e-sdk-master/software/helloworld 路径下创建文件“helloworld.c”
内容如下:
代码语言:javascript复制#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直接运行
代码语言:javascript复制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 : 是否需要输出浮点
运行
代码语言:javascript复制make upload PROGRAM=helloworld BOARD=hbird-e200 CORE=e203
字符串在串口显示终端如下图所示,通过打印可以看到运行速度比较慢,这是因为程序直接从 flash 中运行需要从 flash 中取指令,取指时间较长,影响了程序的执行速度。
但是由于程序被烧写进了 flash 中,因此程序不会因为掉电而丢失。
2 编译程序使得程序从ITCM直接运行
代码语言:javascript复制make dasm PROGRAM=helloworld BOARD=hbird-e200 CORE=e203 DOWNLOAD=itcm USE_NANO=1 NANO_PFLOA=0
运行
代码语言:javascript复制make upload PROGRAM=helloworld BOARD=hbird-e200 CORE=e203
采用这种方法编译,通过打印可以看到运行速度非常快,这是因为程序直接从 ITCM 运行时,每次都是从 ITCM 中取指令,所以执行速度非常快。
3 编译程序使得程序从Flash上载至ITCM中运行
代码语言:javascript复制make dasm PROGRAM=helloworld BOARD=hbird-e200 CORE=e203 DOWNLOAD=flash USE_NANO=1 NANO_PFLOA=0
运行
代码语言:javascript复制make upload PROGRAM=helloworld BOARD=hbird-e200 CORE=e203
采用这种方法编译,通过打印可以看到运行速度非常快,这是因为程序直接从 ITCM 运行时,每次都是从 ITCM 中取指令,所以执行速度非常快。
但是由于程序被烧写进了 flash 中,因此程序不会因为掉电而丢失。