基于Eclipse下使用arm gcc开发GD32调用printf

news2024/10/7 10:15:34

系列目录


第一章 xxx

目录

系列目录

文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


前言

开发环境:Eclipse代替Keil,IAR

开发平台:GD32

开发编译器:arm-none-eabi-  gcc

基于此环境,调用类似于Keil的printf函数,进行串口打印信息

一、Keil实现串口重映射

int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
  return ch;
}

此方法仅针对于Keil,且调用了keil自己精简优化过的库文件 ,不适用gcc环境

二、Eclipse+GCC实现串口重映射

标准C库的底层调用的是_write() 函数实现输出,所以要重写write函数

int _write (int fd, char *pBuffer, int size)  
{  
    for (int i = 0; i < size; i++)  
    {  
		usart_data_transmit(USART_PORT, (uint8_t)pBuffer[i]);
		while(RESET == usart_flag_get(USART_PORT, USART_FLAG_TBE));		
    }  
    return size;  
}

仅添加这个重映射并不能直接就使用printf。会有以下报错

undefined reference to  `_sbrk'   `_close'  `_fstat'  `_read' `_write

这个时候需要配置一下eclipse。

右键项目,选择 Properties->GNU Arm Cross Linker->Miscellaneous

勾选红色框图所示

此时即可调用printf及sprintf等。 

注意:使用GCC的libgcc.a进行使用printf,会消耗较大的flash空间。小容量的单片机慎用

对比:同样开启优化

使用GCC printf,程序所用flash

不适用GCC printf,程序所用flash

 仅调用libgcc 的printf,就多出了将近30多KB的Flash。

总结

没有总结

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

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

相关文章

Adobe Acrobat Pro DC 2022的系统要求

Adobe Acrobat Pro DC 2022是一款功能强大的PDF编辑和管理软件。它可以帮助用户创建、编辑、转换、签署和共享PDF文档&#xff0c;并提供了多种工具和功能来优化文档的可访问性、安全性和可靠性。 Adobe Acrobat Pro DC 2022功能特色&#xff1a; 创建和编辑PDF文档&#xff1…

《低代码PaaS驱动集团企业数字化创新白皮书》-大型集团企业的数字化困局

大型集团企业的数字化困局 现状 /态势&#xff1a;数字化发展动力&#xff0c;构建数字化竞争力&#xff0c;实现敏捷的运营、治理、决策、体验 数字化转型大势所趋 全球化地缘政治紧张局势&#xff0c;供应链、通货膨胀、劳动力短缺以及新冠疫情全球大流行更增加了人们对全球…

HLS_OPENCV库的安装

借此机会来记录一下OPENCV库的安装:   首先需要知道的是说起OPENCV库有两种&#xff0c;一种是OPENCV库&#xff0c;还有一种是Xilinx官方自己的OPENCV库&#xff0c;前者可以用来在HLS中进行仿真&#xff0c;无法进行综合&#xff0c;而后者则是可以进行综合的。现将两种库的…

【综述型论文】图神经网络总结

文章目录图神经网络基于模型结构分类的图神经网络1. 循环图神经网络&#xff08;ResGNNs&#xff09;2. 卷积图神经网络基于谱域的ConvGNNs&#xff08;Spectral-based ConvGNNs&#xff09;基于空域的ConvGNNs&#xff08;Spatial-based ConvGNNs&#xff09;谱域图卷积模型和…

Python遥感开发之FY的批量处理

Python遥感开发之FY的批量处理0 FY遥感数据1 批量提取数据2 批量拼接TIF数据3 批量HAM转WGS投影&#xff08;重要&#xff09;4 批量掩膜裁剪介绍FY数据的格式&#xff0c;以及FY数据的批量提取数据、批量拼接数据、批量投影转换、批量掩膜裁剪等操作。本博客代码参考《 Hammer…

MySQL SQL优化 【建议熟读并背诵】

