一、前言

在使用a40i时,不仅仅会用到qt环境,还会用到一些子程序,用c单独编译配置的程序,而且也具备可扩展可移植性,下面就简单介绍一下在a40i平台交叉编译方法

二、环境

ubuntu 16

vaware 12

window10

a40i交叉编译器

qt5.9

三、正文

实现交叉编译的有两种,一种是ui的qt程序,一种是不带ui的纯*.c程序

1.带ui的用qt直接选择a40i编译器进行编译(不介绍)

2.带ui的跟随系统编译

手册介绍如下:

将写好的程序放在如下目录中

然后修改下面目录中的文件,把需要跟随系统编译的写入

不想编译任何文件,文件目录就为空

3.不带ui的随着系统编译

同上,上面带ui的是随着系统一起编译,在qt5文件夹内

不带ui的是在cmd文件夹内,需要编译的文件就放在文件列表中,不编译的就不放在列表中,编译文件内容如下

 kbqTest_led.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
char *GPIO_PATH = "/sys/class/gpio/gpio43/value";
int main(int argc, char *argv[])
{int fd;char *path;path = GPIO_PATH;system("echo 43 > /sys/class/gpio/export");//led6system("echo out > /sys/class/gpio/gpio43/direction");fd = open(path, O_WRONLY);if(fd<0){printf("Failed to Open gpio %s\n", path);exit(1);}while(1){write(fd, "1", 1);sleep(1);write(fd, "0", 1);sleep(1);}close(fd);return 0;
}

makefile

TARGET         =kbqTest_led
DEST_DIR      ?=_install
CC            ?=arm-linux-gcc
build:@$(CC) -o $(TARGET) kbqTest_led.c
hold:@echo "smc hold[skip]"
install:@mkdir -p $(DEST_DIR)@cp $(TARGET) $(DEST_DIR)
uninstall:@rm -fr $(DEST_DIR)/$(TARGET)
distclean: uninstall@rm -fr $(TARGET)@rm -fr _install

在系统进行./build.sh后,可执行程序自动编译完成在文件夹中

优点:无

缺点:慢,需要编译很多系统文件 ,才顺带着编译这一个文件。

4.不带ui单独编译

单独编译某个*.c文件,和makeifle,不跟随系统统一编译

首先找到安装交叉编译器的路径,默认飞凌A40i的是

/root/workspace/allwinner/A40i/bsp/lichee/out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin/arm-linux-gnueabihf-g++

然后执行以下程序

/root/workspace/allwinner/A40i/bsp/lichee/out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin/arm-linux-gnueabihf-g++ kbqTest_led.c -o kbqTest_led

kbqTest_led.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
char *GPIO_PATH = "/sys/class/gpio/gpio43/value";
int main(int argc, char *argv[])
{int fd;char *path;path = GPIO_PATH;system("echo 43 > /sys/class/gpio/export");//led6system("echo out > /sys/class/gpio/gpio43/direction");fd = open(path, O_WRONLY);if(fd<0){printf("Failed to Open gpio %s\n", path);exit(1);}while(1){write(fd, "1", 1);usleep(200);write(fd, "0", 1);usleep(200);}close(fd);return 0;
}

优点:快,单独编译完即可使用

缺点:无

四、结语

不想说话

