0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

新版IAR调试查看寄存器问题 STM8代码大小优化问题

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-07 16:13 次阅读

今天写两个后台问的较多的问题,如标题所示:

1.新版IAR调试查看寄存器问题;

2.STM8代码大小优化问题;

1新版IAR调试查看寄存器问题

从去年上半年开始,IAR将各开发环境逐渐进行了大升级,首先是将EWARM从V7升级到了V8。然后,陆续将EW430、EWAVR等进行了升级。

什么是新版IAR?图标是黑色那种,如EWARM V8.2、 EWSTM8 V3.1。如下图:

老版本IAR,扳手工具图标。如下图:

许多小伙伴安装了新版的IAR,不管是EWARM、EW430还是EWSTM8,都出现了一个问题:调试时,“不能”查看外设寄存器了。

如下面动画,查看了各主菜单,以及View视图各个子菜单,都没有如之前那种可以直接查看寄存器的窗口:

而老版本就会有如下图可以直接查看寄存器的窗口:

说实话,我这一年很多时间都是在写业务逻辑相关的代码,这个功能这一年没去在意过。很多朋友在后台问我,我也没抽时间去研究。

这不前面写了一篇在较小资源上跑一个实时操作系统,后台有朋友问了该如何优化代码,我大概回答了一点可以优化标准外设库为操作寄存器,所以使用到了该功能,所以我就抽时间看了一下这个功能。

好了,不卖关子了,直接说答案吧,操作基本一样,只是新版IAR隐藏了下拉选项。直接看下图你就会明白。

新版IAR调试查看寄存器方法

进入调试模式 -> View -> Registers(1-4都行) -> CPURegister右键 -> ViewGroup,此时你就可以选择了,如下图:

相信到这里,你不可能不会了。

2

STM8代码大小优化问题

因为前面写了一篇文章《一款可以在STM8上运行的实时操作系统Atomthreads》,很多朋友问,像8K的FLASH资源跑一个系统,写点应用程序都用完了。

既然使用STM8可以跑系统,资源的问题肯定有关系。但如果你选定了该芯片,想办法或许是可以解决的呢。

这么说吧,我在STM8S003(1K RAM 8K FALSH)跑四个线程,还有两个队列,没有出现什么问题。

本节我简单说两点比较常见的优化STM8代码的方法:

1.不使用标准外设库自带的断言

在表准外设库里面常看类似如下代码:

assert_param(IS_GPIO_MODE_OK(GPIO_Mode));

assert_param(IS_GPIO_PIN_OK(GPIO_Pin));

这就是库自带用于检查参数的代码,但如果资源有限,可以在最终关闭断言代码。(调试时可以选择代码兼容的大容量芯片调试)。

在stm8s_conf.h中屏蔽即可:

2.将标准外设库修改成直接操作寄存器

使用表准外设库配置,通过在线调试,查看寄存器值,最后直接写寄存器代码即可。类似如下:

在线调试查看寄存器方法看上一章节内容。本文内容就此结束,希望对你有帮助!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117763
  • STM8
    +关注

    关注

    18

    文章

    391

    浏览量

    56253
  • 标准外设库
    +关注

    关注

    0

    文章

    16

    浏览量

    3469
