Keil 5 MDK 发律师函警告了,如何用STCubeIDE开发标准库的程序(STM32F103C8T6为例)

news2024/11/28 14:48:02

用STCubeIDE进行标准库开发

1、CubeIDE介绍

https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE

2、CubeIDE下载

点击上面的链接,登录即可下载

3、搭建Demo工程

新建一个工作空间

在这里插入图片描述

创建一个工程

在这里插入图片描述

选择芯片-STM32F103C8T6

在这里插入图片描述

填写工程信息

在这里插入图片描述

添加标准库到工程

标注库文件

在这里插入图片描述

添加到工程中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XEwoOXrn-1685184951806)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230527161703375.png)]

配置工程属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o3PBkYPd-1685184951806)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230527162009980.png)]

添加效果如下

在这里插入图片描述

添加标准库头文件路径

这次可以直接使用快捷键AlL+Enter调出配置界面,添加头文件路径

在这里插入图片描述

添加后如下

在这里插入图片描述

添加标准库的源文件到工程中

在这里插入图片描述

再次确认添加的头文件跟源文件

在这里插入图片描述

添加全局宏定义用于工程属性

在这里插入图片描述

移除重复的启动文件

把库文件自带的删除

修改内核文件

修改三行代码 每个加一个取地址符号

uint32_t __STREXB(uint8_t value, uint8_t *addr)
{
   uint32_t result=0;
  
    //__ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
    __ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );
   return(result);
}

/**
 * @brief  STR Exclusive (16 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 16 bit values
 */
uint32_t __STREXH(uint16_t value, uint16_t *addr)
{
   uint32_t result=0;
  
   //__ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
   __ASM volatile ("strexh %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );
   return(result);
}

/**
 * @brief  STR Exclusive (32 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 32 bit values
 */
uint32_t __STREXW(uint32_t value, uint32_t *addr)
{
   uint32_t result=0;
  
   //__ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
   __ASM volatile ("strex %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );
   return(result);
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-936QY4ai-1685184951808)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230527170332383.png)]

编写用户自定义的LED代码编译发现了错误

原因:缺少文件

处理:漏加的文件

在这里插入图片描述

编译下载

编译通过:

在这里插入图片描述

用stlink下载

在这里插入图片描述

注意事项:

第一次下载使用STLINK可能需要更新以下固件,重新插拔几次点击更新即可。

后记:如果不小心改动了IED默认布局可以这样重新恢复默认

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lrjIY4Za-1685184951809)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230527185016884.png)]

参考博客:

STM32CubeIDE移植标准库_cubeide 标准库_white_loong的博客-CSDN博客

http://t.csdn.cn/dS2OP

从此再也不用担心版权问题了!!!

从此再也不用担心版权问题了!!!

从此再也不用担心版权问题了!!!

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

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

相关文章

【数据结构与算法】图论及其相关算法

文章目录 图的基本介绍图的表示方式邻接矩阵邻接表 图的深度优先遍历(DFS)概述实现步骤代码实现 图的广度优先遍历(BFS)概述实现步骤代码实现 图的常用代码汇总最小生成树算法普里姆(Prim)算法算法实践 克鲁斯卡尔(Kruskal)算法并…

西南交通大学智能监测 培训课程练习2

2023.05.27培训 task1:spring、springboot task2:mybatis 目录 一、使用IDEA创建工程 1.1新建 ​编辑 1.2选择Maven 1.3创建包 二、添加相关依赖 2.1添加依赖 2.2更新Maven 三、配置application.yaml文件 四、相关注解的使用和理解 4.1Componen…

华硕天选3FX507ZC原装Windows11原厂预装系统工厂模式恢复安装带ASUSRecevory一键还原22H2版本

华硕天选3FX507ZC原装Windows11原厂预装系统工厂模式恢复安装带ASUSRecevory一键还原 文件地址:https://pan.baidu.com/s/1snKOsH3OMl3GZLqeAf-GLA?pwd8888 华硕工厂恢复系统 ,安装结束后带隐藏分区以及机器所有驱动软件 需准备一个16G左右空u盘进行…

倒置字符串、猜名次、猜凶手、杨辉三角

目录 例一:倒置字符串 例二:猜名次 例三:猜凶手 例四:杨辉三角 方法一 方法二 例一:倒置字符串 首先我们先来看一下题目具体要求 再来看一下我们所需要的效果 这里呢,博主给出两种思路,…

docker构建镜像上传到DockerHub

docker构建镜像上传到DockerHub DockerHub注册账号 DockerHub网址: https://hub.docker.com/ 注册 登录 安装docker docker宿主机环境 centos7 参考网址: https://yeasy.gitbook.io/docker_practice/install/centos 测试 docker 是否安装好 docker -v登录docker 登录 dock…

自动化测试3:Junit单元测试框架

目录 1.相关技术 1.1注解 1.1.1Test 1.1.2Disables 忽略 1.1.3BeforeAll AfterAll 1.1.4BeforeEach AfterEach 1.2参数化 1.2.1单参数 1.2.2多参数 1.2.3CSV获取参数 1.2.4方法获取参数 1.3运行顺序 1.3.1问题 1.3.2按指定顺序执行 1.3.3随机执行 1.4.断言 2.测…

