项目简介
本项目基于C语言构建,用于实现与单片机等硬件设备的通信和控制。通过串口通信、IIC通信等方式,达成CPU与单片机间的数据交互,实现了LED控制、LCD屏幕控制、音频调节等功能。同时具备日志记录、防止程序多次运行等特性,保障系统的稳定性和可靠性。
项目的主要特性和功能
- 通信功能:实现CPU与单片机的串口通信,采用固定4字节通信格式(含帧头、数据字节和校验和)进行数据发送和应答;采用IIC方式控制声卡,取消原mixer方法。
- 硬件控制:提供丰富硬件控制接口,如看门狗控制、核心板复位、LCD复位、PTT引脚处理等;可控制LED,调节LCD屏幕的开关与亮度;实现音频音量调节并限制调节范围。
- 程序管理:对API程序和服务程序进行多次运行限制,服务程序以守护进程方式运行;用线程池处理API指令,加入串口内部消息队列解决线程交叉识别返回数据的问题。
- 日志管理:服务程序支持日志记录,可通过参数控制日志开关,采用定时刷新磁盘记录的方式保存日志信息。
- 测试功能:测试目录中的程序采用中文菜单提示模式,方便用户进行功能测试。
安装使用步骤
编译
- 交叉编译:若需交叉编译,执行命令
make CROSS_COMPILE=aarch64-linux-gnu-
。 - 非交叉编译:直接执行
make
命令。
注意事项
- 每次编译前建议先执行
make clean
,再执行make
,避免编译问题。 - 编译完成后,将动态库文件
libdrvapi22134.so
复制到/usr/lib
目录,命令为cp libdrvapi22134.so /usr/lib
。
运行
- 服务程序:服务程序应在系统启动时自动运行,可添加到
/etc/rc.local
文件中。也可手动启动,使用-D
选项进入调试模式,不开启日志记录。 - API程序:API程序启动时会检查服务程序是否存在,若不存在则尝试启动服务程序。启动服务程序时采用
fork
和execl
方式。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】