插入数据 批量插入数据 insert into tb_test values(1,Tom),(2,Cat),(3,Jerry);手动控制事务 start transaction; insert into tb_test values(1,Tom),(2,Cat),(3,Jerry); insert into tb_test values(4,Tom),(5,Cat),(6,Jerry); insert into tb_test values(7,Tom),(8,Cat…

在Windows中使用Linux命令安装这款软件就可以

由于平时经常使用Linux命令&#xff0c;所以导致在Windows的cmd中输入命令的时候经常打错&#xff0c;提示不是内部或外部命令&#xff0c;也不是可运行的程序。 那么有办法将补全cmd命令&#xff0c;使Linux中的命令在Windows中也能使用呢&#xff1f; 下面我来讲解如何在Win…

微服务架构-服务网关(Gateway)-服务网关在微服务中的应用

服务网关在微服务中的应用 我们将目光转向Spring Cloud应用的外围&#xff0c;讨论微服务架构下的各个模块如何对外提供服务。 1、对外服务的难题 微服务架构下的应用系统体系很庞大&#xff0c;光是需要独立部零的基础组件就有注册中心、配置中心和服务总线、Turbine异常聚…

【版本控制】Github同步Gitee镜像仓库自动化脚本

文章目录Github同步Gitee镜像仓库自动化脚本前言什么是Hub Mirror Action&#xff1f;1.介绍2.用法配置步骤1.生成密钥对2.GitHub私钥配置3.Gitee公钥配置4.Gitee生成私人令牌5.Github绑定Gitee令牌6.编写CI脚本7.多仓库同步推送8.定时运行脚本总结Github同步Gitee镜像仓库自动…

Softmax和Cross Entropy Loss在分类问题中的作用

本文以三分类神经网络为例&#xff0c;讲解Softmax和Cross Entropy Loss在分类问题中的作用。 首先&#xff0c;对类别标签进行一位有效编码&#xff1a; y[y1,y2,y3]Ty[y_{1},y_{2},y_{3}]^{T}y[y1​,y2​,y3​]T yi{1,if(iy)0,otherwisey_{i}\left\{\begin{matrix} 1 ,& …

形式语言和自动机总结----正则语言RE

第3-4章正则表达式 正则表达式的设计举例 正则表达式的运算 正则表达式的优先级 举例 1.倒数第三个字符是1 &#xff08;01)*1(01)(01) 2.不含有连续的0 &#xff08;101&#xff09;*&#xff08;0&#xff09; 3.含有000 &#xff08;01&#xff09;*000&#xff08;01&a…

【算法LearnNO.1】算法介绍以及算法的时间复杂度和空间复杂度

目录 一、算法 1、算法概述 2、算法的5个特性 3、设计算法的标准 二、时间复杂度 1、时间复杂度的介绍 2、渐进时间复杂度的求法 3、计算时间复杂度的代码举例&#xff08;平方阶示例&#xff09; 4、时间复杂度排序 三、空间复杂度 一、算法 1、算法概述 算法就是解…

蔚来试水辅助驾驶订阅,NOP+能否吃蟹?

作者 | 德新 编辑 | 王博2021年的NIO Day上&#xff0c;随着当时ET7发布&#xff0c;蔚来最早宣布了智能驾驶订阅服务&#xff1a;NAD&#xff0c;月费680元。 两年后&#xff0c;辅助驾驶订阅模式终于开始落地&#xff1a;蔚来将从7月1日起&#xff0c;对NOP进行收费&#xff…

Nginx基础教程

Nginx 目标 Nginx简介【了解】 Nginx安装配置【掌握】 一、Nginx简介 Nginx称为:负载均衡器或 静态资源服务器:html,css,js,img ​ Nginx(发音为“engine X”)是俄罗斯人编写的十分轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器&#xff0c;同时也是一个IMAP/P…

索引优化、优化,你又是一个好MongoDB!!!博学谷狂野架构师

MongoDB索引优化 作者: 博学谷狂野架构师GitHub&#xff1a;GitHub地址 &#xff08;有我精心准备的130本电子书PDF&#xff09;只分享干货、不吹水&#xff0c;让我们一起加油&#xff01;&#x1f604; 索引简介 索引通常能够极大的提高查询的效率&#xff0c;如果没有索引&a…

【pg数据库状态监控相关参数展示】

1、最近项目中做了一个postgresql数据库监控状态功能的需求&#xff0c;需求如下图 2、研究好久&#xff0c;终于在pg数据库的官方文档中找到了相关视图参数&#xff0c; 文档连接如下&#xff1a; 数据库基础信息&#xff1a; http://www.postgres.cn/docs/9.3/functions-in…

开源项目:数据库表结构生成文档工具

目录 一、软件介绍 二、技术框架 三、功能介绍 四、代码展示 1、获取数据库信息部分代码 2、导出Html文档代码 五、运行效果 六、项目开源地址 一、软件介绍 今天给大家分享我自己编写的数据库表结构文档生成工具&#xff0c;方便大家在实际开发当中&#xff0c;可以很方便导出…

JAVA常用工具-文件操作相关IO

IO技术在JDK中算是极其复杂的模块&#xff0c;文件管理都依赖IO技术&#xff0c;而且都是编程的难点&#xff0c;想要整体理解IO流&#xff0c;先从Linux操作系统开始&#xff0c; Linux空间隔离 Linux使用是区分用户的&#xff0c;这个是基础常识&#xff0c;其底层也区分用…

【MQTT协议】使用Mosquitto实现mqtt协议(二):编写视频帧的发布/订阅服务

目录一、Mosquitto中的QoS定义QoS1和3区别二、安装base64库三、cjson简介四、主程序代码五、调用Mosquitto库使用的cmakelist更多内容详见 【MQTT协议】使用c实现mqtt协议&#xff08;Mosquitto源码编译&#xff09;一、Mosquitto中的QoS定义 MQTT协议中的QoS&#xff08;Qual…

CLIP论文拜读及理解

文章目录一、clip论文阅读二、prompt1.除prompt之外的预训练语言模型2.prompt2.1. prompt定义2.2. prompt类型2.3. prompt重构2.3.1 prompt template2.3.2 Answer engineering2.4 多个 prompt的使用2.5 prompt的训练总结参考&#xff08;博文、论文&#xff09;一、clip论文阅读…