webpack的使用

一、什么是webpack? webpack是一个前端构建工具,目前比较主流的构建工具,自定义的模块比较多。 二、应用场景 vue、react、angular 都可以通过webpack构建全部可供访问的页面数量不超过500个 三、安装 通过npm方式在项目根目录下执行命令…

spring官网guide案例直接运行

spring官网guide案例可以直接运行 spring guide 的案例基本包含 spring 以及 springboot 很多功能的案例 具体网址: https://spring.io/guides 我们使用 GitHub CodeSpaces 或者 GitPod 甚至不需要 git clone 代码到本地 , 可以直接在线运行 GitHub CodeSpacesGitPod 说明:…

SpringBoot 如何实现文件上传和下载

当今Web应用程序通常需要支持文件上传和下载功能,Spring Boot提供了简单且易于使用的方式来实现这些功能。在本篇文章中,我们将介绍Spring Boot如何实现文件上传和下载,同时提供相应的代码示例。 文件上传 Spring Boot提供了Multipart文件上…

Java 集合 - Map 接口

文章目录 1.概述2.常用 API3.遍历 Map 集合4.HashMap 和 Hashtable5.LinkedHashMap6.TreeMap7.Properties8.Set 集合与 Map 集合的关系9.总结 1.概述 在日常生活和编程中,我们常常需要处理一种特殊的关系:一一对应的关系,如 IP 地址与主机名…

深入浅出Docker:Java开发者的快速上手指南

前言1. Docker是什么?2. 安装Docker3. 使用Docker容器运行Java应用4. 使用Docker部署Java Web应用5. 总结 前言 在今天的软件开发环境中,Docker已经成为了一种常见的开发和部署工具。无论你是前端开发者、后端开发者,还是DevOps工程师&#…

【C++系列P3】‘类与对象‘-三部曲——[基础知识](1/3)

前言 大家好吖,欢迎来到 YY 滴 C系列 ,热烈欢迎! 【 类与对象-三部曲】的大纲主要内容如下: 如标题所示,本章是【 类与对象-三部曲】三章中的第一章节——基础知识章节,主要内容如下: 目录 一.…

Redis(五)发布与订阅

文章目录 1、什么是发布与订阅2、指令与描述3、指令测试 1、什么是发布与订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 Redis 的 subscribe 命令可以让客户端订阅任意数量的频道, 每当…

一文带你了解MySQL之事务的简介

前言: 事务(Transaction)是一组SQL组成的执行单元(Unit),是数据库并发控制和恢复回滚的基本单位。一个事务中可能包含多个SQL,要么都失败,要么都成功,今天我们就详细学习…

Linux|shell编程|拷贝大文件之显示进度条

前言: Linux由于自身并不是一个图形化的界面,因此,命令行是它的一个基础交互模式,而我们有的时候需要进度条来让程序运行的更加美观,更加直观,例如,一些比较消耗io的操作,文件拷贝&…

计算机操作系统第四版第八章磁盘存储器的管理—课后习题答案

1.目前常用的外存有哪几种组织方式? (1)连续组织方式。为每一个文件分配--组位置相邻接的盘块,由此形成的文件物理结构是顺序式的文件结构。 (2)链接组织方式。为每个文件分配一组位置离散的盘块,通过给每个盘块设置一个指针,将属于同-一个文件的盘块链…

【SDP协议】

SDP 1.概念2术语2.1 SERVICE ATTRIBUTE2.3 UUID 3 数据表示3.2 hci log4.4.4.3 PARTIAL RESPONSES AND CONTINUATION STATE4.4.4.4 ERROR HANDLING4.4.4.5 SERVICE SEARCH TRANSACTION4.4.4.6 SERVICE ATTRIBUTE TRANSACTION4.4.4.3 SERVICE SEARCH ATTRIBUTE TRANSACTION4.4.4…

【密码学复习】第九讲 密钥管理(二)

公钥的分发问题 广播式公钥分发:任意通信方将它的公钥发送给另一方或广播给其他通信各方。 目录式公钥分发:由可信机构维护一个公开、动态、可访问的公开密钥目录。可以通过可信渠道到可信机构登记并申请增、删、改自己的公钥。其他人可以基于公开…

ARM的七种工作模式

分类 ARM的工作模式分为普通模式、特权模式,其中特权模式又细分为六种模式。 普通模式用户模式(User)大部分任务执行在这种模式 特权模式快速中断模式FIQ当一个高优先级(fast) 中断产生时将会进入这种模式普通中断模式IRQ当一个…

数据库基础——4.select语句

这篇文章我们来讲一下select语句,这是数据库中最最重要的一个关键字 目录 1.select的基本用法 1.1 select的基本用法 1.2 列的别名 1.3 去重查询 1.4 空值参与运算 1.5 着重号 1.6 查询常数 1.7 条件查询 2. 查看表结构 1.select的基本用法 1.1 select的…