新唐cortex-m051中慎用printf()函数----一个printf()函数4kB大小

新唐MCU之UART软硬件调试过程记录及总结 UART调试 阅读详情

   最近整合项目,遇到一个问题,我一开始没有注意,后来才慢慢发现,那就是我的程序已经烧不进去芯片中,经过翻查手册后才发现,新唐cortex-m051的Flash只有8KB,我的程序编译完之后bin文件竟然有16KB,而我的程序加上注释也只有1300多行,怎么会那么大呢?

 

  笔者不知道是什么问题,于是就开始删减程序,把一些可以要可以不要的程序删除,(就是要了之后会更人性化的部分部分),等删除到printf 的时候,奇怪的事情出现了,我删除了4个printf,bin文件从16KB缩减到13KB,于是我把所有的printf都删除了,程序直接缩减到11KB。后来在一个程序中,非常小的程序中,一个printf函数调用,竟然多了4KB的空间。

 

  由于一个函数而使我的程序大了那么多,我很好奇,于是便去翻查这个函数的原型,在新唐cortex-m0中到底是怎么封装的,可惜却没有找到,于是接下来弄别的程序,也没有管其它了,12月16日,新唐会来南京开巡回演讲,到时候我会问清楚他们的,等有了答案我再和大家分享

 

  对于嵌入式编程来说,每个字节的空间都是那么的珍贵,希望各位同仁在编程的时候,慎用printf,虽然这个函数确实很方便,但是对于空间不足的来说,只能望而却步了,可以用它系统自带的UART功能中的send_to_PC()即发送一个字节通过串口到电脑。

 

 

 

Cortex-M 开发中实现stdout(printf, puts, putc) Cortex-M 开发中实现stdout(printf, puts, putc)开发嵌入式程序时,由于没有标准输出设备,通常要把标准库的stdout定向到串口或usb等,用于调试;也就是说,在使用printf,puts,putc 等函数时,要先提供stdout基本功能的实现,标准的printf等会调用用户定义的实现函数作为stdout.使用armcc和Microlib 实现fputc函数 armc 阅读详情

相关推荐

arm cortex M3 实现printf

这两天在调试一个cortex M3的开发板,需要在程序中实现printf功能。不过这里有一个问题就是:系统还没有起来的时候,没有供我们调用printf的库,所以不能直接调用printf。于是上网收索资料,发现可以通过一些方法实现,下面介绍一种方法。 在uart.c文件中添加如下代码 #pragma import(__use_no_semihosting)

hurry_liu的嵌入式之路 3056

新唐cortex-m051中慎用pringf()函数----一个printf()函数4kB大小

最近整合项目,遇到一个问题,我一开始没有注意,后来才慢慢发现,那就是我的程序已经烧不进去芯片中,经过翻查手册后才发现,新唐cortex-m051的Flash只有8KB,我的程序编译完之后bin文件竟然有16KB,而我的程序加上注释也只有1300多行,怎么会那么大呢? 笔者不知道是什么问题,于是就开始删减程序,把一些可以要可以不要的程序删除,(就是要了之后会更人性化的部分部分),等删除到p...

tibaloga 389

K8s可视化工具2023实战指南:从监控看板到集群治理引擎

Kubernetes可视化已超越传统监控范畴,成为理解分布式操作系统运行状态的核心能力。其本质是将API对象关系、实时指标、结构化日志与事件流,通过声明式依赖建模转化为可推理的健康语义。2023年关键演进在于工具能否穿透抽象层,关联OwnerReference拓扑、识别Pending Pod异常、解析kube-state-metrics元指标,并构建跨Metrics-Logs-Traces的故障上下文图谱。这直接支撑SLO治理、控制平面稳定性评估与数据平面资源效率优化三大工程实践场景,真正实现从‘看见’到‘

weixin_30567225的博客 465

学习新唐NUC029xAN——printf 重定向

新唐NUC029xAN之printf 重定向

m0_63485514的博客 576

新唐M0516LAN(m051系列)脉宽信号检测

