欲观原文,请君移步

创建程序

  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. java8 Date相关工具

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

  2. filebeat v6.3 多行合并的步骤 多个表达式同时匹配

    配置文件位于/etc/filebeat/filebeat.yml,就是filebeat的主配置文件打开文件filebeat.yml,搜索multiline:,默认是注释的,常用的有如下三个配置: mu ...

  3. WebDriverWait与expected_conditions结合使用

    expected_conditions判断页面元素 demo2 from selenium import webdriver from selenium.webdriver.support.ui im ...

  4. 记录一次Flink作业异常的排查过程

    最近2周开始接手apache flink全链路监控数据的作业,包括指标统计,业务规则匹配等逻辑,计算结果实时写入elasticsearch. 昨天遇到生产环境有作业无法正常重启的问题,我负责对这个问题 ...

  5. webpack介绍—上

    6.1 webpack概念的引入 在网页中会引用哪些常见的静态资源? JS .js. .jsx ..coffee. .ts(TypeScript 类 C# 语言) CSS .css. .less. . ...

  6. tensorflow-TFRecord 文件详解

    TFRecord 是 tensorflow 内置的文件格式,它是一种二进制文件,具有以下优点: 1. 统一各种输入文件的操作 2. 更好的利用内存,方便复制和移动 3. 将二进制数据和标签(label ...

  7. 一文搞定Redis五大数据类型及应用场景

    本文学习知识点 redis五大数据类型数据类型:string.hash.list.set.sorted_set 五大类型各自的应用场景 @TOC 1. string类型 1-1 string类型数据的 ...

  8. 11、vue-路由

    1.路由: 官方提供一个插件,构建单页面应用,主要实现得功能页面得切换.组件得跳转 2.vue中得路由:vue-router包,如果是脚手架进行搭建得,那么是不需要安装vue-router这个包得,因 ...

  9. Java 重写hashCode()与equals()

    为什么要重写hashCode() 和 equals() equals() 默认的Object类里面equals()方法是根据对象所在的内存来做判断的,如果两个对象引用指向的是同一个内存,则返回true ...

  10. nginx配置奇怪问题记录

    执行  nginx -t  检查配置报了如下错误: 下面是配置信息 遇到个很奇怪的问题,plm-api-stage 这么配置就可以正常校验过,但是改成 plm-stage-api,就会上面的警告信息: ...