微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Amazon Iot物联网终端之十六 嵌入式开发环境下开发程序

Amazon Iot物联网终端之十六 嵌入式开发环境下开发程序

时间:10-02 整理:3721RD 点击:

1、在前面的的过程,主要是配置基于http服务的AWS云端访问和配置环境,这个过程依赖于应用层的服务。对于明确的设备,进行嵌入式开发,直接对于底层硬件和服务进行访问,那么需要用嵌入式开发,比较常用的就是c语言的开发。当然采用perl,uboot等都可以,不过,这么用的人很少。
2. 采用嵌入式开发,首先需要建立开发环境。因为是ARM-A8内核,无论是在ubuntu Desktop还是windows下,都需要交叉编译,除非直接在一个采用arm-a8内核的宿主机上直接开发,可以使用的交叉编译工具有若干种选择,不过,现在都是以linaro Project支持的linaro为最普遍的方式。具体可以访问linaro的官网。其实,目前,linaro编译器目前有3个分支,分别支持较早版本的arm,还有64位arm编译器,对于MYIR适合的是HF,即hard float版本的,在编译器上明显的标识就是arm-linux-gnueabihf-,后面的hf,这个需要硬件支持浮点计算的。
当然,从A8内核就开始支持,现在是A9内核,也充分满足要求。
在厂家提供的光盘中,提供了交叉编译的tarball文件,可以直接使用,这个才前面现已内核和uboot时都已经测试过了。
不过,对于不断更新的linux系统和服务来说,满足这个要求也是太easy了,而且,后期高版本的linux系统有可能不再提供所需要的依赖包,那么,直接安装最新的版本就是更合适的。所以,在虚拟机上可以简单用apt-get install命令安装gnueabihf-,在手册中提到的依赖文件,其实很多是可以不装的,在安装arm-linux-gnueabihf-的过程中已经安装了必须的依赖包,并推荐了需要安装的包,可以直接用。



不过为了省心起见,把涉及到的包也按照手册重新安装。


注意到其中有些版本已经升级,旧的包干脆找不到。如libwxgtk已经是3.0版本的,2.6的已经找不到啦。



3、在交叉编译安装完成后,可以编一个最简单的程序测试一下。唯一的功能就是printf,我随意打了一堆字符,以!\r\n结束。
编译得还是比较顺利的,还是要用superuser编译,在下面的截图可以看到,交叉编译后的文件在desktop环境是运行不了的,程序是报错的。


把文件复制到运行中的myir开发板中,再运行就pass了,其中要用chmod +x设定权限为啥都行,然后在执行就输出我原来编译的乱弹了。


4、在具备了交叉编译的条件后,就可以放手进行程序开发了。在这个过程中,要熟悉各个硬件,接口,协议,myir开发板就提供了一个良好的平台。
对于amazon云服务的开发,也提供了一个ASW开发工具for Embedded C,初步测试范例不能一次通过测试,,主要是目录结构还是有些问题,环境变量配置的不正确,需要逐步调试。
5、其他说明
5.1 进入交叉编译阶段后,如果不愿意用linux系统,那么Eclipse GCC for C是可以使用的,只是需要在线下载linaro交叉编译器,在编程和调试的时候使用就可以了。
5.2 从目前看,编译后程序调试还是小有繁琐。那么可以使用qemu-user-static工具,用rootfs成的img文件,模拟arm-A8的运行环境,然后用chroot进入这个目录,就可以在虚拟机ubuntu里面再配置一个虚拟机,直接运行编译成功的文件,也是一个办法。
5.3 Desktop的文件下载到开发板的方式应该是较多的,SFTP,NFS,优盘转存等都可以,视哪个熟悉和方便为准,手册中详述了,这里就不重复了。

你虚拟机 是X86的吧,你编译是用arm的gcc编译的吧。平台都不一样怎么能运行昵?
其中要用chmod +x设定权限为啥都行,然后在执行就输出我原来编译的乱弹了。,这句是什么意思啊?

他的destop是X86, 用ARM的gcc编译的程序是在开发板上运行的,这个是必须的。 运行平台不一样的哦~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top