大家好、
美好的一天! 您能否帮助解决并重现我们客户的问题、如下所示。
我正在尝试使用 CSS 并借助 MSP430FR5994 Launchpad 启动和运行一些软件。 我不确定是否为此支持请求选择了正确的器件型号、但它是80引脚"PN" MCU。
我附加了一个基本草图。 复制我之前在下面所做的工作所需的一切。
1. 立即购买库存标准 MSP430FR5994 Launchpad
2. 启动 CCS
使用"MSP430FR5994"并借助 GNU 工具链创建新项目、然后将代码粘贴到 main.c 中
4. 使用"MSP430FR5994"并借助 TI 工具链创建另一个新项目,然后将完全相同的代码粘贴到 main.c 中
5.ru、然后每个人都看到 GNU One 进入 lala land、TI One 作为 Larry 快乐运行、即:以1Hz 的频率稳定闪烁。
然后尝试在调试中逐步完成其中的每 一项、您将看到 GNU 项目可能锁定在 ISR 中的"TA0CCR0 += 10000"行(但可以转到任何地方)、而 TI 项目也会像 Larry 一样逐步完成 Happy、 在单步执行端口切换时闪烁或熄灭。
好的、我希望这是足够的信息。 如果两者都适合您、我的 CCS 配置可能有问题-如果是、请告诉我可以做些什么来为您提供更多信息。 实际上、我投入了这么多钱、我想我会继续修整 GNU 项目、看看我是否能在某个地方找到错误的设置。
此致、Tristen
PS:请注意、我添加/注释了一些内容、试图尝试并理解错误的地方。 此代码示例的现有代码在活动模式下运行、无需修改即可证明问题。
#include int g_counter = 0; int main (void) { WDTCTL = WDTPW | WDTHOLD; //停止 WDT // //端口初始化 // P1OUT = 0; P1DIR = 0xFF; P2OUT = 0; P2DIR = 0xFF; P3OUT = 0; P3DIR = 0xFF; P4OUT = 0; P4DIR = 0xFF; P5OUT = 0; P5DIR = 0xFF; P6OUT = 0; P6DIR = 0xFF; P7OUT = 0; P7DIR = 0xFF; P8DIR = 0xFF; P8OUT = 0; PJOUT = 0; PJDIR = 0xFFFF; //禁用 GPIO 上电默认高阻抗模式以激活 //先前配置的端口设置 PM5CTL0 &=~LOCKLPM5; //配置 GPIO P1DIR |= BIT0; P1OUT |= BIT0; CSCTL0_H = CSKKEY_H; //解锁 CS 寄存器 CSCTL1 = DCOFSEL_6; //设置 DCO = 8MHz CSCTL2 = SELA_VLOCLK | SELESS__DCOCLK | SELM_DCOCLK;//设置 ACLK = VLO、MCLK = DCO CSCTL3 = DIVA__1 | DIV__8 | DIVM__8;//设置所有分频器 CSCTL0_H = 0; _DELAY_CYCLES (1000); // for (int i = 0;i <= 10;i++) //{ // P1OUT ^= BIT0; // // _DELAY_CYCLES (32000000); // // P1OUT ^= BIT0; // // __delay_cycles (8000000); // // P1OUT ^= BIT0; //} TA0CCTL0 = CCIE; //启用 TACCR0中断 TA0CCR0 = 10000; TA0CTL = tassel_ACLK | MC__Continous;// SMCLK、连续模式 _enable_interrupt (); while (1) { // LPM3; __no_operation(); //对于调试器 // P1OUT ^= BIT0; } //_ bis_SR_register (LPM0_bits | GIE); //输入带中断的 LPM0 //_ no_operation (); //对于调试 器} // Timer0_A0中断服务例程 #if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__) #pragma vector = TIMER0_A0_Vector __interrupt void Timer0_A0_ISR (void) #elif define (__GNU__)#pragma COMPLETE_A0 (void)(void TI_0_A0)(void TI_0_ISR (void)(void)#interrupt TI_0_0_ISR (void )#elt)(void TI_0_ISR (void) #endif { TA0CCR0 += 10000; //将偏移添加到 TA0CCR0 //__NO_OPERATION (); //用于调试器 P1OUT ^= BIT0; g_counter++; //_BIC_SR_REGISTER_ON_EXIT (LPM3_BITS); }
下面是标志集的"GNU 编译器"摘要:-mmcu=msp430fr5994 -mhwmult=f5series -i"C:/ti/ccs1040/ccs/ccs_base/msp430/include_gcc -i"C:/Users/pc-user/workspace_v10/board -i"C:/ti/ccs1040/ccs/tools/compiler/msp430-gcc-9.3.1.11_win64/msp430-elf/include -og-g -gdwarf-3 -ghwmlarge-mcode-region=none -mlower data-lower
这是标志集的"GNU 连接器"摘要:-mhwmmmmmmmmult=f5series -og -g -gdwarf-3 -gstrict-dwarf -Wall -mcode-region=none -mlarge -994 cu、-Map、"board.map"-wl、-gC-SECTIONS -l"c:/ti/ccs1040/ccs/ccs_base/msp430/include_gcc -mmsp430fr5wl
感谢您的支持。
此致、
Jonathan