A40i使用笔记:交叉编译*.c文件(可在开发板运行)相关推荐

  1. 用TFTP 将生成的文件传输到开发板

    用TFTP 将生成的文件传输到开发板 1. ubuntu 安装TFTP服务 注意:使用VMware NAT 网络或 Docker 时,不需要在 Ubuntu 中安装 TFTP 服务,TFTP不支持前面 ...

  2. Qt+MPlayer音乐播放器开发笔记(二):交叉编译MPlayer以及部署到开发板播放演示

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/119991329 长期持续带来更多项目与技术分享,咨询请 ...

  3. Linux学习笔记---网线直连电脑和开发板使用nfs下载文件

    在学习正点原子Linux开发板的时候,视频教程中电脑和开发板都接的是路由器,这样在使用nfs 命令时,虚拟机和开发板的网络是通的,nfs命令就可以直接使用.但是自己在使用的时候,没有路由器,只能用网线 ...

  4. 交叉编译使用 hostapd-2.0 在开发板上开机自启动无线网卡 AP 功能

    文章目录 交叉编译 使用 hostapd 使用 DHCP 分配 IP 查看状态 开机自启动 1. MDEV 配置文件 2. MDEV 执行的脚本 参考链接 交叉编译 tar xzf hostapd-2 ...

  5. mysql移植海思_live555 交叉编译移植到海思开发板

    1.首先到它的主页下载一个源码包: http://www.live555.com/liveMedia/public/ 我下载的是latest的,具体什么版本还真不清楚 2.放到linux目录下解压: ...

  6. 交叉编译ssh服务到ARM开发板

    遇到的问题 在同一个局域网下,ubuntu linux和开发板能 ping 通,但是 scp 传文件到开发板失败了,提示ssh remote_ip **** lose connection conne ...

  7. 编译linux系统到开发板,Linux系统有关交叉编译和移植到6410开发板上的简单过程...

    在进行移植之前,要检查一下目标机(这里指6410开发板)与宿主机之间的接线问题,即串口线.网线是否正确连接,目标机的电源是否插好!在接线问题解决后,才能保证交叉编译正常进行! 个人理解,移植的主要思想 ...

  8. ESP32 入门笔记01:乐鑫ESP32-DevKitC开发板信息、开发环境搭建以及学资料准备

    文章目录 一.ESP32-DevKitC 开发板介绍 二.ESP32 开发环境 1. Arduino IDE 1.1 开发环境搭建步骤 1.2 实验:使用 Arduino IDE 将代码上传到 ESP ...

  9. ARM开发板运行执行文件,找不到库报错的解决方法

    平台:smart210 coretex A8 .Redhat6 这里举我的列子,其实不管你运行什么可执行文件遇到这种问题都是一样的方法去解决的. 1.错误提示 问题所在:这种问题是挂载开发板的根文件系 ...

  10. mplayer linux arm,【嵌入式】交叉编译移植 Mplayer 到 ARM开发板

    一.基本信息 1.移植环境 ①:ubuntu16.04 ②:iMX6Q开发板 2.移植所需软件源码 ①:libmad libmad 下载 ②:mplayer mplayer下载 ③:百度网盘下载: 链 ...

最新文章

  1. 关注基于云的下一代应用开发
  2. 第8章 Iptables与Firewalld防火墙
  3. myflow.js 工作流类扩展
  4. spark数据查询语句select_sparksql语句
  5. DOM方式动态加载数据
  6. hadoop3节点hdfs ha,yarn ha配置
  7. HANA Calculation View
  8. 【另类见解】一致性哈希就能解决分库分表问题了?
  9. 命令行 蓝牙_Ubuntu使用BlueZ驱动蓝牙dongle
  10. C++ 使用A*算法解决八数码问题
  11. Resnet-18-训练实验-warm up操作
  12. (HDU)1098 -- Ignatius's puzzle(Ignatius的困惑)
  13. 编程人员应该忙里偷闲
  14. 游戏配置文件加密工具(附源码)
  15. php四级联动,二级联动 三级联动 四级联动 多级联动
  16. @Resource详解-代码示例
  17. Microsoft Visual SourceSafe 2005 服务端安装配置过程以及出现的问题,以及解决方法!...
  18. unity3D-游戏/AR/VR在线就业班 C#入门访问修饰符学习笔记
  19. 浅谈高内聚与松耦合,各人自扫门前雪,莫管他人瓦上霜
  20. 机器人讯息合集:3D打印“元机器人”、水陆两用微机器人、会游泳的机械狗、“香蕉”软体机器人、无线两栖机器人

热门文章

  1. HTTPS 到底加密了什么?
  2. 分享自己的页游运维架构
  3. 新手PADS踩坑之旅-layout asc文件导入导出错误
  4. 唯品会API:item_search - 按关键字搜索vip商品
  5. 高考志愿填报平台数据加密(js逆向)
  6. 看考研视频如何屏蔽键盘(锁定键盘)
  7. 使用Java SE8 Streams 处理数据,Part 2
  8. 五金模具设计常见的二十一块模板作用,一起学起来
  9. 非此即彼的逻辑错误_Argument常见逻辑错误及描述 【出国英语】
  10. Visal.B来袭,新近出现的恶意软件