欲观原文,请君移步

创建程序

  1. 在 ~/hbird-e-sdk-master/software 路径下创建一个“helloworld”中文件夹

  1. 在 ~/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;
}
  1. 在 ~/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 中,因此程序不会因为掉电而丢失。

蜂鸟E203系列——Linux下运行hello world例程的更多相关文章

  1. 蜂鸟E203系列——Linux调试(GDB+Openocd)

    欲观原文,请君移步 本文基于文章<蜂鸟E203系列--利用 Hbrid-E-SDK 环境开发程序> GDB 简介 GDB(GNU Project Debugger),是 GNU 工具链中的 ...

  2. 蜂鸟E203系列——Linux开发工具

    欲观原文,请君移步 Vivado安装 vivado是运行工程的工具,所以必须安装 后台回复[vivado2017]可获取vivado 2017.4 | 后台回复[vivado2020]可获取vitis ...

  3. Linux下运行memcached失败

    Linux下运行memcached失败 1.错误信息如下 [root@localhost ~]# memcached can't run as root without the -u switch 2 ...

  4. Java项目打包在CMD或者Linux下运行

    Java项目打包在CMD或者Linux下运行 1.在CMD下运行 在eclipse中将项目export成jar包,然后用压缩软件解压

  5. Demo+在Linux下运行(CentOS7+dotnetcore sdk)

    来份ASP.NET Core尝尝 0x01.前言 学习ASP.NET Core也有一段时间了,虽说很多内容知识点还是处于一知半解的状态,但是基本的,还是 略懂一二.如果有错误,还望见谅. 本文还是和之 ...

  6. Linux下运行jmeter

    • 我们在做测试的时候,有时候要运行很久,公司用的测试服务器一般都是linux,就可以运行在linux下面,linux下面不能像windows一样有图形化界面,那怎么运行脚本呢,就先在windows上 ...

  7. windows下的java项目打jar分别编写在windows与linux下运行的脚本( 本人亲测可用!)

    前言: 最近公司做了一个工具,要将这个工具打包成一个可运行的程序,编写start.bat和start.sh在windows和linux下都可以运行. 在网上找了很多资料,最后终于找到一个可靠的资料,记 ...

  8. 终于解决了Linux下运行OCCI程序一直报Error while trying to retrieve text for error ORA-01804错误

    终于解决了Linux下运行OCCI程序一直报Error while trying to retrieve text for error ORA-01804错误 http://blog.csdn.net ...

  9. Kali Linux下运行Sniffjoke出错的解决

    Kali Linux下运行Sniffjoke出错的解决 由于Kali Linux版本的更新和Sniffjoke发布时间久远等问题,Sniffjoke在新版本的Kali Linux中运行存在各种问题.下 ...

随机推荐

  1. [computer graphics]简单光照模型(Phong和Blinn-Phong)和明暗处理

    简单光照模型(Phong和Blinn-Phong)和明暗处理 支持点光源和平行光,是一种简单光照模型,它将光照分解成了三个部分,分别为 漫反射 镜面反射 环境光 如图所示,是一个简单的几何模型. \( ...

  2. java8 Date相关工具

    自己整理的java8 常用的工具类 /** * @Author taozhaoyang * @Description 结合 java8 线程安全 * @Date 9:55 2018/7/30 **/ ...

  3. SpringBoot与(Security)安全

    1.简介 应用程序的两个主要区域 认证(Authentication): 是建立一个它声明的主体的过程(一个"主体" 一般是指用户,设备或一些可以在你的应用程序中执行动作的其他系统 ...

  4. JavaScript常用项目(更新至19.11.17)

    目录 项目一:鼠标拖动方块 项目二:网页显示键入字母 项目三:实现滚播图 项目四:   本地数据记事本 项目一:鼠标拖动方块 代码: <!DOCTYPE html> <html> ...

  5. 01---eclipse使用

    一.eclipse快捷键 1.alt+? 或 alt+/:自动补全代码或者提示代码,可用于main函数(main).输出函数(syso)等 2.ctrl+1:错误提示 3.ctrl+/:自动注释当前行 ...

  6. C#数据结构与算法系列(六):链表——双链表(Double-LinkedList)

    1.对比单向链表 单向链表查找的方向只能是一个方向,而双向链表可以向前或者向后查找 单向链表不能自我删除,需要靠辅助节点,而双向链表可以自我删除 对于单向链表的删除,我们首先要找到单向链表待删除节点的 ...

  7. numpy中transpose的功能

    看了网上一堆解释,有用相互交换来解释的,我看了半天也看不出所以然来.心想着自己试验一下. numpy.transpose的用法很简单:假如你有一个四维的数组,那么四个维度就是0,1,2,3.风格会像下 ...

  8. Tensorflow中Tensor对象的常用方法(持续更新)

    Tensor是Tensorflow中重要的对象.下面是Tensor的常用方法,后面还会写一篇随笔记录Variable的用法. 1. 生成一个(常)Tensor对象 >>>A = tf ...

  9. ida 动态调试apk

    1,启动 android_x86_server 2 adb forward tcp:23946 tcp:23946 调试应用命令:adb shell am start -D -n com.droidh ...

  10. WIN10下如何解决PL2303驱动不可用的问题或者com口显示黄色感叹号usb-to-serial

    WIN10下如何解决PL2303驱动不可用的问题或者com口显示黄色感叹号usb-to-serial