上位机图像处理和嵌入式模块部署(mcu之静态库生成和使用)

news2024/11/25 7:02:47

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        很多同学做了很长时间的mcu和keil开发,都认为keil工程中必须包含所有的源代码,其实这是不对的。如果有一些代码我们不希望别人看到,那么就可以把h文件和lib文件提供给别人,这样就避免了代码暴露的风险。甚至于说,我们也可以自己来实现dll的调用,动态加载算法插件,这都是可以的,不过这个等到遇到的时候再说。

1、创建lib工程

        第一步要做的,就是创建一个lib工程,

        填写好工程名之后,我们可以选择一个arm mcu类型,

        选择好之后,就可以添加add.c文件了,

        这里,我们选择了add.c这个文件名,大家可以根据自己的需要,换成其他的文件名,都是可以的。

        以上这些都做好之后,就可以补充一下add.c代码。可以写一个简单的递归函数,


int iterate(int data)
{
	  if(data == 1)
			return 1;
		else
			return iterate(data-1) +data ;
}

        既然是静态库,那么最后生成的肯定就不是hex文件了。所以生成目标这部分也需要修改一下。我们在output tab页面里面选择输出lib即可,

        至此,所有的工作都已经准备好了。我们直接单击编译,不出意外的话,就可以看到生成lib文件了。

*** Using Compiler 'V5.06 update 4 (build 422)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'Target 1'
compiling add.c...
creating Library...
".\Objects\test.lib" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:  00:00:01

2、使用lib

        和创建代码、生成lib就更简单了。前面我们创建了一个stm32使用的lib,同样我们打开一个stm32的工程,把lib文件直接拖进去就可以,

        这样lib文件就可以参与编译了。如果要使用的话,可以自己准备一个头文件,

extern int iterate(int data);
int data = iterate(100);

   

3、总结

        虽然mcu是一个相对独立的工程,开发规模不是很大。不过,还是建议大家可以把用的比较多的模块整理成lib。这样不仅能提高开发进度,开发的代码质量也有保障。另外不想share的一些code,也可以以这种方式share给客户。

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

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

相关文章

C#.net6.0+Vue+Ant-Design智慧医院手术麻醉系统源码 手术麻醉软件信息化管理系统 麻醉文书祥解

C#.net6.0VueAnt-Design智慧医院手术麻醉系统源码 手术麻醉软件信息化管理系统 麻醉文书祥解 医护人员通过手麻信息系统可以进行手术的预约申请、受理、安排,从门诊医生下医嘱到发起手术申请、护士长审核通过,均实现了全流程信息化管理,大大…

内容安全复习 4 - 深度生成模型

文章目录 概述经典算法自回归模型(Autoregressive model)变分自编码器(VAE)生成对抗网络(GAN)扩散模型(Diffusion model)总结 应用 概述 深度生成模型是一类使用深度学习技术构建的…

【第25章】Vue实战篇之用户登出

