为什么是24位寄存器?

2024-01-22

在我的工作中,我处理不同的微控制器、微处理器和 DSP 处理器。其中许多都有 24 位寄存器和计数器。

我知道如何使用它们,这不是我的问题。

我的问题是为什么他们有 24 位寄存器!为什么不把它做成32位的呢? 据我所知,这不是大小的问题,因为寄存器已经是32位,但最大为0xFFFFFF。

这是否可以更轻松地实现硬件?计算速度更快? 或者只是“嗯,让我们放置 24 位寄存器,让程序员的工作变得更加困难”?


我的猜测是,大多数 DSP 应用根本不需要 32 位。数字音频最多使用 24 位保真度。实施 32 位需要更多晶体管,因此会导致更高的成本。

为什么 32 位对程序员来说更容易?

另外,您声明寄存器的最大值为 0xFFFFFF,这使得它们成为 24 位根据定义,而不是您建议的 32 位。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么是24位寄存器? 的相关文章

  • 在 C 中转换为 ASCII

    使用微控制器 PIC18F4580 我需要收集数据并将其发送到 SD 卡以供以后分析 它收集的数据的值介于 0 到 1023 或 0x0 到 0x3FF 之间 所以我需要做的是将 1023 转换为以 10 为基数的 ASCII 值字符串 0
  • CRC16 校验和:HCS08 与 Kermit 与 XMODEM

    我正在尝试将 CRC16 错误检测添加到 Motorola HCS08 微控制器应用程序 但我的校验和不匹配 一在线CRC计算器提供了我在 PC 程序中看到的结果和我在微型计算机上看到的结果 它将微处理器的结果称为 XModem 将 PC
  • Arduino 串行中断

    我正在开发 Arduino Mega 2560 项目 在 Windows 7 PC 上 我使用 Arduino1 0 IDE 我需要建立波特率为 115200 的串行蓝牙通信 当 RX 上有数据可用时 我需要接收中断 我见过的每一段代码都使
  • 在嵌入式系统/微控制器中运行 SQLITE 的最低硬件规格

    我想在嵌入式应用程序中运行 sqlite 能够运行 sqlite 来维护数据库的最低要求是什么 我正在考虑实现 R tree 进行空间搜索 如果我能得到证明这些要求合理的解释 那将会很有帮助 具有大约 32kb 内存的 Cortex M0
  • 如何让printf在STM32F103上工作?

    我是 STM32F103 世界的新手 我有一个STM32F103的演示代码 我正在使用arm none eabi来编译它 我尝试了在谷歌上可以找到的内容 但到目前为止没有任何效果 我已经花了三天时间来解决这个问题 任何人都可以给我一个运行良
  • Push_back() 导致程序在进入 main() 之前停止

    我正在为我的 STM32F3 Discovery 板使用 C 进行开发 并使用 std deque 作为队列 在尝试调试我的代码 直接在带有 ST link 的设备上或在模拟器中 后 代码最终在 main 中输入我的代码之前在断点处停止 然
  • 为什么 iostream 在 MCU 上占用如此多的闪存空间?

    我使用 GCC 5 2 0 编译 EFM32 MCU 基于 Cortex M 内核 的代码 当我想要时 我注意到代码大小急剧增加 include
  • 如何在微控制器上运行opencv?

    我对电子领域和控制器了解很多 但我想知道如何将opencv程序与红色交通灯结合起来 我知道答案是微控制器 但我只知道有一个编译器AVR 它可以将C编译为十六进制 然后与微控制器一起工作 但 OpenCV 我想我不会在 C 上运行 是高级别的
  • Arduino 上的中断会中断其他中断吗?

    我有一个Arduino Uno http arduino cc en Main ArduinoBoardUno 很棒的小设备 它有两个中断 让我们称呼他们吧0 and 1 我将一个处理程序附加到中断 0 并将另一个处理程序附加到中断 1 使
  • 为什么 Cortex-A 的复位处理程序位于 0x0 而 Cortex-M3 则不然

    Cortex M3 的初始堆栈指针值位于 0x0 复位处理程序位于 0x4 原因是什么 这样做的设计理由是什么 为什么 ARM 人员不能像 Cortex A 那样将 0x0 留给复位处理程序 然后在复位处理程序内初始化 SP 我认为这属于
  • CMSIS & STM32,如何开始? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在 STM32 上使用 CMSIS 启动项目 网上一搜 没找到具体的教程 有些使用 SPL 开始项
  • C: typedef 联合体

    在相关问题中没有找到任何内容 最有可能的是超级菜鸟 但我还是会问 我的 h 文件中有以下内容 typedef union API Packet 0x90 uint8 t packet 26 struct pack struct uint8
  • 当指令长度可变时的指令解码

    以下是一些指令及其对应的编码 55 push ebp 89 e5 mov esp ebp 83 ec 18 sub 0x18 esp a1 0c 9f 04 08 mov 0x8049f0c eax 85 c0 test eax eax 7
  • 为什么是24位寄存器?

    在我的工作中 我处理不同的微控制器 微处理器和 DSP 处理器 其中许多都有 24 位寄存器和计数器 我知道如何使用它们 这不是我的问题 我的问题是为什么他们有 24 位寄存器 为什么不把它做成32位的呢 据我所知 这不是大小的问题 因为寄
  • 通过JTAG恢复STM32 MCU磨掉的标记

    我有一块可能带有 STM32 MCU 的板 我想为该板制作定制固件 因为库存板有很多问题 不幸的是 电路板制造商很友善地磨掉了所有标记 有没有办法通过 jtag 获取设备 系列 ID 并将其交叉引用到型号 我能找到的一切都是关于获取芯片的唯
  • 基本高性能数据真实性

    我不是母语人士 术语可能不正确 对此感到抱歉 我正在 AVR 微控制器之间通过无线电传输数据供个人使用 并希望客户能够证明传输数据的真实性 因为它来自授权客户之一 这意味着我不需要不可否认性并且能够预先定义共享密钥 我对不同的方法进行了一些
  • 如何使数据库大小超过 256 字节 [链接器文件 - MPLAB ]

    我有 PIC18F87J11 系列 并且正在使用 MPLAB C18 编译器 我可以给以下变量的最大字节是多少 我知道我必须修改链接器文件才能达到 256 字节以上 pragma udata CONNECTION TABLE 这是我干净的链
  • __CC_ARM、__ICCARM__、__GNUC__ 和 __TASKING__ 宏的含义是什么?

    我正在 stm 的 STM32l151rct6a 上工作 我偶然发现了这些宏定义 CC ARM ICCARM GNUC TASKING 有谁知道他们的意思吗 这些是针对 ARM 处理器的不同编译器 可能这些宏用于隐藏可由多个编译器编译的代码
  • 使用自定义 INF 的微控制器的 USB 驱动程序安装问题

    我正在使用 NXP LPC1788 微控制器 并尝试在主机上创建一个驱动程序以通过 USB 与其进行通信 我相信我已经设法让设备正确处理标准 USB 请求 PC 能够正确读取字符串描述符 不过 我在编写示例 USB 驱动程序并为设备安装它时
  • 我可以在 Microchip C18 中创建一个同时接受 ram 和 rom 指针的函数吗?

    当我声明一个接受的函数时const char 我传递了一个字符串文字 我得到了一个 警告 2066 赋值中的类型限定符不匹配 因为字符串文字是rom const char 反过来也是一样的 虽然PIC是哈佛架构 但内存被映射到一个连续的地址

