cmake

[FFmpeg万能音频播放器]android CMake项目准备阶段(一)

大憨熊 提交于 2020-10-17 10:22:39
1.新建c++项目 2.配置NDK路径 这里建议配置NDK版本为:android-ndk-r15c 3.在SNKtool下安装CMake 4.新建Module 并且添加Module (这个module主要用来加载库与写jni) new ->Module FIle ->ProjectStructure 5.在新建的module中写Demo 也就是jni的java通信类 package com.example.myplayer; public class Demo { static { System.loadLibrary("native-lib"); System.loadLibrary("avutil"); System.loadLibrary("swresample"); System.loadLibrary("avcodec"); System.loadLibrary("avformat"); System.loadLibrary("swscale"); System.loadLibrary("postproc"); System.loadLibrary("avfilter"); System.loadLibrary("avdevice"); } public native String stringFromJNI(); public native String

stm32与linux通过protobuf打包数据并进行通信

这一生的挚爱 提交于 2020-10-14 05:56:38
一、利用protobuf通信原理 最近项目中需要用到stm32与Orange Pi(移植了linux)进行数据交互,H6端是用C++编写的串口底层驱动,与stm32的串口连接并通信。串口间的通信协议定为采用protobuf打包数据并通过串口发出的形式, 即发送端编码数据并序列化成数组通过串口发出,接收端接收到一帧数据,进行解码并解析数据。 二、 移植protobuf(nanopb-0.3.8)到stm32工程 protobuf是一种打包数据的工具,和JSON打包数据的作用是一样的。在C++下用protobuf传递数据,要先写一个.proto文件,然后在linux环境下编译该文件,或者直接放在CMake里面编译,便可以生成出来一个类(.cpp 和 .h),利用protobuf打包便是打包这个类。 可以理解成把这个类的所有数据加上帧头帧尾帧校验,然后通过串口,网络等通信格式将数据发送出去,这个过程称为序列化。解包就是把收到序列化的数据反序列化,然后把有效数据放入生成的类中。 一般开发stm32的环境是在Windows下,基于Keil开发,要通过.proto文件生成结构体(.c和.h)需要下载一个官方protobuf的轮子,然后在命令行下编译即可生成我们需要的结构体文件。这个轮子的下载地址放在文末。 三、编写.proto文件 编写.proto文件很简单,开头先写protobuf的版本号