问题标签 [msp430]

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 投票
2 回答
1668 浏览

global-variables - 全局变量分配 RAM 地址

我正在为 MSP430 微控制器编写 C 代码,我想将全局变量锁定到 RAM 中的特定地址。

原因是因为我在 RAM 地址的末尾有一个堆栈,并且向下增长到较低的地址。当堆栈溢出时,它开始覆盖存储在堆栈旁边的 RAM 中的全局变量。所以我想在堆栈旁边写一个水印并检查它是否溢出。

0 投票
1 回答
1610 浏览

msp430 - MSP430F5438A + CC2564蓝牙模块上的BTstack

首先,是否有任何关于 btstack API 的好的文档。我正在尝试学习如何充分使用 btstack 、发送和接收数据、查找范围内的设备并启动连接。我正在为 MSP-430F5438A + CC2564 蓝牙模块实现此功能。

http://code.google.com/p/btstack/wiki/MSP430GettingStarted

这个网站有一些例子,但我还是很困惑,我需要有人帮我分解一下。有没有我可以开始的模板。任何事情都会有所帮助。如果有关于如何连接设备和交换数据包的分步参考,那就太好了。谢谢是提前

0 投票
1 回答
1129 浏览

c - 如何将已编译库的源路径链接到 Eclipse 中的不同位置?

我已经安装了 msp430-gcc 编译器和相关工具,以便在家中使用 Eclipse 进行一些开源 msp430 开发。我正在运行 OS X Lion 的稍旧的 Macbook Pro 上进行开发,并使用 MacPorts 安装了这些工具。我正在运行带有 CDT 和 GCC 交叉编译器支持插件的 Eclipse 3.7.2。我有一个简单的空 main() 编写,可以很好地编译和链接。

ELF 解析器让我可以很好地查看 ELF 二进制文件的内容,除了一个组件;当我尝试在 crt0.S 中查看启动代码的内容时,它给了我一个空白文件。当我单击 ELF 的 crt0.S 组件时,Eclipse 窗口底部的文件名栏显示"/opt/local/var/macports/build/_Volumes_work_mports_dports_cross_msp430-gcc/msp430-gcc/work/gcc-4.6.3/gcc/config/msp430/crt0.S". 这是有道理的,因为我的 MacPorts 安装了 msp430-gcc。crt0.S被归档到/opt/local/lib/gcc/msp430/4.6.3/libcrt0.a on my machine.

我想要做的是告诉 Eclipse 在其他地方查找库的源文件,这些库在我使用 msp430-gcc 工具链构建时自动链接。这大概包括/opt/local/lib/gcc/msp430/4.6.3/. 我首先下载了 mspgcc-20120406 的源代码(我的 MacPorts 安装中的版本)并将 gcc 补丁文件应用到一个空目录树。这创建了gcc/config/msp430目录,包括crt0.Scrt0ivtbl.S文件。

我没有运气完成的是告诉 Eclipse 查找~/Developer/mspgcc-20120406/gcc-4.6.3/config/msp430/而不是已经构建的libcrt0.a. 我试着玩弄Project Preferences->Paths and Symbols->Source Location窗户,但运气不佳。我通过这个网站和谷歌搜索,我想出的最接近的是这个问题,但它不像正确答案“闻起来”。

我想避免涉及将库源移动到我的项目中的解决方案。我宁愿有一个适用于多个项目的解决方案。

非常感谢所有帮助!提前致谢。

0 投票
1 回答
307 浏览

operating-system - 我可以在 FreeRTOS 上下文切换期间保存 MSP430 CRC 寄存器吗?

我在中等数据模型中使用带有 FreeRTOS 7 的 MSP430F5418。

我想在 FreeRTOS 上下文切换上保存 MSP CRC 寄存器。我像这样编辑了porttext.s43。

在保存上下文宏中,将 15 个寄存器压入堆栈后,我压入 CRC 寄存器。(CRCDI是要保存的MSP寄存器)

在恢复上下文宏中,我在弹出 15 个寄存器之前弹出了 CRC。

它应该可以工作,但事实并非如此。程序控制将不知道位置。

有人有什么想法吗?

0 投票
2 回答
2385 浏览

eclipse - 如何让 Eclipse CDT 了解 MSPGCC (MSP430) 包含的内容?

我正在使用 Eclipse 和 CDT 与 mspgcc 编译器一起工作,它编译得很好,但是代码视图将我所有的特殊函数寄存器突出显示为未解析。