文章目录 前言一、后端代码二、前端代码1.接口调用2.界面代码3.事件代码 三、效果总结 前言 这里来演示用户登出。 一、后端代码 /*** 登出* param token token* return Result*/RequestMapping("logout")public Result logout(RequestHeader("Authorization&…

【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识

🔥 个人主页:空白诗 文章目录 引言一、Python简介1.1 历史背景1.2 设计哲学1.3 语言特性1.4 应用场景1.5 为什么选择Python 二、Python语言基础2.1 注释规则2.1.1 单行注释2.1.2 多行注释2.1.3 文件编码声明注释 2.2 代码缩进2.3 编码规范2.3.1 命名规范…

镜像发布至dockerHub

1、login 没有账号的话去注册一个 https://hub.docker.com docker login 输入账号密码和账号2、修改镜像名格式 可以直接招我的修改 格式为你的 hub名/镜像名 3、推送

2D图形引擎Cairo例子

代码; #include<cairo.h> int main() {cairo_surface_t *surface;cairo_t *cr;surfacecairo_image_surface_create(CAIRO_FORMAT_ARGB32,320,240);crcairo_create(surface);cairo_set_source_rgb(cr,0,1,0);cairo_rectangle(cr,10,10,200,200);cairo_fill(cr);cairo_mov…

OpenMVS算法流程

OpenMVS安装使用教程 源码与注释代码地址 . 源码: GitHub - cdcseacave/openMVS: open Multi-View Stereo reconstruction library . 注释代码: GitHub - electech6/openMVS_comments: open Multi-View Stereo reconstruction library 依赖项与安装工具说明 OpenMVS 依赖的…

分享一个 Fail2ban 过滤规则

今天明月给大家分享个 Fail2ban 的过滤&#xff08;Filter&#xff09;规则&#xff0c;有关 Fail2ban 的文章大家可以参考【服务器全面使用 Fail2Ban 初见成效】和【使用 Fail2ban 禁止垃圾采集爬虫&#xff0c;保护 Nginx 服务器】等文了解&#xff0c;总之 Fail2ban 是 Linu…

求解FAT表大小

540M/1K 540k 540 * 1024 b 512k对应2的19次方<540k<1024k对应2的20次方 取比540k大的1024k 八位一个字节 20对应2.5个字节 所以FAT占用 2.5*5401350k 1.2G/1k1.2M 1M1024k对应2的20次方<1.2M<2M对应2的21次方 取2M 21/8是循环小数不可以直接用 所以四舍五…

hdfs高可用文件系统架构

1、整体架构 2、角色简介 2.1、namenode NameNode 是 HDFS 集群中的核心组件&#xff0c;负责管理文件系统的元数据、处理客户端请求、管理数据块、确保数据完整性和高可用性。由于其重要性&#xff0c;NameNode 的性能和可靠性直接影响整个 HDFS 集群的性能和可靠性。在生产…

GD32 MCU的选项字节是什么?

GD32 MCU的选项字节是什么&#xff0c;有什么功能呢&#xff1f;选项字节被误篡改如何回复&#xff1f; 读者朋友们是否会有以上的疑问&#xff0c;首先我们先为大家介绍选项字节是什么以及选项字节的功能。 以GD32F30X系列MCU为例&#xff0c;其选项字节说明如下表所示&…

Acrobat Pro DC 2021:Mac/Win平台上全面高效的PDF编辑器

Acrobat Pro DC 2021是一款在Mac和Windows平台上广受欢迎的PDF编辑器&#xff0c;它凭借其全面的功能和高效的性能&#xff0c;为用户提供了卓越的PDF处理体验。 一、编辑功能全面强大 Acrobat Pro DC 2021允许用户轻松创建、编辑、合并、转换、签署和分享PDF文件。无论是对P…

慧天卓特:6月18日FYDI旱情监测分析

旱情监测 - 6月18日 重点干旱区域FYDI监测图 黄淮海流域和新疆内蒙甘肃干旱区域分布地图如下所示&#xff1a; 图1 重点旱情区域FYDI分布图 &#xff08;上&#xff1a;黄淮海流域&#xff1b;下&#xff1a;新疆内蒙甘肃地区&#xff09; 重点省市干旱面积占比统计 重点省…

upload-labs实验过程中遇到的问题

第6题问题&#xff1a;500异常码 发现500异常码&#xff0c;这个应该是apache版本问题&#xff0c;可更换其他版本&#xff0c;或者更换为nginx 12题问题&#xff1a;上传出错 出现上传错误&#xff0c;大概率是php版本问题&#xff0c;需要下载php5.2.17版本的php或者更换其他…

让全栈AI的旗帜猎猎作响:“逆行者”华为云

如果有人问&#xff0c;AI大模型行业&#xff0c;最近的风向是什么&#xff1f;相信很多人都会说&#xff0c;是“内卷”。 近段时间&#xff0c;“降价”成了大模型的第一关键词。各大云服务商争相加入AI降价潮&#xff0c;甚至有公司模型降价达到了97%的惊人幅度。加上厂商抢…

无限滚动表格

纵向无限滚动 单元格内部横向滚动 <!--* Description: 横向、纵向滚动表格* Author: liyanfeng liyanfenghopewind.com* Date: 2024-06-15 16:06:57* LastEditors: liyanfeng liyanfenghopewind.com* LastEditTime: 2024-06-20 17:15:37* FilePath: \plus-ui\src\componen…

为什么要选择华为 HCIE-Security 课程?

2020 年我国网络安全市场规模达到 680 亿元&#xff0c;同比增长 25%。随着对网络安全的愈加重视及布局&#xff0c;市场规模将持续扩大。 近年来&#xff0c;随着“云大物工移智”等新兴技术的快速发展和普及应用&#xff0c;数字化已经融入社会经济生活的方方面面&#xff0c…

数据结构与算法笔记:高级篇 - 拓扑排序:如何确定代码源文件的编译依赖关系?

概述 从本章开始&#xff0c;就开始进入高级篇。相对基础篇&#xff0c;高级篇涉及的知识比较零散&#xff0c;不是太系统。所以&#xff0c;我会围绕一个实际软件开发的问题&#xff0c;在阐述具体解决方法的过程中&#xff0c;将涉及的知识点给你详细讲解出来。 所以&#…

人工智能在空间转录组学领域的最新研究进展|顶刊速递·24-06-22

小罗碎碎念 本期推文的主题&#xff1a;人工智能在空间转录组学领域的最新进展 提到空间转录组学就不可避免会与单细胞测序、免疫治疗以及肿瘤微环境扯上关系&#xff0c;所以这也是当下的热点之一。 我个人认为这一部分门槛相对于影像组学和病理组学较高&#xff0c;需要具备…

二维码美化,修改二维码颜色样式,添加logo,文字描述

在如今的社会&#xff0c;二维码已成为我们日常生活中不可或缺的一部分&#xff0c;无论是支付、访问网站、社交媒体互动&#xff0c;还是分享信息&#xff0c;二维码都扮演着重要角色。然而&#xff0c;标准的黑白二维码有时可能显得过于单调&#xff0c;缺乏吸引力。为了提升…