问题标签 [coldfire]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
116 浏览

math - Coldfire/m68k 跳转编码问题

所以我正在使用coldfire(mcf5225x系列)并且我遇到了跳转编码的一些问题,在这种情况下它具有与68k相同的二进制表示。

如您所见,jmp 指令的模式和寄存器为 111010,表示与 PC 的 16 位字扩展偏移量。16 位扩展是当前地址 8hex 的 8hex 偏移量。它应该导致 12 但是,我的数学表明我得到了 10。这里有什么问题,为什么似乎生成了错误的跳转地址?它在我正在设计的处理器模型中引起了一些问题。任何帮助将不胜感激!

0 投票
2 回答
463 浏览

assembly - 这个 bsr.l 指令有什么作用?

我正在玩冷火反汇编程序并找出这段代码:

我试图弄清楚那些 bsr.l 的需求是什么。对我来说,它只是跳跃本身。

0 投票
0 回答
113 浏览

usb - Coldfire 微处理器 MCF5272 USB 模块停止触发中断

这是我多年来一直试图解决的问题,定期花费 1-2 个月的时间。

我正在使用 Metrowerks IDE 和 ColdFire C 编译器 MCFCCompiler 4.0 版来构建使用 USB 模块与主机通信的嵌入式代码。带有这种硬件的产品已经推出了八年并且相当成功。然而,这些年来我们收到了来自现场的抱怨,称与主机的通信偶尔会挂断,操作无法恢复。

我使用 USB 嗅探器和 Coldfire 调试硬件跟踪了错误,这是我在其中找到代码的条件和场景。

  1. 通信中断发生在固件端,而不是主机上的驱动程序。

  2. 仅当从多个线程快速发送主机(Windows 7)的 USB 固件命令时才会发生挂起。每个固件命令都会回复主机。因此,通过 USB 端口的流量最大。

  3. 我正在使用摩托罗拉提供的实现,该实现在 USB-STAND-ALONE-DRIVER_V03.pdf 中有详细记录(谷歌会为您找到它)。有两个函数是我关注的重点,它们应该很好地配合使用:usb_in_service(由中断处理程序调用)和 usb_tx_data(启动传输,在某些时候会产生中断)。

  4. 实现了 usb_tx_data 函数,以便在 USB fifo 仍有数据要发送到主机时退出。但是等待fifo清除会使代码进入无限循环。

  5. 尽管 USB 模块的寄存器内容告诉我中断已启用,但此后不再发生中断。

  6. 我检查了 USB 模块没有收到重置事件,也没有挂起。

主要问题是错误是在 USB 模块硬件中还是在代码中。我没有发现任何指向这个问题的勘误表。如果是代码,那么逻辑没有考虑到的整体在哪里?

紧追不舍,因为我们正在制作基于相同固件的新产品线,在解决此问题之前我无法发布它。

0 投票
0 回答
81 浏览

microcontroller - 有没有办法从 MCF52235 ColdFire 微控制器读取/写入 9 个数据位、2 个停止位和 1 个奇偶校验位 UART 消息

我想在 MCF52235 ColdFire 微控制器和具有以下消息规范的特定单元之间进行通信 9 个数据位 2 个停止位 一个奇偶校验位

但是,MCF52235 ColdFire 微控制器数据表表示它支持“数据格式可以是 5、6、7 或 8 位,偶数、奇数或无奇偶校验”。我想知道是否有任何棘手的方法来解决这个问题。

谢谢

0 投票
1 回答
62 浏览

c - Coldfire 强制使用 RAM 而不是寄存器

我有一个用 C 语言编写的应用程序,它在 Coldfire 处理器上运行。

我需要强制它对所有局部变量(在函数中声明)使用 RAM,而不是使用寄存器;为了正确调试应用程序。

我该怎么做?

编辑以获取更多信息

有时,在主应用程序中,由于函数的返回值错误,我会收到错误消息。这种情况很少发生,我在 return 指令之前放置了一个检查和一个断点,但是许多变量使用相同的寄存器,我无法清楚地了解错误发生时的情况。如果我在函数的开头移动程序计数器并逐步执行结果是正确的。登记册的管理可能有问题,我想知道是什么。

提前谢谢你,问候。

0 投票
1 回答
351 浏览

cpu - 执行长字传输到 CPU 需要多少个和什么大小的周期

该任务适用于 ColdFire 处理器 MCF5271 架构:

问题

我不明白执行到 CPU 的长字传输或字传输需要多少个和什么大小的周期。我正在阅读图表,但看不到连接是什么?任何意见都非常感谢。我附上了 2 个带有答案的示例。

数据总线大小

0 投票
2 回答
933 浏览

embedded - 使用命令行使用 GHS 探针闪烁目标

我们正在使用 Greenhills Multi IDE 和Greenhills Debug Probe来编程和调试我们的目标系统(基于 Coldfire 的裸机系统)。目前我使用 IDE 调试器 GUI 刷新目标,但我更喜欢使用命令行界面来完成它。

该文档相当粗略,仅提供了一个非常简单的示例。据我所知,我应该能够将 grun 与 gflash 一起使用来执行此操作,但我很难弄清楚哪些 GUI 字段映射到哪些 grun 选项。有这方面经验的人吗?

在此处输入图像描述

基本上我需要能够指定(见上图):

闪存设备(我想这是我想出来的)

  • 基址
  • 图像文件(我们使用原始图像)
  • 闪存中的偏移量
  • 备用 RAM 基座
  • 备用闪存实用程序
  • 可能还有备用 MBS 脚本

有任何提示、技巧或指向比标准 GHS 更好的文档吗?将不胜感激!

0 投票
1 回答
256 浏览

assembly - 68k ASM 寻址模式

我在 Uni 学了一些 68k/Coldfire,并且很难理解更复杂的寻址模式(数字在取消引用的括号附近)。

我认为这里的例子是最好的:

谁能用简单的话向我解释每条指令中发生了什么?

如果需要,请详细说明(前/后增量等)。

谢谢!!;)

0 投票
1 回答
36 浏览

gdb - Qemu 问题中用于 m68k 的 GDB

我正在尝试使用 GDB 调试在 m68k 架构上运行的 Qemu。我正在尝试对 Qemu 源代码进行一些更改以向 m68k 支持添加一些功能,并且我正在尝试使用 GDB 来测试我当前所做的更改。需要注意的重要一点是,我使用的是 Qemu v5.2.0-rc1,因为这是我正在同时使用的更大系统中当前使用的 Qemu 版本。目前,我正在使用 qemu-system-m68k 在该架构上运行 buildroot(uClinux 内核),使用 gdb 的“-s -S”选项。在一个单独的终端中,我尝试使用在该远程目标上运行 GDB (gdb) target remote localhost:1234,但我收到以下错误消息:

与 uClinux Qemu 内核的连接似乎没问题,但我无法连接到远程主机。

我已经尝试找到任何可能的解决方案来解决这个问题,包括设置 GDB 架构(目前说 i386,不确定这是否正确),但它不起作用。我不知道如何让 GDB 在这个 m68k Qemu 仿真 Linux 内核上运行,任何帮助都会很棒。谢谢!