LiteOS增加执行自定义源码

开发过程注意事项:

  1.  源码工程路径不能太长
  2.  源码工程路径不能有中文
  3.  一定要关闭360等杀毒软件,否则编译的打包阶段会出错

增加自定义源码的步骤:

  1.创建源码目录

2. 创建源文件

新建myhello目录后,再此目录下再新建源文件myhello_demo.c

3. 编写自定义代码

在myhello_demo.c中增加代码如下:

#include <stdio.h>#include <ohos_init.h> //必须包含此头文件,否则无法调试输出void myhello_init() //自定义一个入口函数{printf("myhello init\n");}//声明myhello_init为入口函数SYS_RUN(myhello_init); //在鸿蒙系统层自动执行入口函数// APP_FEATURE_INIT(myhello_init); //在鸿蒙系统的应用层自动执行入口函数

4. 配置自定义源码的编译

   鸿蒙系统源码是通过目录下的BUILD.gn描述当前源码如何编译,则有哪些源文件,及使用的头文件路径。复制iothardware目录下的BUILD.gn到myhello目录下。

修改myhello目录下的BUILD.gn文件内容为:

static_library("myhello_demo") {sources = ["myhello_demo.c"]include_dirs = ["//utils/native/lite/include","//kernel/liteos_m/kal/cmsis","//base/iot_hardware/peripheral/interfaces/kits",]}

其中:myhello_demo为编译的目标名, sources指定当前目标由哪些源文件组成, include_dirs指定源码中使用的头文件所在路径。

修改myhello上级App目录下的BUILD.gn, 修改内容为:

