Beelink X2, Orange Pi PC plus, Orange Pi Plus 2E, Orange Pi Lite, Orange Pi 2,Orange Pi One, Orange Pi PC, Orange Pi Plus 1 & 2, Orange Pi A20,Orange Pi mini A20,Orange Pi A31S, Roseapple Pi, NanoPi M1, pcDuino2, pcDuino3, pcDuino3 nano, Odroid C0/C1/C1+, Odroid C2,Odroid XU4, Banana Pi M2+,Banana Pi, Banana Pi M2,Banana Pi PRO,Banana Pi Plus A20, Hummingboard,Hummingboard 2, Clearfog, Lemaker Guitar, Udoo Neo, Cubieboard 1, Cubieboard 2, Lamobo R1, Olimex Lime A10, Olimex Micro, Olimex Lime 2, Olimex Lime 1, Udoo quad, Cubox-i, Cubietruck
Ubuntu Xenial 16.04 x64 guest inside a VirtualBox or other virtualization software,
Ubuntu Xenial 16.04 x64 guest managed by Vagrant. This uses Virtualbox (as above) but does so in an easily repeatable way. Please check the Armbian with Vagrant README for a quick start HOWTO,
Ubuntu Xenial 16.04 x64 inside a Docker, systemd-nspawn or other container environment (example). Building full OS images inside containers may not work, so this option is mostly for the kernel compilation,
Ubuntu Xenial 16.04 x64 running natively on a dedicated PC or a server (not recommended unless you build kernel only, for full OS images always use virtualization as outlined above),
20GB disk space or more and 2GB RAM or more available for the VM, container or native OS,
superuser rights (configured sudo or root access).
apt-get -y install git git clone https://github.com/armbian/build cd build ./compile.sh
Make sure that full path to the build script does not contain spaces. 检查所有路径不包含空格 You will be prompted with a selection menu for a build option, a board name, a kernel branch and an OS release. Please check the documentation for advanced options and additional customization. 编译过程中会有编译选项选择,板子的名称,内核和系统版本。请查看高级选项和额外定制的文档。 Build process uses caching for the compilation and the debootstrap process, so consecutive runs with similar settings will be much faster.
具体步骤:
(1)首先安装git,Ctrl+Alt+T打开终端输入下面的命令
1
apt-get -y install git
检查git版本
1
git --version
(2)下载源码,在终端中输入下面的命令
源码可以放在自己习惯的文件夹下,下面是我的
1 2 3
cd /home/iotts/ mkdir armbian git clone https://github.com/armbian/build
接收线信号检出(Received Line detection-RLSD)——用来表示DCE已接通通信链路,告知DTE准备接收数据。当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时,使RLSD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字量数据后,沿接收数据线RxD送到终端。此线也叫做数据载波检出(Data Carrier dectection-DCD)线。
虽然 Arduino 很流行很火爆,但是 Arduino IDE 却非常、非常、非常弱。编写代码很不方便,只能说提供了一个最基本的写代码的工具而已,调试代码也很不方便。而且,Arduino IDE 中写代码,只能是把所有的源代码都集中在一个 .ino 文件中,对于写惯了 C++ 程序的工程师来说,Arduino IDE 完全不具备工程化的可能,只能给一般的爱好者当一个玩具而已。
所以,本教程既然大言不惭地号称是“高级”教程,首先要做的就是替换掉 Arduino IDE 这个开发工具。当然实际上并不是真的替换掉了 Arduino IDE 的所有的东西,而是把它的有用的工具链(gcc toolchain)进行了重用,然后编写代码、代码管理和调试等工作由更现代化的工具来完成。
代替Arduino IDE工具安装
替代工具:Arduino for Visual Studio(Visual Micro)
说到太阳系中最强大和最友好的 C++ IDE,我个人认为是Visual Studio。当然您可能并不赞同我的说法,或许您更倾向于 Eclipse。好吧,您可以自行寻找解决办法,用 Eclipse 开发 Arduino 也是完全可行的,也有好事者用 vim 开发 Arduino……抱歉,扯远了。
在本节中,我们需要用到两个软件:
Visual Studio
Visual Micro (Arduino for Visual Studio 插件)
Visual Micro 的原理
简单说一下为什么我们可以在 Visual Studio 中开发 Arduino 应用程序。
官方的 Arduino IDE 开发 Arduino 应用程序,是这样的:
而 Visual Studio + Visual Micro 开发 Arduino 应用程序,是这样的:
所以说,我们替换掉的仅仅是 Arduino IDE 这个蹩脚的代码开发工具,但是编译、调试和代码烧写用的还是原来的 gcc toolchain。
$\color{red}{Notes:}$上图中,你会看到Atmel Studio。Atmel Studio是Atmel公司推出的免费开发工具,它是基于Visual Studio Shell的。所以本文虽然是针对Visual Studio来讲的,但也同时适用于Atmel Studio。
#define CFG_HOLDER 0x00FF55A4 /* Change this value to load default configurations */ #define CFG_LOCATION 0x79 /* Please don't change or if you know what you doing */ #define MQTT_SSL_ENABLE
#define PROTOCOL_NAMEv31 /*MQTT version 3.1 compatible with Mosquitto v0.15*/ //PROTOCOL_NAMEv311 /*MQTT version 3.11 compatible with https://eclipse.org/paho/clients/testing/*/
iotts@jacklu:~$ cd /home/iotts/ iotts@jacklu:~$ mkdir apache-apollo wget http://mirror.bit.edu.cn/apache/activemq/activemq-apollo/1.7.1/apache-apollo-1.7.1-unix-distro.tar.gz
解压源码包:
1
tar -zxvf apache-apollo-1.7.1-unix-distro.tar.gz
配置
进入apache-apollo-1.7.1/bin目录
1
cd apache-apollo-1.7.1/bin/
输入./apollo可以查看帮助
1 2 3 4 5 6 7 8 9 10
iotts@jacklu:~/apache-apollo/apache-apollo-1.7.1/bin$ ./apollo usage: apollo [--log <log_level>] <command> [<args>]
The most commonly used apollo commands are: create creates a new broker instance disk-benchmark Benchmarks your disk's speed help Display help information version Displays the broker version See 'apollo help <command>' for more information on a specific command.
Loading configuration file '/home/iotts/apache-apollo/apache-apollo-1.7.1/bin/iotts_broker/etc/apollo.xml'. INFO | OS : Linux 4.10.0-42-generic (Ubuntu 16.04.3 LTS) INFO | JVM : Java HotSpot(TM) Server VM 1.8.0_151 (Oracle Corporation) INFO | Apollo : 1.7.1 (at: /home/iotts/apache-apollo/apache-apollo-1.7.1) INFO | OS is restricting the open file limit to: 100000 INFO | Accepting connections at: tcp://0.0.0.0:61613 INFO | Accepting connections at: tls://0.0.0.0:61614 INFO | Starting store: leveldb store at /home/iotts/apache-apollo/apache-apollo-1.7.1/bin/iotts_broker/data INFO | Accepting connections at: ws://0.0.0.0:61623/ INFO | Accepting connections at: wss://0.0.0.0:61624/ INFO | virtual host startup is waiting on store startup INFO | virtual host startup is no longer waiting. It waited a total of 1 seconds. INFO | broker startup is waiting on start jetty webserver INFO | Administration interface available at: https://127.0.0.1:61681/ INFO | Administration interface available at: http://127.0.0.1:61680/ INFO | broker startup is no longer waiting. It waited a total of 7 seconds.