0%

简介

Linux内核已经集成LED灯驱动。Linux内核的LED灯驱动采用platform框架,因此我们只需要在设备树文件中添加相应LED节点即可;接下来我们学习如何在全志a40i平台下使用Linux内核自带的LED驱动来驱动 board 上LED。

开发环境介绍

主机操作系统:Ubuntu14.04 64位
目标平台:A40I (ARM Cortex-A7)
交叉工具链:arm-linux-gnueabi,gcc5.3.1
内核版本:3.10

使能Linux内核自带的LED驱动

使用Linux内核自带的LED灯驱动首先需要配置Linux内核,使能自带的LED灯驱动;使能方法如下:

阅读全文 »

环境:Unbuntu20.4LTS
交叉编译工具链:arm-linux-gnueabihf-gcc
软件:VsCode

编译环境搭建及测试

下载交叉编译器

工具地址:https://releases.linaro.org/components/toolchain/binaries/
比如gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
完整路径:
https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz

安装

先解压

1
2
xz -d gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
tar -vxf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar

阅读全文 »

C标准时间函数库头文件:

1
#include <time.h>

数据结构:

1
2
3
4
5
6
7
8
9
10
11
struct tm {
int tm_sec; /* 秒,范围从 0 到 59 */
int tm_min; /* 分,范围从 0 到 59 */
int tm_hour; /* 小时,范围从 0 到 23 */
int tm_mday; /* 一月中的第几天,范围从 1 到 31 */
int tm_mon; /* 月,范围从 0 到 11,这里注意是从0开始算的,0代表1月,1代表2月,以此类推 */
int tm_year; /* 自 1900 年起的年数 */
int tm_wday; /* 一周中的第几天,范围从 0 到 6,这里注意:0代表星期天 */
int tm_yday; /* 一年中的第几天,范围从 0 到 365 */
int tm_isdst; /* 夏令时 */
};

由于HAL库默认使用了SysTick定时器为时基,并且一般是1ms中断一次,所以我们可以利用该定时器实现秒前进,需要覆写该函数:

阅读全文 »

EVT例程中提供了两种OTA方式,在EVT中BLE目录下有一个PDF说明:WCH蓝牙空中升级(BLE OTA)

方式二是不带库升级,整个codeflash分成四个区域,Jump IAP,APP,IAP,LIB

Jump IAP为4K,用来跳入到IAP中,此工程main中并无函数,会直接跳转到IAP,IAP的起始地址修改后,此工程启动文件中的地址也需对应修改为IAP的起始地址,APP为44K,设置这个大小的原因是为了使一些192Kflash的芯片也能直接使用OTA,此app部分可以不带有蓝牙功能,IAP为16K,它的作用就是将手机app发送的升级固件直接写到APP区域,LIB为573的是128K,583的是192K。

那么就有一个问题,对于448Kflash的芯片,该如何扩大APP区域呢?

如果想要扩大,需要按照下面的步骤修改:

阅读全文 »

2.1下载EMQX软件包:下载 EMQX 开源版 | EMQX
https://www.emqx.com/zh/downloads/broker
根据自己服务器类型选择即可,这里我们选用emqx-centos8-4.3.22-arm64.zip
2.2、解压zip压缩包
运行: unzip emqx-centos8-4.3.22-arm64.zip
2.3、启动emqx
首先cd到emqx目录
运行:cd emqx/
然后再运行:./bin/emqx start
显示:emqx 4.3.22 is started successfully! 表示启动成功
停止emqx

1
./bin/emqx stop

2.4、查看运行状态

运行:./bin/emqx_ctl status 命令

2.5、防火墙开放18083和1883端口

firewall-cmd —zone=public —add-port=18083/tcp —permanent

systemctl start firewalld

systemctl stop firewalld

firewall-cmd —list-ports

阅读全文 »

官网下载tar包

http://activemq.apache.org/components/classic/download/

安装activemq前提是要有JDK环境

1. 在安装目录下解压tar包

1
tar -zxvf apache-activemq-5.15.10-bin.tar.gz 

2. 进入解压后的文件夹,进入bin目录下:

1
2
3
[root@instance-d6rdm793 apache-activemq-5.15.10]# cd bin/
[root@instance-d6rdm793 bin]# ls
activemq activemq-diag activemq.jar env linux-x86-32 linux-x86-64 macosx wrapper.jar

3. ./activemq start 启动

1
2
3
4
5
[root@instance-d6rdm793 bin]# ./activemq start
INFO: Loading '/usr/activemq/apache-activemq-5.15.10//bin/env'
INFO: Using java '/usr/lib/jvm/java-1.8.0/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/usr/activemq/apache-activemq-5.15.10//data/activemq.pid' (pid '20401')
阅读全文 »

最近工作中需要配置EMQX的开机自启动服务,开机自启动服务的制作方法其实都是差不多的,这里以制作EMQX的开机自启动服务为例,特此记录便于日后查阅。

首先将启动EMQX写成一个服务,首先我们创建EMQX服务文件,命令如下:

1
vi /usr/lib/systemd/system/emqx.service

emqx.service 服务文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=emqxautostart
After=network.target
[Service]
Type=forking
Environment=HOME=/opt/emqx/emqx/bin/emqx
ExecStart=/opt/emqx/emqx/bin/emqx start
ExecReload=/opt/emqx/emqx/bin/emqx restart
ExecStop=/opt/emqx/emqx/bin/emqx stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target

启动服务,命令如下:

1
/opt/emqx/emqx/bin/emqx start

配置开机自启动,命令如下:

1
systemctl enable emqx.service

重启服务器,命令如下:

1
reboot

到此 Centos7 制作开机自启动服务介绍完成。