RV1126&RV1109 buildroot 增加PWM测试脚本

本文介绍了如何通过脚本在Rockchip平台上测试PWM输出,设置占空比为50%且频率为1.00KHz。首先在设备树中配置PWM8,然后通过shell脚本`pwm.sh`启用和关闭PWM8。脚本解释了如何利用/sys/class/pwm目录下的文件来控制PWM的使能、极性、占空比和周期。此外,还提供了与PWM相关的技术交流群联系方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、测试效果(让pwm8输出占空比为50%,1.00KHz)

2 、kernel打开pwm8

&pwm8 {
    status = "okay";
    pinctrl-names = "active";
    pinctrl-0 = <&pwm8m0_pins_pull_down>;    
};

3、执行方法

使能pwm8

[root@ROCKEMD:/rockchip_test/pwm]# ./pwm.sh 1

关闭pwm8

[root@ROCKEMD:/rockchip_test/pwm]# ./pwm.sh 0

4、上脚本(pwm.sh)

#!/bin/sh
#  date: 20201230
#  rockemd

pwmPath="/sys/class/pwm/pwmchip1/pwm0"

if [ -n "`echo $1|sed 's/[2-9]//g'`" ];then
	if [ ! -d "$pwmPath" ]; then
		echo 0 > /sys/class/pwm/pwmchip1/export 
		echo 1000000 > /sys/class/pwm/pwmchip1/pwm0/period
		echo 500000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle
	fi
	echo $1 > /sys/class/pwm/pwmchip1/pwm0/enable
	if [ $1 -eq 0 ];then
		echo 0 > /sys/class/pwm/pwmchip1/unexport
	fi
else
   echo "./pwm.sh <1 | 0>"
   echo "1 = enable"
   echo "0 = disabled"
fi

5、脚本说明

pwm驱动加载成功后,在/sys/class/pwm/下会产生pwmchip1目录,向export文件写入0,就会打开pwm定时器,会产生一个pwm0目录。相反往unexport文件写入0,就会关闭pwm定时器,同时pwm0目录会被删除。

该目录有以下几个文件:

enable :写入1使能pwm,写入0关闭pwm

polarity  :有normal和inversed两个参数选择,表示输出引脚电平翻转。

duty_cycle :单位纳秒,在normal模式下,表示高电平持续的时间 在inversed模式下,表示低电平持续时间。

period  :单位纳秒,表示pwm波持续周期

 

技术交流群: 微信号

<think>嗯,用户的问题是关于在RV1126平台上使用Buildroot安装Mosquitto MQTT Broker。我需要先理解用户的需求。RV1126是一个处理器平台,Buildroot是用于构建嵌入式Linux系统的工具。Mosquitto是一个开源的MQTT代理,用户可能想在这个平台上部署物联网相关的应用,比如连接到阿里云或者微信小程序。 首先,我得回忆一下Buildroot的基本流程。Buildroot通过配置包来选择需要编译的软件,然后生成根文件系统。所以用户需要在Buildroot的配置中启用Mosquitto包。可能需要检查Buildroot的版本是否支持Mosquitto,或者是否需要额外的配置。 接下来,我需要查看用户提供的引用内容。引用[3]提到了在RV1126Buildroot构建过程中遇到的一些包的错误,比如libgpg-error和python-crc32c。这可能意味着在编译某些依赖时会有问题。而引用[2]和[1]提到在IMX6Q和STM32+Air724上使用Mosquitto,说明Mosquitto在嵌入式系统上的应用是可行的,但不同平台可能需要不同的配置。 用户的问题可能涉及到几个步骤:首先确保Buildroot配置中包含Mosquitto,然后处理可能的依赖问题,最后进行编译和测试。还需要考虑生成配置文件,如mosquitto.conf,以及启动服务的脚本。另外,引用[5]提到RV1126启动时的问题,修改inittab文件可能需要处理,但用户的问题可能不需要这个步骤,除非Mosquitto服务启动有类似问题。 可能的陷阱包括依赖库缺失,比如OpenSSL的支持,或者在交叉编译过程中某些选项未正确配置。用户可能需要手动启用Mosquitto的配置选项,比如TLS支持,或者调整编译参数。此外,生成后的根文件系统中,Mosquitto的配置文件路径是否正确,服务如何自动启动也是需要考虑的。 另外,用户可能希望Mosquitto在启动时自动运行,这可能需要修改初始化脚本,比如在/etc/init.d中添加启动项,或者使用systemd配置。不过Buildroot通常使用传统的init系统,所以可能需要检查/etc/rc.local或者类似的启动文件。 总结步骤应该是:1. 进入Buildroot配置,启用Mosquitto包;2. 处理依赖项,如OpenSSL;3. 编译并生成固件;4. 在目标平台上配置Mosquitto,如修改配置文件;5. 测试服务是否正常运行。同时需要注意可能的编译错误,参考引用中的解决方法,比如处理libgpg-error的问题可能需要更新或打补丁。 最后,用户可能需要验证Mosquitto是否正确安装,使用mosquitto_sub和mosquitto_pub命令测试MQTT通信,或者检查端口1883是否监听。如果有问题,查看日志文件或启用调试模式。</think>### RV1126平台使用Buildroot安装Mosquitto的步骤 #### 一、配置Buildroot环境 1. **进入SDK目录** ```bash cd buildroot/ source build/envsetup.sh # 初始化编译环境[^4] ``` 2. **启动Buildroot配置界面** ```bash make menuconfig ``` 3. **启用Mosquitto包** - 导航至路径:`Target Packages` → `Networking applications` → `mosquitto` - 勾选以下选项: - `Enable MQTT broker`(启用MQTT服务端) - `Enable TLS support`(如需加密通信) - `Enable command-line clients`(包含mosquitto_pub/sub工具)[^2] #### 二、处理依赖项 1. **确保OpenSSL已启用** - 在`Target Packages` → `Cryptographic libraries`中勾选`openssl` - 若遇到类似`libgpg-error`的编译错误,需检查交叉编译工具链的兼容性[^3] 2. **执行增量编译** ```bash make mosquitto-rebuild # 仅重新编译Mosquitto及其依赖 ``` #### 三、生成固件并部署 1. **编译完整系统镜像** ```bash make ``` 2. **烧录固件到RV1126** - 使用工具如`upgrade_tool`将生成的`rootfs.img`写入开发板 #### 四、配置Mosquitto服务 1. **修改配置文件** ```bash vi /etc/mosquitto/mosquitto.conf ``` 添加基础配置: ```conf listener 1883 allow_anonymous true # 测试阶段允许匿名连接[^2] ``` 2. **设置开机自启动** - 在`/etc/init.d/S50mosquitto`添加: ```bash mosquitto -d -c /etc/mosquitto/mosquitto.conf ``` 3. **解决终端抢占问题** 若出现串口被占用,按引用[^5]方法修改`/etc/inittab`: ```bash cp /etc/inittab.source /etc/inittab # 恢复原始配置 ``` #### 五、功能验证 1. **启动服务** ```bash mosquitto -d -c /etc/mosquitto/mosquitto.conf ``` 2. **测试MQTT通信** ```bash mosquitto_sub -t "test" # 订阅主题 mosquitto_pub -t "test" -m "Hello RV1126" # 发布消息 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值