利用M052PWM0引脚的输入捕获功能实现波形信号脉宽检测; 实验时将输入信号连接到P2.0引脚即可。捕捉到200个正负脉宽后即关闭PWM0引脚的捕捉功能并将脉宽检测结果经由串口输出。

WOL唤醒配置(以太网、PHY、MAC)

MAC 就是以太网控制器,属于OSI的数字链路层。phy 属于OSI的物理层(Physical layer),所以叫phy。CPU Mac与phy通信通过MII接口,数据的传输通过MDIO数据线。通过配置phy的相关寄存器实现不同的功能。

qq_58264156的博客 8635

2021-05-28 新唐M051芯片--串口0,定时器

1.系统初始化 void SYS_Init(void) { /* Unlock protected registers */ SYS_UnlockReg(); //操作寄存器解锁 { //切换外部晶振-->频率为50Mhz(默认内部晶振22.1184MHz) CLK_EnableXtalRC(CLK_PWRCON_OSC22M_EN_Msk); /* Enable Internal RC 22.1184MHz clock

保持每天的清醒 1137

JMeter 压测实战全教程

脚本结构:测试计划 → 线程组 → HTTP 请求 → 监听器运行方式:图形化调试,命令行生产压测核心指标:QPS、RT、错误率、CPU、GC。

weixin_48309090的博客 653

深入解析MC68SZ328:FLX68000指令集与内存映射实战指南

指令集架构(ISA)是处理器与软件沟通的基石,它定义了CPU能够理解和执行的基本操作集合。其设计原理直接决定了代码效率、硬件控制能力和编译器的友好度。在嵌入式系统领域,掌握指令集与内存映射是进行底层开发、驱动编写和系统优化的核心技术价值所在,尤其对于维护或升级基于经典架构的遗留系统至关重要。MC68SZ328微控制器搭载的FLX68000指令集,以其正交性设计和丰富的寻址模式著称,配合清晰规整的内存映射,为开发者提供了强大的硬件直接操控能力。本文聚焦于**FLX68000指令集**的寻址模式、核心指令分类以

weixin_38166557的博客 419

Windows Server下OnlyOffice Workspace社区版安装避坑指南(含局域网邮箱配置)

本文详细介绍了在Windows Server环境下部署OnlyOffice Workspace社区版的完整流程,特别针对企业内网环境中的邮箱配置和端口冲突等常见问题提供了实用解决方案。通过硬件资源配置建议、软件环境检查清单以及内网邮箱系统搭建方案对比,帮助用户高效搭建企业级协作平台,实现团队协作的无缝对接。

weixin_29231263的博客 451

Android PackageManagerService 总结(一)应用市场下载安装apk流程

前言: 本篇文章是对系统包安装流程的总结,基于Android12 上 com.android.packageinstaller 源码的分析,第三方应用商城(华为商城,小米商城,应用宝,豌豆荚,酷安等)下载安装应 用,在普通安装和静默安装app两种方式下,对代码流程的梳理和讲解。 触发安装: 当你在商城界面中点击安装按钮,应用会自动下载,下载完成后就会调起系统安装应用的界面,此种触发方式一般是通过Intent 隐式调用的,我们先阅读如下代码: ......

u012514113的专栏 1万+

新唐cortex-m0一个 printf为什么那么大?(新唐人员的解答)

笔者去了新唐Mini51的发布会,这次的板子比去年的M051,功能和附件上多了很多,而不只是一个最小系统,可以在板子焊接新的器件,也自带了一些LED灯和可变电路,还有I2C模块。   于是我问了一个printf为什么会这么大?   printf是keil(笔者用的keil开发的)内部的封装,由于可变参等问题,内部的封装非常复杂,新唐的人员也不知道为什么会那么大,但是有个方法可以减少它的大小,方

memoryjs的专栏 4157

避开期货指标常见坑:文华财经赢顺DK多空指标优化配置指南(附参数调试技巧)

本文详细解析了文华财经赢顺DK多空指标的优化配置方法,帮助交易者避开常见使用误区。通过参数个性化适配、动态调整趋势阈值和过滤假信号的三重验证,提升指标在期货交易中的准确性。附有参数调试技巧和不同市况下的配置建议,适合中高级交易者参考。

weixin_29063979的博客 435

新唐M051系列

新唐科技 NuMicro M051™系列为ARM ® Cortex M0内核的32位微控制器,专为应用系统提供高性能,低价位设计。Cortex™-M0是ARM最新的32位嵌入式处理器,引脚与8051单片机兼容,并拥有与8051单片机匹敌的价格优势。NuMicro M051™ 系列目前包括 M052/M054/M058/M0516等, Cortex™-M0内核系列最高可运行至50MHz,内建8K

eager7的专栏 4352

Curve+ 5.0.2:新一代色彩校准工具如何革新印刷行业标准

Curve+ 5.0.2作为新一代色彩校准工具,通过G7+校准算法和SCTV技术革新了印刷行业的色彩管理标准。该工具显著提升色彩精准度,减少打样时间和材料浪费,支持专色处理,实现跨材质色彩一致性,为印刷企业带来效率与质量的全面提升。

weixin_29228781的博客 529

ESD防护设计宝典(二十三):ESD与EOS失效差异分析

ESD和EOS是电子制造业面临的两大挑战,随着电子产品向更高集成度、更低工作电压和更高工作频率发展,这一问题将更加突出。根据美国军方上世纪八十年代与可靠性分析中心(RAC)共同建立的现场失效返回程序(FFRP)统计数据,产品现场返回中EOS占比高达46%,而ESD仅占6%,另有6%的案例难以区分是EOS还是ESD。

m0_56451176的博客 322

新唐cortex-m051学习之读写Flash

今天做的是读写Flash,因为最后从红外接收学习到的编码需要存入Flash中,所以读写Flash是一个很重要的模块! 然而新唐的例程中没有对数据Flash的读写,只有对LDROM 和 APROM的读写,其实差不了太多,为了不给以后的同仁多走弯路,这里特地写下笔者的经验,供大家参考! 这个板子的数据Flash大小是4KB,地址从0x0001f000 到 0x0001ffff。而笔者一开始是这样写的...

tibaloga 1237

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

[笔记].新唐M051型号的后缀解读

其中温度等级,我不大明白,经过缥缈九哥指点才了解。 N工业级 E扩展工业级 C汽车级

weixin_34240520的博客 155

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

新唐单片机项目总结

最近做了两个单片机项目,新唐的029和mini58ZDE的MCU,都是cortex-M0,一个厂家所以API基本一致,大致了解了串口中断及定时器功能以及ADC采样相关的编程内容。 4G项目即mini58zde,主要是从GPS中读数据然后从另外一个串口转发出去 GPS模块 ------ 串口1接收 ----数据处理组包 -----串口0发送------上位机 GPS模块是不...

weixin_30918415的博客 832

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

STM32F4_USART配置及细节描述

推荐 分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang 我的网站:https://www.strongerhuang.com 我的知乎:https://www.zhihu.com/people/strongerHuang.com Ⅰ、概述 ...

strongerHuang 2万+

【C语言技巧】51单片机支持printf打印

51单片机打印printf

一名嵌入式界的小学生 1606

新唐芯片学习笔记——UART

楼主学习的是新唐NUC029LAN芯片。我会把要学习的模块所记录的笔记分享给大家,如果有理解错的地方麻烦大家指出来,我们共同学习、进步。

weixin_46009614的博客 3202

(适合小白)STM32F103 红外对管用printf()重定向输出IO值

1、端口的基础配置我想信各位都会(切记配置成输入模式) 2、u16 status = (GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_0));//定义一个变量接收端口值 3、首先定义俩个数组,然后如下:(本人也试过直接给变量赋值,但总出错) d1[0]='1';d2[0]='0'; if(status>0) printf(d1)...

weixin_44322716的博客 1286
上一篇: IT人士更应该懂《黄帝内经》2-----冬季养生
下一篇: 自己总结的电子元器件的作用---光耦,电感,磁珠等等
memoryjs
博客等级 码龄18年 240粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值