蜂鸟E203系列——Linux下运行hello world例程
创建程序
- 在 ~/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 中,因此程序不会因为掉电而丢失。
蜂鸟E203系列——Linux下运行hello world例程的更多相关文章
- 蜂鸟E203系列——Linux调试(GDB+Openocd)
欲观原文,请君移步 本文基于文章<蜂鸟E203系列--利用 Hbrid-E-SDK 环境开发程序> GDB 简介 GDB(GNU Project Debugger),是 GNU 工具链中的 ...
- 蜂鸟E203系列——Linux开发工具
欲观原文,请君移步 Vivado安装 vivado是运行工程的工具,所以必须安装 后台回复[vivado2017]可获取vivado 2017.4 | 后台回复[vivado2020]可获取vitis ...
- Linux下运行memcached失败
Linux下运行memcached失败 1.错误信息如下 [root@localhost ~]# memcached can't run as root without the -u switch 2 ...
- Java项目打包在CMD或者Linux下运行
Java项目打包在CMD或者Linux下运行 1.在CMD下运行 在eclipse中将项目export成jar包,然后用压缩软件解压
- Demo+在Linux下运行(CentOS7+dotnetcore sdk)
来份ASP.NET Core尝尝 0x01.前言 学习ASP.NET Core也有一段时间了,虽说很多内容知识点还是处于一知半解的状态,但是基本的,还是 略懂一二.如果有错误,还望见谅. 本文还是和之 ...
- Linux下运行jmeter
• 我们在做测试的时候,有时候要运行很久,公司用的测试服务器一般都是linux,就可以运行在linux下面,linux下面不能像windows一样有图形化界面,那怎么运行脚本呢,就先在windows上 ...
- windows下的java项目打jar分别编写在windows与linux下运行的脚本( 本人亲测可用!)
前言: 最近公司做了一个工具,要将这个工具打包成一个可运行的程序,编写start.bat和start.sh在windows和linux下都可以运行. 在网上找了很多资料,最后终于找到一个可靠的资料,记 ...
- 终于解决了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 ...
- Kali Linux下运行Sniffjoke出错的解决
Kali Linux下运行Sniffjoke出错的解决 由于Kali Linux版本的更新和Sniffjoke发布时间久远等问题,Sniffjoke在新版本的Kali Linux中运行存在各种问题.下 ...
随机推荐
- 如何用 Python 和 API 收集与分析网络数据?
摘自 https://www.jianshu.com/p/d52020f0c247 本文以一款阿里云市场历史天气查询产品为例,为你逐步介绍如何用 Python 调用 API 收集.分析与可视化数据.希 ...
- windbg分析一次大查询导致的内存暴涨
项目上反馈了一个问题,就是在生产环境上,用户正常使用的过程中,出现了服务器内存突然暴涨,客户有点慌,想找下原因. 讲道理,内存如果是缓慢上涨一直不释放的话,应该是存在内存泄漏的,这种排查起来比较困难, ...
- LNMP 环境更换Nginx 服务器为Tengine
本人之前所使用 LNMP 环境一直是原生的Nginx服务器,最近几天看了好多大网站使用 淘宝团队基于Nginx开发的 Tengine 决定给自己的虚拟机也装个玩玩. 关于Tengine的介绍就不多说了 ...
- VScode Doxygen与Todo Tree插件的使用与安装
VScode Doxygen与Todo Tree插件的使用与安装 引言 程序中代码注释的规范和统一性是作为工程人员必不可少的技能,本文在Visual Studio Code的环境下简单介绍Doxyge ...
- opencv 单通道合并为多通道
int main(){ cv::Mat m1=(cv::Mat_<int>(,)<<,,,,,); cv::Mat m2=(cv::Mat_<int>(,)< ...
- 微信小程序入门基础
微信小程序入门基础 视频教程(https://edu.csdn.net/course/detail/8456?pre_view=1) 第一章.认识小程序 1.工具的下载与安装 2.小程序代码构成 ...
- MySQL服务器是怎么处理客户端请求的
不论MySQL客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果).那服务器进 ...
- 高性能IO —— Reactor(反应器)模式
讲到高性能IO绕不开Reactor模式,它是大多数IO相关组件如Netty.Redis在使用的IO模式, 为什么需要这种模式,它是如何设计来解决高性能并发的呢? 最最原始的网络编程思路就是服务器用一个 ...
- ATM项目分析
ATM项目分析 项目源代码下载 其实本项目的需求分析乍一看比较复杂,但是细细拆分出来实际实现还是比较容易的.基本用上前面所学的所有知识点. 1.额度 15000或自定义 2.实现购物商场,买东西加入购 ...
- 扫描U盘
编辑器加载中...int CSendUDiskDlg::SearchUDisk(void) { int nCount, i; char szDriver[3]; nCount = 0; szDrive ...