import("//build/lite/config/component/lite_component.gni")lite_component("app") {features = [#备注 "源码目录名:源码目录BUILD.gn的目标名""myhello:myhello_demo",]}

5. 执行程序

重新ReBuild工程后,upload烧录并打开monitor后即可接收开发板里输出的信息。

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

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

相关文章

程序员学长 | PyCaret,一个超强的 python 库

本文来源公众号“程序员学长”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;PyCaret&#xff0c;一个超强的 python 库 今天给大家分享一个超强的 python 库&#xff0c;PyCaret。 https://github.com/pycaret/pycaret 简介 …

[论文笔记]RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL

引言 今天带来又一篇RAG论文笔记&#xff1a;RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL。 检索增强语言模型能够更好地适应世界状态的变化并融入长尾知识。然而&#xff0c;大多数现有方法只能从检索语料库中检索到短的连续文本片段&#xff0…

random.choices 的参数及其应用

random.choices 是 Python 的 random 模块中的一个函数&#xff0c;用于从给定的序列中随机选择元素&#xff0c;可以设置权重。这个函数在需要根据特定概率分布进行随机选择的场景中非常有用。下面是 random.choices 的参数及其详细介绍&#xff1a; 文章目录 参数应用示例基本…

释放序列和同步

#include <iostream> #include<thread> #include<atomic> #include<vector> std::atomic<int>count(0); std::vector<int>queue_data; //如果存储操作被标记为memory_order_release、memory_order_acq_rel或memory_order_seq_cst&#xff…

FP5207+音频功率放大器的组合解决方案-适用于便携式音频播放器、无线耳机、智能音箱和车载音响系统等高质量音频输出需求的产品,以提高电池供电的效率和输出功率

随着消费者对智能家居的需求增长&#xff0c;智能音响市场成为重要增长点。同时&#xff0c;音响技术也在不断发展&#xff0c;音响及扬声器的功能和性能不断提升。 蓝牙音箱&#xff0c;这类音箱供电是以锂电池为主&#xff0c;一般选用内置升压的音频功放芯片&#xff0c;音响…

iOS input 标签 focus 失效

解决方案 <inputv-if"show"ref"inputRef" />watch(inputRef, (ref) > {ref?.focus(); });

vivado DQS_BIAS

DQS_偏差 DQS_BIAS是驱动差分输入缓冲器的顶级端口的属性&#xff0c;或者 双向缓冲基元&#xff08;IBUFDS、IOBUFDS&#xff09;。 DQS_BIAS属性在某些的输入端提供可选的DC偏置 伪差分I/O标准&#xff08;DIFF_SSTL&#xff09;和真差分I/O规范&#xff08;LVDS&#xff09;…

windows 构建nginx本地服务随系统自启

1.先去官网下载一个nginxzip 2.将zip解压&#xff0c;将nginx-server.exe文件放入文件夹 3.创建nginx-server.xml&#xff0c;将以下内容放进文件内 <service> <id>nginx</id> <name>Nginx Service</name> <description>High Per…

强化学习中的蒙特卡洛算法和时序差分算法

在强化学习&#xff08;Reinforcement Learning, RL&#xff09;中&#xff0c;价值函数的估计是核心任务之一。蒙特卡洛&#xff08;Monte Carlo, MC&#xff09;方法和时序差分&#xff08;Temporal Difference, TD&#xff09;方法是两种常用的策略&#xff0c;用于估计状态…

软件架构之架构风格

软件架构之架构风格 9.3 软件架构风格9.3.1 软件架构风格分类9.3.2 数据流风格9.3.3 调用/返回风格9.3.4 独立构件风格9.3.5 虚拟机风格9.3.6 仓库风格 9.4 层次系统架构风格9.4.1 二层及三层 C/S 架构风格9.4.2 B/S 架构风格9.4.3 MVC 架构风格9.4.4 MVP 架构风格 9.5 面向服务…

机器学习筑基篇,​Ubuntu 24.04 编译安装 Python 及多版本切换

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] Ubuntu 24.04 编译安装最新Python及多版本切换 描述&#xff1a;说到机器学习&#xff0c;人工智能&#xff0c;深度学习不免会提到Python这一门编程语言&#xff08;人生苦短&#xff0c;及时Pyt…

windows防火墙端口设置

PS&#xff1a;本文实例为Windows Server 2019&#xff0c;其他Windows版本大同小异。 1、首先打开windows防火墙&#xff0c;点击“高级设置” 2、 高级设置界面 3、假设需要开放一个端口为3306应该怎么做 光标对准“入站规则”右键新建规则&#xff0c;选择“端口” 协议这…

C++类和对象(一)

目录 面向过程和面向对象 面向过程编程&#xff08;Procedural Programming&#xff09; 面向对象编程&#xff08;Object-Oriented Programming&#xff09; 一、类的定义 类定义格式 类域 二、类的访问限定符及封装 访问限定符 封装 三、实例化 实例化概念 对象大小…

软件运行次数

题目&#xff1a; 实现一个验证程序运行次数的小程序&#xff0c;要求如下&#xff1a; 当程序运行超过3次时给出提示&#xff1a;本软件只能免费使用3次&#xff0c;欢迎您注册会员后继续使用&#xff5e;程序运行演示如下&#xff1a; 第一次运行控制台输出&#xff1a;欢迎…

常见WAF拦截页面总结

(1) D盾 (2) 云锁 (3) UPUPW安全防护 (4) 宝塔网站防火墙 (5) 网防G01 (6) 护卫神 (7) 网站安全狗 (8) 智创防火墙 (9) 360主机卫士或360webscan (10) 西数WTS-WAF (11) Naxsi WAF (12) 腾讯云 (13) 腾讯宙斯盾 (14) 百度云 图片 (15) 华为云 (16) 网宿云 (17) 创宇盾 图片 (…

ROS服务通信自定义srv

服务通信自定义srv 流程:创建ROS功能包按照固定格式创建srv文件编译配置文件编译生成中间文件 流程: srv 文件内的可用数据类型与 msg 文件一致&#xff0c;且定义 srv 实现流程与自定义 msg 实现流程类似&#xff0c;需查阅msg文件的可以浏览ROS话题通信流程自定义数据msg格式…

【服务器】在Linux查看运行的Python程序,并找到特定的Python程序

在Linux查看运行的Python程序并找到特定的Python程序 写在最前面1. 使用ps命令查看所有Python进程查看详细信息 2. 使用pgrep命令查找Python进程ID 3. 使用top或htop命令使用top命令使用htop命令 4. 使用lsof命令查找Python进程打开的文件 5. 使用nvidia-smi命令查看GPU使用情况…

JDBC编程的学习——MYsql版本

目录 前言 什么是JDBC ??? 前置准备 使用JDBC的五个关键步骤 1.建立与数据库的连接 2.创建具体的sql语句和Statement 3.执行SQL语句 4.处理结果集 5.释放资源 完整流程展示 前言 笔者在先前的博客就提过会写关于JDBC的内容 [Mysql] 的基础知识和sql 语句.教你速成…

R包:reticulate R对python的接口包

介绍1 R和python是两种不同的编程语言&#xff0c;前者是统计学家发明并且服务数学统计计算&#xff0c;后者则是最万能的胶水语言。随着大数据时代的到来&#xff0c;两者在数据分析领域存在越来越多的共同点且可以相互使用&#xff0c;为了破解二者的编程壁垒&#xff0c;CR…

软考《信息系统运行管理员》-3.1信息系统设施运维的管理体系

3.1信息系统设施运维的管理体系 1 信息系统设施运维的对象 基础环境 主要包括信息系统运行环境(机房、设备间、配线室、基站、云计算中心 等)中的空调系统、供配电系统、通信应急设备系统、防护设备系统(如消防系统、安全系统) 等&#xff0c;能维持系统安全正常运转&#xf…