ML307R OpenCPU DEMO_SDK环境搭建

一、工程目录

二、环境搭建

三、编译

四、下载

五、添加自定义文件打印 hello

一、工程目录

OpenCPU SDK代码目录结构,如下图所示:

| 名称          | 描述                       |

| ---------------- | --------------------------|

| custom        | 用户代码目录、用户程序入口  |

| docs           | 文档                      |

| examples   | 示例代码                  |

| include       | OpenCPU API 头文件        |

| out             | 编译输出目录               |

| prebuild      | 预编译文件                 |

| third-party   | 第三方开源代码库           |

| tools            | 编译工具脚本               |

这是ML307R_OpenCPU_Standard_SDK,里面提供example,custom里面是一个空项目,我们自己可以在这个项目添加自己的程序。

二、环境搭建

2.1 编译需预安装python3.7以上版本,安装完python后,打开命令行执行pip install scons安装scons工具。

2.2 使用Visual Studio Code 打开工程

三、编译

打开工程文件的README.md文件,在里面可以看到介绍编译命令

当前支持ML307R-DC型号编译;

编译命令:scons

清除编译:scons -c

编译示例程序:scons demo=y

在Visual Studio Code里面的终端里面输入scons -c清除历史编译信息,再执行相应编译命令启动编译

编译完成就可以在out目录下面生成编译文件。不过目前我们使用scons指令编译的是custom工程里面目前是空项目,需要我们自己写程序。

同时可以使用scons demo=y 编译示例程序

四、下载

ML307R 烧录方式通过 USB 进行烧录,操作流程如下
4.1安装 ML307A 的 USB 驱动,在资料文档中,请自行安装
安装 USB 驱动后 。确保 USB 驱动能够在电脑上正常运行。
4.2  驱动安装之后,确定在下载模式,
电 脑 上 先 进 行 安 装 专 用 的 ML307A 烧 录 软 件 , 软 件 工 具 安 装 包
aboot-tools-2022.03.01-win-x64 》 ,解压安装后如下截图
打开下载工具,如下截图所示
按如下截图提示,加载烧录的程序固件包,文件为 ZIP 格式。 注意不能勾选第一个选框,否
则会擦除 RF 射频校准的参数以及 ADC 参数。
点击 Start 按钮,开始进行烧录。
我烧录的是刚才编译的demo程序。
4.3 现象 使用串口工具连接deg 串口,和串口0 ,默认情况下 deg串口的波特率是115200 串口0的波特率是9600
可以看到串口打印的提示,右边可以输入命令。
五、添加自定义文件打印 hello
在custom 里面添加自定义文件,实现串口打印hello
新建一个test.h 和test.c,并且添加到Sconscript.
文件新建号之后,在test.c里面添加内容如下

#include "custom_main.h"#include "cm_iomux.h"
#include "stdio.h"
#include "stdlib.h"
#include "stdarg.h"
#include "cm_os.h"
#include "cm_mem.h"
#include "cm_sys.h"void test_printf(void)
{cm_log_printf(0, "hello... ...");cm_log_printf(0, "hello... ...");
}

test.h代码如下

#ifndef __TEST_H__
#define __TEST_H__
void test_printf(void);#endif

custom_main.c代码如下


#include "custom_main.h"
#include "cm_uart.h"#include "cm_iomux.h"
#include "stdio.h"
#include "stdlib.h"
#include "stdarg.h"
#include "cm_os.h"
#include "cm_mem.h"
#include "cm_sys.h"
#include "test.h"int cm_opencpu_entry(void *param)
{(void)param;test_printf();return 0;
}

编译之后下载。

运行之后可以在deg 串口打印了我们添加的hello

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/15511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件设计师中级

计算机系统 运算器和控制器 算术逻辑单元 累加寄存器器 状态寄存器 数据缓冲寄存器 指令寄存器 程序计数器 地址寄存器 指令译码器 内存按字节编址 内存存储单元16位 1 浮点数 浮点数范围:-2的(2的阶码次)-1到-2的(2的阶码次)-1 乘 1-2负尾数次 海明码 海明码&…

自定义一个SpringBoot场景启动器

前言 一个刚刚看完SpringBoot自动装配原理的萌新依据自己的理解写下的文章,如有大神发现错误,敬请斧正,不胜感激。 分析SpringBoot自动配置原理 SpringBoot的启动从被SpringBootApplication修饰的启动类开始,SpringBootApplicaiotn注解中最…

C语言 宏

目录 一、宏定义 1.1 预定义符号 1.2 预处理指令 #define 1.3 带有副作用宏定义 1.4 宏和函数的一个对比 ​编辑 1.5 #undef 二、条件编译 2.1 #if、#else、#elif、#endif 2.2 #ifdef和#ifndef 2.3 C语言中如何通过条件编译来预防头文件的重复包含? 一、宏定义 在C语…

导弹初识(一)

目录 导弹初识1 导弹是什么2 导弹的分类2.1 按飞行方式2.2 按发射/目标2.2.1 空空导弹2.2.1 空地导弹2.2.1 地空导弹2.2.1 地地导弹 2.3 按打击目标 3.实例3.1 防空导弹3.2 低空防空导弹武器系统 本文节选自 zh,还有百度百科 导弹初识 1 导弹是什么 导弹两个字拆…

欧拉函数、快速幂、扩展欧几里得算法、中国剩余定理和高斯消元

