This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430编译器使用经验与技巧集锦!

Other Parts Discussed in Thread: ENERGIA, MSP430G2553, ENERGYTRACE, MSP430FR5969, MSP430F5438A, MSP430F5438, MSP430F149, MSP430G2231, MSP430AFE253, MSP430F2012

在这里给大家汇总了一些工程师使用MSP430编译器的经验与技术,主要是CCS、EnergiaI或IAR等编译器的使用技巧、开发经历供大家分享!


  • 作者:Sur

    题目:【MSP430 编译器使用经验】+PM5CTL0寄存器理解

    1. PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power-on default high-impedance mode
    2.                                                   // to activate previously configured port settings


    总有使用TI的430launchPad的时候,发现IO的设置以及不能和以前习惯的F1系列那样了,但是如何恢复了,这次,为大家带来LaunchPad的编程时的快速解决这些问题的办法。
    LOCKLPM5 这个标志位官方是这样解释的:
    Locks I/O pin and other LPMx.5 relevant (for example, RTC) configurations upon exit from LPMx.5. After a power cycle I/O pins are locked in high-impedance state with input Schmitt triggers disabled until LOCKLPM5 is cleared by user. After a wake-up from LPMx.5 I/O pins and other LPMx.5 relevant (for example, RTC) configurations are locked in their states configured prior to LPMx.5 entry until LOCKLPM5 is cleared by user. 0b = I/O pin and LPMx.5 configurations unlocked. 1b = I/O pin and LPMx.5 configuration remains locked.


  • 作者:mars4zhu

    题目:【MSP430 编译器使用经验】-使用CCS调试Energia项目

    本文简要介绍了使用TI-Launchpad系列的类arduino开发环境——Energia项目开发过程,并着重介绍了采用CCSv6.0Energia项目的代码进行调试。

    目  录
    1 概述        1
    2 Energia项目开发流程简介       
    2.1. Energia介绍与编译过程       
    2.2. Energia安装与设置       
    2.3. Energia项目开发流程简介       
    3 使用CCS调试Energia项目       
    3.1. CCS导入Energia项目       
    3.2. CCS编译Energia项目       
    3.3. CCS调试Energia项目       

    概述

    本文简要介绍了使用TI-Launchpad系列的类arduino开发环境——Energia项目开发过程,并着重介绍了采用CCSv6.0对Energia项目的代码进行调试。
    硬件平台:TI-Launchpad G2553
    软件平台:Energia 0101E0012;CCS V6.0.1



    Energia项目开发流程简介

    本章介绍Energia开发环境,并简要记录采用Energia IDE进行Launchpad开发的流程。

    2.1. Energia介绍与编译过程

    Energia是类似于Arduino的开发环境,Arduino是流行的电子快速原型搭建开发平台,介绍如下:
    “The open-source Arduino environment makes it easy to write code and upload it to the i/o board. It runs on Windows, Mac OS X, and Linux. The environment is written in Java and based on Processing, avr-gcc, and other open source software. “【1】
    Energia采用与arduino同样的软件结构,IDE集成各项功能菜单与编辑器,在编辑完成Energia项目文件(.ino后缀)后,Energia根据IDE的设置,先将ino文件转成cpp文件,然后调用自带的编译器(hardware\tools目录下),对cpp编译成目标文件(.o后缀),同时也将对应的开发板核心库(core library,在hardware\msp430目录下)cpp文件编译,然后将所有目标文件(.o后缀)连接,生成elf格式,最后生成.hex文件。

    2.2. Energia安装与设置

    在官网energia.nu下载Energia软件包(.zip文件),解压并启动Energia后,默认打开以sketch_mmmdda(mmmdd代表当天的日期,a表示第一个项目,再次新建则为b)的新建空白工程(仅仅一个.ino文件,空白的setup()和loop()函数)。
    为了更详细的了解Energia编译过程,需要进行一些设置,在Energia中点击File->Preference,进入首选项设置页面,如下:
    图 2-1 Energia IDE的首选项设置
    选择”Show verbose output during []compilation []upload”,两个都勾选上,即在Energia的控制台输出编译和“上传”(将编译后的二进制hex文件烧写入板子上的芯片,通常称之为“编程”、“烧写”或“下载”),也可点击”More preferences can be edited directlty in the file”,打开preference.txt文件进行编辑,修改如下行为true
    build.verbose=true
    upload.verbose=true
    同时为了得到Energia转化的cpp文件以及编译后的.o文件、hex文件等,可以设置编译输出目录,即增加如下行:
    build.path=YOUR\OUTPUT\PATH

    2.3. Energia项目开发流程简介

    连接好Launchpad,并安装好驱动(参考Launchpad用户手册,不再赘述),在Energia的菜单Tools->Board选择对应的Launchpad(本例为“Launchpad w/msp430g2553 (16MHz)),同时在Tools->Serial Port选择对应的串口号(COMx)。
    参考范例Blinky程序,编写代码如下
    1. /*
    2.   Blink
    3.   Turns on an LED on for one second, then off for one second, repeatedly.
    4.   This example code is in the public domain.
    5. */
    6. int brightness = 0;    // how bright the LED is
    7. int fadeAmount = 20;    // how many points to fade the LED by
    8. void setup() {                
    9.   // initialize the digital pin as an output.
    10.   // Pin 14 has an LED connected on most Arduino boards:
    11.   pinMode(14, OUTPUT);    
    12.   pinMode(GREEN_LED, OUTPUT); 
    13.   Serial.begin(9600);
    14.   pinMode(PUSH2, INPUT_PULLUP);
    15. }
    16. void loop() {
    17.   int sensorValue = analogRead(A0);
    18.   Serial.println(sensorValue);
    19.   sensorValue = digitalRead(PUSH2);
    20.   Serial.println(sensorValue);
    21.   
    22.   analogWrite(GREEN_LED, brightness);    
    23.   // change the brightness for next time through the loop:
    24.   brightness = brightness + fadeAmount;
    25.   // reverse the direction of the fading at the ends of the fade: 
    26.   if (brightness <= 0 || brightness >= 255) {
    27.     fadeAmount = -fadeAmount ; 
    28.   }
    29.   delay(200);              // wait for 0.2 second
    30. }
    复制代码
    保存后,点击Sketch->Verify/Compile,即刻完成项目的cpp文件转换、编译、连接和hex文件生成,可以在Energia下方的控制台输出看到如下输出信息:
    图 2-2 Energia编译输出信息
    同时在设置的输出目录中看到有大量文件,包括.cpp  .o  .d  .efl  .hex等格式的文件,分别是转换后的项目cpp文件,项目以及库cpp文件编译后的目标文件.o,连接后的可执行文件.elf,以及最终的二进制下载文件.hex
    编译成功后,即刻点击File->Upload,将生成的hex文件上传(下载)到Launchpad
    的芯片里,即刻完成芯片的烧写。之后就可以看到LED在渐亮渐灭,同时点击Tools->Serial Monitor,可以看到串口输出信息。
    图 2-3 Energia 运行截图

    使用CCS调试Energia项目

    目前最新版的CCSV6.0.1(截止2014-08-17),新的版本具有导入Energia项目并进行源代码级的编辑、调试开发功能。本章简要记录使用CCS导入、编译、调试Energia项目的过程。

    3.1. CCS导入Energia项目

    打开CCS,在Project菜单栏下选择”Import Energia Project”,选择对应的Targetmsp430/lm4f),Launchpad。并选择Energia项目。
    图 3-1 CCS导入Energia项目
    Project Explorer面板上看到CCS新建了一个跟Energia项目同名的项目,以及一个”xxxx-core”的项目,并导入了生成的cpp文件作为源代码文件。打开可见该文件时已经经过转换后的cpp文件,对比发现该cpp文件与Energia输出目录下的cpp文件基本相同。

    3.2. CCS编译Energia项目

    CCS在导入Energia项目时,也导入了必须依赖的Energia核心库(core),编译Energia项目之前必须先编译核心库项目,可以在Energia项目的Dependency里面(在Project ExplorerEnergia项目右键->Property->Build->Dependency标签页)看到:
    图 3-2 CCS建立的Energia编译依赖项目
    可以看到在core项目中,有各个cpp文件,都是arduino核心库的源文件,点击main.cpp,可以看到main函数如下:
    1. #include <Energia.h>
    2. int main(void)
    3. {
    4.         init();
    5.         setup();
    6.         for (;;) {
    7.                 loop();
    8.                 if (serialEventRun) serialEventRun();
    9.         }
    10.         return 0;
    11. }
    复制代码
    无需做任何改动,点击Project->Build Project,即可看到在console面板输出编译信息,最终编译成功。

    3.3. CCS调试Energia项目

    点击Debug图标,即刻看到CCS完成二进制文件下载,并进入调试界面,这时候就可以利用CCS的强大的调试功能进行调试。

    nt>项目的Dependency里面(在Project ExplorerEnergia项目右键->Property->Build->Dependency标签页)看到:

      

    图 3-4 CCS调试Energia项目


  • 真的是非常非常棒的分享!

    学到了太多东西。

  • 这个小技巧太实在了。

    CCS的强大在于文本编辑器强大,这是keil和IAR都没有的!

  • 你好,这个串口的例子,我下载程序到板子里去了,但打开串口窗口没有任何字符出现,不知道是怎么回事

  • 请说明是本帖哪页哪一楼的 例子,本帖是很多经验的汇总。

  • 永磁同步电机无传感器矢量控制技术

    同时兼具高性能电流矢量变频器,控制和调节三相交流同步电机的速度和转矩,

    低速高转矩输出,具有良好的动态特性、超强的过载能力、增加了用户可编程功能及后台监控软件,通讯总线功能,支持多种 PG 卡等,组合功能丰富强大,性能稳定。可用于及各种自动化生产设备的驱动。

    初始位置自辨识:高频注入法辨识PMSM转子的初始位置,保证起动时不反转
    电机参数自学习:变频器自学习功能获取电机参数Rs、Ld、Lq、Ef
    无PG矢量控制:在不安装编码器的条件下实现交流同步电机PMSM矢量控制,降低成本并提高可靠性
    空载电流小,功率因数高:空载电流接近零,功率因数接近1
    产品定位:高性能开环矢量应用,重点提升了产品性能,要求低频大转矩场合。
    产品特点:高性能、快速加减速、控制精度高
    额定负载条件下,0.1秒任意加、减速,自动限流,自动稳压,保证无故障最优控制
    无速度传感器电流矢量控制:转矩控制精度高;稳速控制精度高
    低频带载能力强:SVC/0.5Hz/150%转矩

    ------------------------------------------------------------------

    变频驱动设备解决方案伺服驱动器生产方案提供商

    深圳市伊瑞软件技术有限公司

    Shenzhen Erik Software Technology Co., Ltd

    扣扣:二五一二二六二四七一

    联系电话:高端1矢量3变频8技术2 伺服3 PLC 1步进3电梯7逆变4源码6转让4

  • 5438RAM地址不是从1C00~5BFF么,为什么汇编代码里出现了5C16,这不是跑FLASH里去了么?  另外,MOV   #20H,R10这句代码是啥意思,起什么作用?