我创建了一个 C 项目,其中编译器是“msp430-gcc -mmcu=msp430x2012”,它设置为在 /usr/msp430/include/ 中查找包含。我已将链接器设置为“msp430-gcc -mmcu=msp430x2012”,并且设置为在 /usr/msp430/lib/ 中查找库。我已将汇编器设置为“msp430-as”。我告诉 eclipse 它正在制作一个精灵,并且我禁用了自动包含发现以在我的 linux 机器上找不到 i686 库(愚蠢的 eclipse!)。

这是代码:

mspgcc 中定义的所有变量包括 P1OUT 和 WDTCTL 在问题框中显示为“未解决”,但请记住它构建得很好。我什至尝试过明确地包含我的芯片的头文件(通常 msp430-gcc 通过 msp430.h 和 -mmcu 选项执行此操作)。

0 投票
1 回答
872 浏览

timer - MSP 430G2553 在比较模式下使用 Timer_A 进行采样

朋友们,我必须在 61 微秒的时隙中每 14 微秒采样一次输入,并使用定时器输入(项目要求)。

我必须做 8 次才能生成一个字节。更像 UART ,但我将它用于我的硕士项目的单线总线通信。

我编写了如下代码,它给出了预期的结果,并在调试器中一次执行一条指令对其进行了测试。

下面是代码。

但问题是,当我调用该函数时,它似乎有些卡住了。我猜它并没有完全从 ISR 中出来,尽管当我在调试器中一次运行一条指令时它完成了所有的执行。为了让我的问题清楚,这就是我测试的方式:

假设如果我在 ISR 中的突出显示表达式 (%3%) 处放置切换断点,那么它进入 ISR 时会点击切换断点 8 次,捕获正确的值并巧妙地从读取函数中出来(并且

超出上述循环)

, 在电源中达到 while(1) 表达式。

但是,如果我将切换点放在突出显示的表达式 (%1%) 上,它就会出现卡住。或者,如果我将切换断点直接放在我期望的 main 中的 (%2%) 处,它会完成读取功能,将值存储在 word 变量中以达到切换断点,但代码似乎卡住并且没有命中切换中断。

我不知道是什么问题,有人可以帮忙吗?

0 投票
1 回答
944 浏览

usb - 在没有 JTAG 的情况下将代码嵌入到 MSP430

我是这个主题的新手,想学习如何将代码嵌入到 MSP430 中。我有一个分线板 MSP430-H5438,但我没有使用 JTAG 接口。我已经准备好 IAR 生成的代码(十六进制文件)(ADC、SPI 接口),但是我无法将它们加载到 IC 中。我正在使用 USB-UART 桥接器将设备连接到 PC,使用 BSL 脚本编写软件,但没有结果。在没有 JTAG 接口的情况下将 MSP430 连接到 PC 是否是错误的方法?我在这里绕圈子吗?提前致谢。

0 投票
2 回答
1704 浏览

synchronization - 两个MCU之间的通信可以使用spi协议吗?

MCU 和设备上的 SPI 协议使用。我想知道它是否可以用于两个单片机的通信。像 s3c2440 & msp430。如果没问题,我应该注意什么。(他们有不同的时钟 25MHz 和 >100MHz)如果它不能使用,请告诉一些原因谢谢

0 投票
1 回答
3738 浏览

sd-card - 使用 SPI 接口的 MSP430F5438 SD 卡

我想使用MSP430F5438的 SPI 接口连接 SD 卡。硬件部分在我的设计中是正确的,但是我无法将任何数据发送到 SD 卡。我使用的源代码来自MSP430 的安全数字卡接口

为了调试,我如何将数据发送到 SD 卡?数据应从 ADC12MEM 寄存器接收,只需写入 SD 卡。从上面的源代码来看,没有进程,当我调试时,我无法将任何用户输入发送到 SD 卡。

0 投票
2 回答
4986 浏览

linker - 在 IAR Embedded Workbench 中自动配置链接器

我正在做一个固件项目,我必须对闪存完整性进行 crc16 检查。

crc 使用 IAR Xlink 链接器计算并保存在闪存的末尾。再次在运行时从代码计算 crc,并与闪存中存储的值进行比较以检查完整性。但是,我们只能在闪存的代码段上计算 crc。每当我们对代码进行一些更改时,它的大小可能会发生变化。我可以自动化我现在手动执行的这个过程吗?

从 .xcl 链接器文件:

在这里,我现在需要更改第二个代码段的结束值,即 0x20A13。我从 .map 文件中得到这个值,即我的代码在闪存内的内存范围。这是我做的第一个改变。

在这里,我需要对代码进行第二次更改:

请帮助自动化此过程!