欧拉函数 给定 n 个正整数 ai,请你求出每个数的欧拉函数。 欧拉函数的定义1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。 若在算数基本定理中,Np1a11p2a2…pmm,则:ϕ(N) Np1−1/p1p2−1/p2…pm−1/pm 输…

二叉树基于队列实现的操作详解

一、队列知识补充 有关队列的知识请详见博主的另一篇博客:http://t.csdnimg.cn/3PwO4 本文仅仅附上需要的队列操作供读者参考 //结构体定义 typedef struct BinaryTreeNode* QDataType;typedef struct QueueNode {struct QueueNode* next;QDataType val; }QNode;…

添砖Java(十一)——常见类的使用Object,Math,System,BigDeciaml,包装类

目录 object: toString: equals: ​编辑 Math:​编辑 System: BigDecimal: 基本数据的包装类:​编辑 object: 我们知道,所有的类都是间接或直接继承了object类。然后object里面有几个用得很多的方法…

7.2k star的万能视频解析下载插件

今天给大家介绍一个超级厉害的浏览器插件,可以解析各个平台网页视频——猫抓。 项目简介 猫抓(cat-catch) 是一款资源嗅探扩展插件,他能够帮助你筛选列出当前页面的资源。简单来说,当你打开任意一个带有视频的网页&a…

信息系统项目管理师十大管理计划内容概览

目录 1.项目章程2.项目管理计划3.范围管理计划4.需求管理计划5.进度管理计划6.成本管理计划7.质量管理计划8.资源管理计划9.沟通管理计划10.风险管理计划11.采购管理计划12.干系人参与计划 点我去AIGIS公众号查看本文 1.项目章程 项目目标成功标准退出标准关键干系人名单发起人…

Android9.0 MTK平台如何增加一个系统应用

在安卓定制化开发过程中,难免遇到要把自己的app预置到系统中,作为系统应用使用,其实方法有很多,过程很简单,今天分享一下我是怎么做的,共总分两步: 第一步:要找到当前系统应用apk存…

Linux_应用篇(08) 信号-基础

本章将讨论信号,虽然信号的基本概念比较简单,但是其所涉及到的细节内容比较多,所以本章篇幅也会相对比较长。 事实上,在很多应用程序当中,都会存在处理异步事件这种需求,而信号提供了一种处理异步事件的方法…

c# 画一个正弦函数

1.概要 c# 画一个正弦函数 2.代码 using System; using System.Drawing; using System.Windows.Forms;public class SineWaveForm : Form {private const int Width 800;private const int Height 600;private const double Amplitude 100.0;private const double Period…

lvgl无法显示中文

环境: VS2019、LVGL8.3 问题: VS2019默认编码为GB2312, 解决: VS2022设置编码方式为utf-8的三种方式_vs utf8-CSDN博客 我用的方法2,设置为 utf-8无签名就行。

深入了解Socket套接字

目录 一、引入🙌 1、概念 🎉 2、分类🎉 Socket 套接字主要针对传输层协议分为流套接字、数据报套接字、原始套接字(了解即可)三类。 1)流套接字:使用传输层TCP协议 2)数据报套…

AI预测福彩3D采取888=3策略+和值012路一缩定乾坤测试5月25日预测第1弹

上一套算法采用了88723的容差策略,关于容差策略相信大家都比较清楚:容差可以最大限度的保证初始大底中包含中奖号码,然后再通过设置一些杀号条件进行缩水。比如,我对我的各种模型算法近30期的预测结果进行了统计,如果采…

huggingface笔记: accelerate estimate-memory 命令

探索可用于某一机器的潜在模型时,了解模型的大小以及它是否适合当前显卡的内存是一个非常复杂的问题。为了缓解这个问题,Accelerate 提供了一个 命令行命令 accelerate estimate-memory。 accelerate estimate-memory {MODEL_NAME} --library_name {LIBR…

Stable Diffusion【艺术特效】【霓虹灯】:霓虹灯像素化马赛克特效

提示词 Neon pixelated mosaic of [Subject Description],highly detailed [主题]的霓虹灯像素化马赛克,高度详细 参数设置 大模型:万享XL_超写实摄影V8.2 采样器:Euler a 采样迭代步数:25 CFG:3 反向提示词&#x…

微服务可用性之隔离

摘要 ​ 本文主要微服务场景下服务的可用性保障之隔离。隔离又分为几种情况,动静隔离、读写隔离、热点隔离、资源隔离等场景。 为什么要隔离 ​ 本质上是对资源进行分割确保在出现故障的时候服务只是部分不可用,不至于系统陷入整体性瘫痪,…

使用C/C++ API接口操作 Zookeeper 数据

ZooKeeper 支持 Java 和 C 的API接口。本文将介绍使用 C/C 语言客户端库的编译安装和使用入门。 一、编译安装 PS:就在上一篇文章还觉得安装和配置 jdk 、maven 麻烦,所以当时选择 apache-zookeeper-[version]-bin.tar.gz 的版本。然而,本文…

Leetcode刷题笔记4

1658. 将 x 减到 0 的最小操作数 1658. 将 x 减到 0 的最小操作数 - 力扣(LeetCode) 示例 3: 输入:nums [3,2,20,1,1,3], x 10 输出:5 解释:最佳解决方案是移除后三个元素和前两个元素(总共…