随机推荐

  • “模糊引用”错误两次指向同一方法

    I used 这个绝妙的解决方案 https stackoverflow com questions 3509290 how to convert a linq result to datatable 3767520 3767520将 li
  • Enterprise Library 5.0安装错误

    此应用程序需要 NET Framework 3 5 SP1 请安装 net Framework 然后再次运行此安装程序 但系统已经安装了 net Framework 4 0 在添加删除程序中我可以看到以下两个条目 1 Microsoft N
  • Angular2:从javascript函数调用组件方法[重复]

    这个问题在这里已经有答案了 目前我正在尝试实现引导日期选择器 它使用jQuery 以及我的 Angular2 项目 这是我到目前为止所拥有的 import Component AfterViewInit Injector Inject fr
  • .ContextMenu 和 .ContextMenuStrip 之间的差异

    两者有什么区别 ContextMenu and ContextMenuStrip在 Windows 窗体中 我已经知道什么是ContextMenu是 但是怎么样ContextMenuStrip不同于ContextMenu 您可能想知道为什么
  • 如何将三角形标记添加到 SpreadsheetGear 网格的任何单元格角?

    这是 SpreadsheetGear Grid 的特定问题 我知道您可以向单元格添加注释 单元格会自动在右上角获得红色三角形标记 但我需要在任何单元格角落添加一个小三角形 不同颜色 来指示一些特殊的东西 有可能做到吗 更新 这是我根据丹尼尔
  • Linux 中 `cd //` 中的双斜杠 // 是什么意思? [复制]

    这个问题在这里已经有答案了 我输入了一个命令cd 代替cd 错误地 而不是像我期望的那样收到错误 shell Bash 显示了一个提示 就像我在 目录
  • 如何在 Keras 中实现 L2-norm pooling?

    我想向我的 CNN 添加一个全局时间池层 它具有三种不同的池函数 均值 最大值和 L2 范数 Keras 有平均池化函数和最大池化函数 但我还没有找到用于 L2 的池化函数 我自己该如何实现呢 我也在寻找这个 keras 中没有这样的开箱即
  • Tensorflow 中的多个会话和图形(在同一进程中)

    我正在训练一个模型 其中输入向量是另一个模型的输出 这涉及从检查点文件恢复第一个模型 同时从头开始初始化第二个模型 使用tf initialize variables 在同一过程中 有大量的代码和抽象 所以我只是将相关部分粘贴到此处 以下是
  • 如何让 Metro(React Native 打包器)忽略某些目录

    Problem 我的项目有一个 providesModule naming collision当试图跑步时react native run ios从命令行 它与自动生成的目录冲突dist 它是由另一个 npm 包 esdoc 创建的 我希望
  • XPath 如何处理 XML 命名空间?

    XPath 如何处理 XML 命名空间 If I use IntuitResponse QueryResponse Bill Id 为了解析下面的 XML 文档 我返回了 0 个节点
  • glsl lowp 随机数生成(用于图形)的好算法是什么?

    我需要一个随机数生成器来创建一些图形静态 我不是在寻找噪声算法 我只是想要白噪声 我所需要的只是 glsl 中的随机数生成器 具体来说 随着时间的推移 我将使用它为每个片段创建随机亮度偏移 要求 生成 0 0 到 1 0 之间的数字 不关心
  • 使用 for 循环替换 pandas 列每行中的单元格值

    请帮助我理解我的错误 我正在尝试更改我的一列 csv文件 我有 csv文件如下 sku name code k1 aaa 886 k2 bbb 898 k3 ccc 342 k4 ddd 503 k5 eee 401 我想将 sku 列中的
  • TFS 无法识别添加的项目 VS2013 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用 VS2013 和 TFS Online 当我添加一个新项目时 源代码管理不会将其识别为添加的项目 但 csproj 会使用新文件
  • 检查定时器是否正在运行

    我一直在尝试用计时器重新填充游戏生活 但每当我离开视图并返回时 计时器就会重复并变得更快 我尝试用以下方法解决这个问题Timer isValid函数仅在无效时运行计时器 因此它永远不会重复 但它似乎无法检查计时器是否在invalid在 if
  • nginx 响应 404 Not Found(单页应用程序)

    我有一个带有常规浏览器路由器 没有哈希 的单页应用程序 每当有人浏览页面并点击刷新按钮时 nginx 都会尝试在此路径上查找文件 所以如果有人在mypage com aboutnginx 寻找about文件并以 404 Not Found
  • R 矩阵到 rownames colnames 值

    我有一个矩阵 A 我想将其转换为以下形式的 data frame rownames colnames values Using unlist A 有帮助 但没有给我行名 感谢您的帮助 您可以使用 reshape2 package load
  • Android - 用 @IntDef 替换参数化枚举

    如何避免参数化枚举与 IntDef 我想保留一些与每个枚举 类型关联的静态详细信息 例如关联的 URl 关联的可绘制对象等 TYPE ONE R string res Urls URL1 TYPE TWO R string res Urls
  • 如何防止Xcode每次都重建项目

    我有一个 Mac OS X 应用程序 由一个主要目标和一个依赖框架组成 自从在我的 Mac OS X 应用程序上启用代码签名后 我注意到每次运行 Xcode 时都会重建主要目标 即使我没有触及任何代码行 这是一个问题 因为依赖框架需要知道主
  • 如何更改多处理模块使用的序列化方法?

    如何更改Python使用的序列化方法multiprocessing图书馆 特别是 默认的序列化方法使用pickle具有该版本 Python 的默认 pickle 协议版本的库 默认的pickle协议在Python 2 7中是版本2 在Pyt
  • 为什么是24位寄存器?

    在我的工作中 我处理不同的微控制器 微处理器和 DSP 处理器 其中许多都有 24 位寄存器和计数器 我知道如何使用它们 这不是我的问题 我的问题是为什么他们有 24 位寄存器 为什么不把它做成32位的呢 据我所知 这不是大小的问题 因为寄