收藏 人收藏

    评论

    相关推荐

    IAR FOR STM8 v3.10.4调试时软件崩溃的原因?

    环境:ide是iar for stm8 v3.10.4 版本, 芯片stm8L051,调试器是Risym 的ST-LINK v2, swim连接 部分程序如下: void main(
    发表于 04-26 08:29

    安装最新版IAR for stm8无法烧写程序怎么解决?

    我有两台电脑分别安装win7和win10,并都安装了最新版IAR for stm8(V3.10)。win10系统那台没有任何问题,win7那台无法烧写程序一直提示“Failed
    发表于 04-22 07:49

    STM8IAR编辑调用串口2函数报错的原因?

    新手入门STM8,资料是用众拳的,,新手求助,为什么STM8使用IAR编辑,程序是网上众拳的教程,为什么修改不了库函数的c文件,文件在编辑
    发表于 04-17 08:23

    STVP烧录stm8的hex文件不运行,但在IAR for stm8调试正常,为什么?

    请教各位高手一个问题,我用IAR for stm8调试模式下一切正常的程序,但是变成release模式下生成hex文件以后,用STVP烧录却不能运行,应该说是大部分时候不能运行,偶尔极少数情况下
    发表于 04-10 08:17

    新装IAR准备上手stm8,安装完后,licence弹出安装stm8库,为什么?

    新装IAR准备上手stm8,安装完后,licence弹出安装stm8库,可是安装失败。提示没有许可。请问如何安装解决? 查看了licence,里面是有STM
    发表于 04-09 06:49

    IAR FOR ARM和IAR FOR STM8无法共存怎么解决?

    IAR FOR ARM和IAR FOR STM8无法共存, 先用的ARM开发STM32,最近有个STM8的要开发。 电脑:WIN10 64位。 ARM版本:EWARM-CD-8321
    发表于 04-07 07:39

    arm三个寄存器在gdb调试时的作用

    arm三个寄存器在gdb调试时作用  ARM是一种广泛使用的微处理器架构,它广泛应用于移动设备、嵌入式系统和其他高性能计算设备。当我们在使用gdb(GNU调试器)调试ARM程序时,了解
    的头像 发表于 01-31 10:44 218次阅读

    调试AD7124-8驱动时,对各寄存器配置之后再次读各寄存器的值,多个寄存器的值都为fffffffd是为什么?

    调试AD7124-8驱动时,对各寄存器配置之后再次读各寄存器的值,多个寄存器的值都为fffffffd,这是为什么? 看参考程序里面对各
    发表于 12-07 08:29

    寄存器查看器的功能和使用

    对于搞嵌入式底层开发的软件或者硬件工程师来说,经常会涉及到查看芯片手册,比如某个芯片的串口控制器的寄存器值,需要知道这个值对应寄存器的哪些位,微软计算器的程序员模式虽然可以查看
    的头像 发表于 11-28 12:26 822次阅读
    <b class='flag-5'>寄存器</b><b class='flag-5'>查看</b>器的功能和使用

    STM8芯片上电前用户使用的寄存器状态都会自动默认是0吗?

    STM8 芯片上电前用户使用的寄存器状态都会自动默认是0吗?
    发表于 10-13 07:58

    STM8用串口下载及调试

    最近老是碰到有许多朋友问到STM8不用ST-LINK或其他仿真怎么进行程序开发及下载,其实 STM8 FLASH 大于 16K的产品目前都已内置 ISP 程序,可以用串口进行 ISP 方式
    发表于 10-10 08:04

    教你从零开始操作STM8寄存器

    ,熟悉 STM8寄存器编程。风驰所有的例程都是在 IAR 环境下编写的。当你安装好 IAR,在 IAR 安装的目录下,你可以找到 iost
    发表于 10-10 07:20

    从零开始操作STM8寄存器

    电子发烧友网站提供《从零开始操作STM8寄存器.pdf》资料免费下载
    发表于 10-07 16:02 0次下载
    从零开始操作<b class='flag-5'>STM8</b><b class='flag-5'>寄存器</b>

    浅谈寄存器优化的原因

    在项目初期,在使用FPGA工具quartus或者vivado生成版本烧入开发板进行调试时(DC开启优化选项后同样会优化寄存器),我们有时会发现部分
    的头像 发表于 09-26 09:47 538次阅读
    浅谈<b class='flag-5'>寄存器</b>被<b class='flag-5'>优化</b>的原因

    聊聊寄存器优化的2种情况

    在项目初期,在使用FPGA工具quartus或者vivado生成版本烧入开发板进行调试时(DC开启优化选项后同样会优化寄存器),我们有时会发现部分
    的头像 发表于 09-08 15:09 1307次阅读
    聊聊<b class='flag-5'>寄存器</b>被<b class='flag-5'>优化</b>的2种情况