在这里给大家汇总了一些工程师使用MSP430编译器的经验与技术,主要是CCS、EnergiaI或IAR等编译器的使用技巧、开发经历供大家分享!
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编译器的经验与技术,主要是CCS、EnergiaI或IAR等编译器的使用技巧、开发经历供大家分享!
作者:mars4zhu
题目:【MSP430 编译器使用经验】-使用CCS调试Energia项目
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项目
nt>项目的Dependency里面(在Project Explorer的Energia项目右键->Property->Build->Dependency标签页)看到:
图片7.png (76.67 KB, 下载次数: 0)
作者:mars4zhu
题目:使用CCS优化msp430的设计与编译
1 概述
2 ULP Advisor简介与优化流程
2.1. ULP Advisor简介
2.2. ULP Advisor设置
2.3. ULP Advisor的运行与优化
3 Optimizer Assistant简介与优化流程
3.1. Optimizer Assistant简介
3.2. Optimizer Assistant优化编译流程
作者:mars4zhu
题目:使用CCS的Energy Trace调试msp430的低功耗运行
1 概述
2 Energia项目开发流程简介
2.1. Energy Trace介绍
2.2. Energy Trace的设置
2.3. Energy Trace的运行
2.4. Energy Trace的低功耗优化对比分析
作者:sjtitr
题目:用IAR建立自己的代码大厦
俗话说——万丈高楼平地起,用腻了别人提供示例工程,所以今天我们就来从无到有地建立一个自己的工程,这不只是工程的问题,更要紧的是,搭建自己的软件平台,以便于之后,随时利用这平台迅速运行起各种机能。
整个工程的压缩包已经附在本文后面了,有需要的童鞋尽管拿去用,本代码允许被指摘、被学习、被利用甚至做成产品被出售,请保留相关注释信息就好。代码不是本文的核心内容,本文其实重在建立工程,建立自己的运行环境,代码只是一种辅助工具。
IAR是个不错滴工具,我使用的版本是IAR EW for MSP430 5.60.7,关于安装的事情,本文不再讨论了,很简单,根据安装程序上的说明操作即可。
不废话,打开IAR,我们就来建立新工程。
如下图,IAR一打开就是这样了。
接下来,当然要来创建一个新工程,如下图:
弹出来对话框,我的习惯是使用纯C来开发单片机程序,你呢?
找个地方保存工程吧……我把自己的这个平台称为sjtitr_platform,所以我的工程就起名为spf啦,之后全部保存还会提醒保存为工作空间,那么也在相同的地方保存即可。
为了保证代码的整洁,在工程中,新建一个代码组,用来存放sjtitr_platform的有关代码
给新的代码组起名,我就简单起名叫做splatform啦
如果是新建文件,就要从菜单中选择,建立一个新的文件,注意的是,这个文件是一个空白的文件,我们在编辑好其中内容之后,需要保存为C文件。
相关的C文件保存好了之后,要将其添加到工程中——在代码组上右击选择add,如果是当前这个文件,可以直接选择,如果有其他文件或者更多文件,可以选择"Add Files...",从弹出的对话框中选择要添加的文件。
只多讲一个事情:这里一般不选择H文件,头文件进入工程采用的是包含引入的方式,接下来看看有关的操作。
在工程上右击选择“Options”,可以弹出工程选项对话框
在C/C++的相关选项中,有预处理一项内容,向其中添加你增加的头文件路径,将来我们写#include “.....”的时候,就会默认优先从这些路径里查找头文件啦。
如果这里设置不正确,可能就会在编译时提示你找不到头文件。
只要上面这些内容合理设置,再把源文件都写好,那么我们的工程就可以顺利编译了。
看上图第一个“编译”和第二个“制作”的区别主要在于:编译只针对当前文件进行,所以头文件是不能编译的,这个按钮会灰掉;制作相当于全编译,把整个工程还未编译的文件都编译了,并且产生目标文件,可以用于下载到板子上运行。
说到下载,还有些设置要进行。在这之前我们来实现基本的代码。我的示例程序做了一个blink,LED以大约2秒的周期闪烁,利用按键来切换闪烁模式:红灯闪、绿灯闪、双闪。
为了支持基本的机能,我的平台需要有基本的事件的处理,所以利用事件来调度处理过程——
再加上有时间的问题,所以我们暂且利用看门狗作为系统tick计时器(正经场合还是用看门狗复位比较安全,俺在此抛砖引玉了),每隔8ms产生一次tick
把这个tick作为基准,用于其他处理需要的时间——LED闪烁需要定时,Key检测需要定时——把定时机制作为一个PROC,登记在splatform中。
以上就是所谓软件平台大致的思路了,详细内容请参考示例的代码。
最后利用平台来实现预定的机能:
编译成功以后,我们进行板子相关设置——首先根据前文的说法打开工程选项:第一个把通用设置中的芯片型号选择正确!
接下来在调试选项中,选择FET调试器
当然了,在FET具体设置里,也要选择正确是哪一个调试器——USB型的,你也是吧?
原则上只要红框位置选择正确了,其他的也都是正确的,如果不放心,就逐个对照一下看看。
最后下图,右面第二个是下载并进入调试模式,右面第一个是不下载只进入调试模式。所以下载调试,运行吧!
右面第三个红色圆圆的按钮是什么?设置断点,有了今天的工程做基础,断点这部分,我们下次详聊。
OK,关于小灯闪烁我就不上图片视频了,有兴趣的童鞋自己烧写运行试试。
作者:sjtitr
题目:IAR的调试功能
我们可以自己建立自己的工程了,但这一步只是开发中的第一小步。今天就来说说开发中举足轻重的另外一件事:调试。
其实调试本身也并不难,楼主总结,调试关键在于两件事,一是运行,二是观察,为了更好的实现这两者,就牵涉到如何设置断点。
运行很简单了,仔细观察调试工具栏:
从左向右依次是:复位,暂停,步过,步入,步出,下一句,至光标,运行,退出调试模式。
运行是以指令指针为参照的,在环境中表现为绿色的小箭头:
指令指针指向的该行,表示的是接下来准备要执行的代码行。
复位:指令指针回到开头,
暂停:使正在奔跑的程序立定
步过:执行当前这句话,如果这句话是函数调用,就把整个函数执行完,停在下一句
步入:执行当前这句话,如果这句话是函数调用,就进入到函数里,停在函数的第一句话
步出:一直执行到从当前的函数返回,停在函数返回后的下一句话
下一句:执行C语言的一条语句,停在下一句代码上
至光标:一直运行到光标所在行,并停在这一行上
运行:运行到遇到断点
退出调试模式:……额,就是退出调试模式
观察,就是看——看什么?什么都看!
在菜单View中,我们可以了解都有哪些可以看,重点都在中间那一段中。
我们主要来看看重点中的重点,楼主比较常用的有以下这些:
Breakpoints:也就是断点
Disassembly:反汇编,也就是你写的程序经过编译烧写之后,在单片机中的样子
Memory:内存,可以查看全部内存中的数据,看起来就像一般的16进制编辑器
Symbolic Memory:符号内存,不但能看到内存数据,还能看出来对应程序中的什么变量
Register:寄存器,查看全部寄存器的内容
Watch:观察,可以根据你的需要,指定查看什么,根据楼主的经验,查看全局变量方便一些,在变量可见范围内,也可以查看局部变量和静态变量(static)
Locals:查看函数局部(变量等)内容,包括函数的参数
Statics:查看静态内存变量,注意不是指静态变量(static),而是生命周期是整个程序生命期的变量,原则上不在堆栈中的局部变量,应该都是静态内存变量。
auto:自动,指的不是C语言中的自动变量,而是指根据指令指针当前的位置,自动显示出相关的变量
Call Stack:调用栈,表示到当前位置的函数调用顺序图
Stack:栈,就是栈的数据表示
除了上述这些,还有一些可以看的东西,由于楼主不常用,因此楼主也不是百分百的清楚它们的意义和用法,就不在这里胡说八道了。
总体来说即使只弄明白上述这些,在调试的时候也足够了,绝对能让你想看哪里,就看哪里。
最后是断点,这个东西,可简单可复杂。所以下面我们简单来说说,便于大家好接受。
基本的断点,通过下载调试按钮旁边的有着红色圆的按钮,就可以在光标当前行进行设置或者取消了,
当然你也可以直接点击代码左侧的灰色区域,使断点出现或者消失。
这是一个普通的位置断点,在IAR中也被称为代码断点,也就是当运行到这里的时候停下来。下图是断点窗格里看到的代码断点
设置好代码断点,让程序运行,程序就会在运行到断点的位置时自动暂停下来了。
以前经常有童鞋来问楼主,打了断点为啥停不下来……很简单,压根没跑到你设置断点的地方呗!
在我使用的环境中,除了代码断点,还支持条件断点和高级断点的设置。
可能是由于楼主也不太会使用这个,只能设置到读写某个变量时暂停,我连单独的读或写操作都无法指定,如下图所示。
在用其他环境调试的时候,楼主也经常利用条件断点来监视某个变量被修改成非法值的时机点,以此来跟踪调查程序运行混乱的问题。
简单总结一小下,调试时我们在做程序的时候,话费最多时间的阶段,所以从学习IDE的使用开始上手,能有效提高我们调试的效率,把程序做得更大更好更稳定。
作者:蓝雨夜
题目:【MSP430 编译器使用经验】 + Energy Trace™
【MSP430 编译器使用经验】 + Energy Trace™在低功耗项目,评估MCU自身能量功耗为多少!那些资源占用了多少功耗!是个比较麻烦且比较有难度的检测手段
TI的Energy Trace™是为MSP430能量检测的有效手段,我们通过它,看看我们采用的MCU运行时的功耗情况!
我们看看怎么使用Energy Trace™这个工具!
实验CCS Version: 6.0.0.00190 MSP430FR5969
1、CCS进入DEBUG模式
2、调试模式
3、打开“EnregyTrace”窗口:View/ other / MSP430-EnergyTrace OK打开
4、打开后出现的窗口
5、在CCS中使能EnregyTrace功能
这里可以通过2个途径启用
a、CCS菜单 Window / Preferences / Code Composer Studio /Advanced Tools /EnergyTrace Technology/Enable Ok即可
b、还有就是在“EnregyTrace”窗口直接进入这个“属性窗口”
6、设置“跟踪时间”
7、F8 全速运行程序
这里我们可以看到我们在一秒内使用了多少能量mJ,功耗mW,电流等等
因为程序是闪琐一个LED所以功耗波形是这样
while(1)
{
P4OUT ^= BIT6; // Toggle LED
__delay_cycles(100000);
}
非常直观
同时我们可以增加跟踪时间至最大5分钟!
还有我们调试其他MSP430时,要注意那些功能是可以跟踪的!
只有59/69是支持EnergyTrace+ +™的
作者:蓝雨夜
题目: 【MSP430 编译器使用经验】 + 更好的解读代码方法
CCS中有些功能使我们不用借助其他编辑工具!就能更快速的解读,编辑代码!
非常实用的!
1、在代码中,用鼠标放到“宏”,“全局变量”等待,CCS会自动弹出可以查看他们原形的提示!
比如:图片中的宏定义。
2、同样的功能,在代码中,用鼠标放到“函数”等待,CCS会自动弹出可以查看他们原形的提示!
比如:图片中的函数原形。
3、一个全局变量在当前c文件中,在什么地方被使用了,到底是被其他赋值,还是赋值给别的变量!
鼠标点击变量,这是文件右边出现好多 小框框,不过要注意它们的颜色哦!
颜色不同,就说明该变量用处不同!同时也了解这个变量大概被使用了多少次!
4、同样的原理,鼠标点击函数,那文件右边就同样看到很多框框,就知道该函数的使用情况了!
作者:lyzhangxiang
题目:【MSP430 编译器使用经验】+将中断向量表置于RAM中
相信用过cm3的朋友们有深刻的体会,可以设置中断向量表到RAM或者FLASH中去,搞搞IAP很方便啊。之前在msp430有个项目要485升级,研究了一下。没搞定,后面还是用传统的方法实现的,就是那些br啊,中断向量重置这种。
这里和大家分享一下如何把中断向量表放置在RAM中,我想应该是可以实现IAP的,可能是我的方式不正确,有兴趣的可以继续研究下。
直接贴出代码吧,主要是思路,看一下代码吧,注意那个寄存器 SYSCTL |= SYSRIVECT;
最后一点点相关的东西:
作者:lyzhangxiang
题目:【MSP430 编译器使用经验】+函数定义变量定位
1、同样采用的是IAR,目标芯片型号MSP430F5438
2、需要事先了解IAR的linker文件结构,不作描述,请自行参考文档《IAR C/C++ Compiler Reference Guide for Texas Instruments’MSP430 Microcontroller Family.pdf》和《IDE Project Management and Building Guide.pdf》直接点击IDE中的help栏选择即可。
3、变量定位很简单格式如下:
__no_init unsigned char XXX[50]@0x5000;
4、函数定位方法很多,这里给出常用的一种:
1)修改xcl文件中添加-P(CODE)MyFuncSeg=25B00-26000
2)函数声明:void Function(void)@"MyFuncSeg";函数形式不定,可以有参数也可以无参数
5、编译即可,无其他特别说明。
STEP1:
STEP2:
注意变量定位需要使用__no_init,不可省略,且未被初始化的变量记得在程序开始,自行初始化一下,未初始化的数据是随机的。
我这里使用一个排序的函数测试,定位的地址正确,可以通过仿真看出。
都是基础知识的分享,后面会分享一个高级的应用,如何实现中断向量表重定位,可以Boot程序和App程序分别使用中断相互不影响。
作者:lyzhangxiang
题目:【MSP430 编译器使用经验】+将程序拷贝到RAM中执行
1、首先使用IDE为IAR,当然这个说是编译器不太合适,针对IDE而言会合理些吧,暂且这么叫吧。
2、请先自行了解__low_level_init()函数,默认使用该文件的路径是X:\Program Files\IAR Systems\Embedded Workbench 6.0 Evaluation\430\src\lib\low_level_init.c 。
3、针对我们的应用,先拷贝出一份low_level_init.c放置到工程目录下面。
4、接下来我们添加一个汇编文件命名为Flash2RAM.asm或者.r43也可以的吧,我使用.asm后缀。
5、汇编代码如下:
PUBLIC FLASH_2_RAM
RSEG CODE
FLASH_2_RAM
PUSH.W R8
PUSH.W R9
PUSH.W R10
MOV #20H,R10
MOV #5C16H,R8
MOV #3C00H,R9
LOOP MOV @R8+,0(R9)
INCD R9
DEC R10
JNZ LOOP
POP.W R10
POP.W R9
POP.W R8
RET
END
6、修改low_level_init.c文件如下:
extern void FLASH_2_RAM(void);
int __low_level_init(void)
{
WDTCTL = WDTPW | WDTHOLD;
FLASH_2_RAM();
asm("mov #3C00h,R0");
return 1;
}
此处在cStart之前把Flash中的程序拷贝到RAM中,注意针对的MCU型号为MSP430F5438,其他的型号修改相关的FLASH和RAM首地址即可。
注意这里在拷贝结束后把指针强制指向RAM中即可。
7、实测程序,非转载欢迎大家测试。
8、针对一款MCU而言,如果你选择某款IDE作为开发环境,建议要搞清楚一些基本的知识点,启动过程,cstart过程都做了哪些事情,linker的细节问题。如果你用开源的编译器来建立一个工程的话,相信你会了解其中的种种,MSP430有开源的gcc编译器哦,大家可以玩玩。
作者:海盗郭兆广
题目:【MSP430 编译器使用经验】IAR的初识
第一次与MSP430单片机相识是在上大学的时候,当时为了做一个项目是空气净化器的用到
430,之后便与430 结下了不解之缘
下面写的仅仅代表我自己的一些东西,拿出来跟大家分享说的不对的地方还请大家指正。
我使用的是IAR,所以也就从IAR说起吧。
作者:海盗郭兆广
题目:【MSP430 编译器使用经验】空气净化器的控制程序编写
在大学那会做的空气净化器
主要功能比较简单功能:自动、手动。
主要通过PWM控制电机转速。
下面是一些程序,仅供参考。
#include <msp430x14x.h>
#define keyin (P2IN & 0x07)
unsigned int count;
void delay();
void BELL();
void PWM_B(int x);
void keyscan(void)
{
unsigned char temp=0;
if(keyin != 0x07) //如果有键被按下
{
temp=keyin;
delay(); //延时消抖
if(keyin != 0x07) //再次检测按键状态
{
while(keyin!= 0x07); //等待按键被放开后开始执行以下指
if(temp==0x06)//静音模式
{
flag=0;
BELL();//蜂鸣器
P3OUT |=0xff;
P3OUT &=0xFE;
PWM_B(400);
}
if(temp==0x05) //手动4级调速状态控制
{
flag=0;
count++;
BELL();//蜂鸣器
switch(count) //转换键值
{
case 1:
PWM_B(500);
P3OUT&=0xFE;//只将第一位致0,使第一个灯亮。
P3OUT|=BIT4+BIT1+BIT2+BIT3;
break;
case 2:
PWM_B(650);
P3OUT&=0xFC;
P3OUT|=BIT4+BIT2+BIT3;
break;
case 3:
PWM_B(800);
P3OUT&=0xF8;
P3OUT|=BIT4+BIT3;
break;
case 4:
PWM_B(1000);
P3OUT&=0xF0;
P3OUT|=BIT4;
break;
//default: //表示其他情况的时候 自动模式
//PWM_B(350);break;
}
if(count==4)
{
count=0;
}
}
if(temp==0x03)//自动调速状态
{
flag=1;
BELL();//蜂鸣器
P3OUT |=0xff;
P3OUT &=0xEF; ///////YOUWENT }
}
}
}
}
#include <msp430x14x.h>
void PWM_B(int x)
{
TBCCR0 = 1000-1; // PWM Period
TBCCTL1 = OUTMOD_7; // CCR1 reset/set
TBCCR1 = x; // CCR1 PWM duty cycle
TBCTL = TBSSEL_1 + MC_1; // ACLK, up mode
}
/***************************************************
时间:2012年07月25
程序功能:修改算法,修改ADC通道,序列通道多次转换,修改pwm波。
----------------------------------------------------
测试说明:按动自动,手动,静音三个键,分别观察转速
***************************************************/
#include <msp430x14x.h>
#define Num_of_Results 32
#define keyin (P2IN & 0x07)
float Curr_Volt,Curr_Volt1;
//static long int A0results[Num_of_Results]; //保存ADC转换结果的数组
//static long int A1results[Num_of_Results]; //保存ADC转换结果的数组
float data[2];
unsigned int flag;
unsigned int count=0;
int i=0;
#define uint unsigned int
#define uchar unsigned char
void Trans_val(unsigned int Hex_Val);
void Trans_val1(unsigned int Hex_Val);
void PWM_B(int x);
void BELL();
void keyscan(void);
void delay(void);
void automatic(void);
void PWM_A(void)
{
CCR0 = 60000-1; // PWM Period最大ffff
CCTL1 = OUTMOD_7; // PWM reset/set
CCR1 = 1920; // PWM duty cycle
TACTL = TASSEL_2 + MC_1; // SMCLK, up mode
}
void ADC12_init()
{
P6SEL |= 0x0f; // Enable A/D channel A0
ADC12CTL0 = ADC12ON+SHT0_2+MSC; // Turn on ADC12, set sampling time
ADC12CTL1 = SHP+CONSEQ_3; // Use sampling timer, set mode
ADC12MCTL0 = INCH_0;
ADC12MCTL1 = INCH_1;
ADC12MCTL2 = INCH_2;
ADC12MCTL3 = INCH_3;
ADC12MCTL4 = INCH_4;
ADC12MCTL5 = INCH_5 + EOS;
ADC12IE = 0x08; // Enable ADC12IFG.0
ADC12CTL0 |= ENC; // Enable conversions
}
void ADC12_START(void)
{
ADC12CTL0 |=ADC12SC; //开始转换
}
/********************主函数********************/
void main( void )
{ WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
P1DIR |= 0x0C; // P1.2 and P1.3 output
P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 otions
P2DIR=0x00;
P3DIR |=BIT5+BIT4+BIT3+BIT2+BIT1+BIT0;
P3OUT |=BIT5+BIT4+BIT3+BIT2+BIT1+BIT0;
P4DIR |= BIT1; // P4.1 output
P4SEL |= BIT1; // P4.1 TBx options
ADC12_init();
ADC12_START();
_EINT(); //打开中断
while(1)
{
_BIS_SR(LPM0_bits + GIE);
}
}
/*******************************************
函数名称:delay
功 能:用于消抖的延时
参 数:无
返回值 :无
********************************************/
extern void delay(void)
{
unsigned int tmp;
for(tmp = 12000;tmp > 0;tmp--);
}
/************************************
函数名称:automatic
功 能:当按下自动挡后,机器可以自动识别气体质量
参 数:【气体检测标准】 范围 150~330
【灰尘检测标准】 范围 40~150
返回值 :
************************************/
void automatic(void)
{
if(flag==1)
{
PWM_A();
if(Curr_Volt>=330||Curr_Volt1>=330)
PWM_B(900);
else if(Curr_Volt>=290||Curr_Volt1>=300)
PWM_B(800);
··············
else
PWM_B(400);
}
}
void BELL()
{
P3OUT&=0xDF;
delay();
P3OUT|=BIT5;
}
void keyscan(void)
{
unsigned char temp=0;
if(keyin != 0x07) //如果有键被按下
{
temp=keyin;
delay(); //延时消抖
if(keyin != 0x07) //再次检测按键状态
{
while(keyin!= 0x07); //等待按键被放开后开始执行以下指
if(temp==0x06)//静音模式
{
flag=0;
BELL();//蜂鸣器
P3OUT |=0xff;
P3OUT &=0xFE;
PWM_B(400);
}
if(temp==0x05) //手动4级调速状态控制
{
flag=0;
count++;
BELL();//蜂鸣器
switch(count) //转换键值
{
case 1:
PWM_B(500);
P3OUT&=0xFE;//只将第一位致0,使第一个灯亮。
P3OUT|=BIT4+BIT1+BIT2+BIT3;
break;
case 2:
PWM_B(650);
P3OUT&=0xFC;
P3OUT|=BIT4+BIT2+BIT3;
break;
case 3:
PWM_B(800);
P3OUT&=0xF8;
P3OUT|=BIT4+BIT3;
break;
case 4:
PWM_B(1000);
P3OUT&=0xF0;
P3OUT|=BIT4;
break;
//default: //表示其他情况的时候 自动模式
//PWM_B(350);break;
}
if(count==4)
{
count=0;
}
}
if(temp==0x03)//自动调速状态
{
flag=1;
BELL();//蜂鸣器
P3OUT |=0xff;
P3OUT &=0xEF; ///////YOUWENT }
}
}
}
}
/*******************************************
函数名称:ADC12ISR
功 能:ADC中断服务函数,在这里用多次平均的
计算P6.0口的模拟电压数值
参 数:无
返回值 :无
********************************************/
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
data[0]=ADC12MEM0;
data[1]=ADC12MEM1;
Curr_Volt=330*(data[0])/4095;
Curr_Volt1=330*(data[1])/4095;
keyscan();
// PWM_A();//加到了自动挡,不自动不发送pwm波,减少中断程序。。
automatic();
_BIC_SR_IRQ(LPM0_bits);
}
作者:海盗郭兆广
题目:【MSP430 编译器使用经验】在启动代码中关闭看门狗
MSP430的看门狗默认是打开的,如果在程序开始不关闭程序执行到一定时间msp430就会自动复位一次,那样程序就无法正常执行。一般在成为正式产品,要保证其可靠性的情况下再开看门狗,所以在我们编写程序时候不建议打开看门狗。WDTCTL = WDTPW + WDTHOLD我分享一下在启动代码关闭看门狗,我们也可以在启动代码中更改其他的程序。。
第一步:找到cstartup.s43文件,在你的安装目录下C:\Program File\msp430\src\lib\430 中找到。
第二步:打开cstartup.s43文件,打开之前先设置cstartup.s43文件的属性,去掉只读。
看到文件内有如下语句:
#ifdef DISABLE_WATCHDOG
MOV #WDTPW + WDTHOLD, &WDTCTL
#endif
有关闭看门狗的条件编译语句
我们在文件头添加一句:
#define DISABLE_WATCHDOG
然后保存。
第三步:将cstartup.s43文件添加到我们的工程当中
在Project-Options-Linker-Config页中选择Override default programe ,并将Entry symb 设置成 program_start。
编译下载到单片机中时,把debugger->setup->Run to main销掉。
ok!
作者:an736007364
题目:【MSP430 编译器使用经验】+CCS and IAR
这里重点说一下CCS吧,可谓是MSP430的原配!用MSP430,CCS有多重要,多方便,多灵活你懂的。且容我慢慢证明:
第一次接触CCS还是从launch Pad开始,以前都是用IAR for MSP430,第一次用IAR觉得真丑,有种瘦骨嶙峋的感觉,而且比较繁琐。然而第一次用CCS感觉很丰满,从代码编写到debug仿真,不得不说美不胜收!
如图,打开时的界面
是不是很有科技感!
打开后的界面
很清洁,很干净。这里如果要新建工程可单击Project来新建。也可以直接使用TI官方的一些例程,稍作修改即可完美运行,省了不少功夫。
着重来张使用TI官方例程的图示
此处方便的选择所用的MSP430芯片,我用的是launch Pad提供的G2553。
器件选择之后你是不是该选择使用的外设了呢,来挑一挑吧。
看到了吧,工程自动创建好了。是不是非常有爱!!!赞一个
编写代码就不说了吧,OK。
下面来介绍一下debug功能。
先是编译一下,而后进入debug模式,再然后你就看到debug界面了,怎么样是不是划分的很清楚。
接下来看看主要功能
按钮,开始暂停单步等等,这基本上是编译器的标配。
往右看,变量,表达式,寄存器齐了!
跟我一起来瞧瞧寄存器吧
哇,红了,是不是觉得奇怪,为什么读不到寄存器的值?答案是正在debug-ing,请稍候,不想稍后自觉点暂停按钮,不认识英文?暂停标识应该很清楚吧。
好了,来看看暂停时debug是什么样子吧
看到了吧,刚才没看到的值都是在变化的值,暂停了就清楚的呈现在你眼前了吧。感觉特好使深入理解MSP430。再赞个!
来瞧瞧怎么创建表达式的吧
完成变量表达式的创建。OK。可以开始查看变量了。
进入函数一步一步走
看看变量是不是在变化了。OK。到此是不是感觉CCS很强大!果然是原配!
下面来简单了解一下IAR吧,简单了解。。。
新建工程就不说了,直接跳过
主要谈谈设置
右键单击Options设置器件以及仿真器and debug
和所有编译器一样debug是必不可少的,而且基本都是一样的。
想看什么在view里面查找你想要找的寄存器等
大家都可以尝试使用一下。
作者:slotg
题目:【MSP430 编译器使用经验】+ Energia 开发环境认识
【说明】
Arduino是这几年最著名的开源平台之一,在淘宝上搜一下就可以搜到很多为这个开源平台设计的扩充模块,Arduino平台不一定适合直接拿来做为产品使用,但是利用这些众多的扩充模块却是可以用来学习或是评估新设计项目的一个方法。
因为Arduino存在众多的使用者,因此有很多非AVR系统的板子也会提供类似的开发环境,而Energia就是针对TI多款LaunchPad使用的一个开发环境。
Energia官网http://energia.nu/
在这里可以查询到目前所支援的板子,也可以下载相关程序,目前最新的版本是0101E0012,这是一个免安装的版本,下载解压缩后执行资料夹底下的energia.exe 。
底下的执行画面,熟悉Arduino的人应该是不会感到陌生。
开发环境内已经包括了许多展示程序:
【实验一】
开启一个LED闪烁的展示程序(Blink)
系统会开启一个新的窗口,旧的窗口可以关闭。
先确认一下所连接的LaunchPad型号。
当LaunchPad接上PC后系统会产生一个串口号码,确认一下设定是否正确。
按下工具列最左边的图示(Verify),程序开始编译,编译完成后底下讯息列显示Done compiling。
编译完成后,按下工具列左边第2个图示(Upload),将程序下载到LaunchPad上。
下载过程,底下讯息列显示Uploading…
下载完成后,底下讯息列显示Done uploading。
这时候就可以看到LaunchPad上的LED呈现闪烁的状态。
【实验二】
开启一个串口的展示程序(ASCIITable)
工具列的最右边有一个开启串口观察的图示(Serial Monitor)
打开后可以观察与调试串口传输状态
编译并下载到LaunchPad上,下载的过程中会将观察窗口关闭,因此下载完成后需再打开观察窗口,并按下LaunchPad上的RESET键,这时候可以在观察窗口上看到LaunchPad透过串口所送出的ASCII表格。
Energia是一个有趣的开发环境,可以让熟悉Arduino的人快速使用TI的LaunchPad,目前Energia所支援的LaunchPad除了MSP430之外也包括了Stellaris与Tiva C,因此假如想快速掌握这些LaunchPad的强大功能,Energia是一个不错的选择。
|
作者:slotg
题目:【MSP430 编译器使用经验】+ Energia 探索1
作者:slotg
题目:【MSP430 编译器使用经验】+ Energia 探索2
作者:haixinghp
题目:【MSP430 编译器使用经验】+代码快速输入
发帖新手,之前没有发过技术类的帖子,写的不好,希望大家见谅……言归正传,相信用过VS2010的同学都很喜欢它的代码提示功能。可是IAR for MSP430现在还没有,对于整天要写代码的“码农”来说,重复输入相同的代码很是浪费时间。我也是摸索了很久才知道IAR有下面的一些技巧:
菜单中Edit --》 code templates --> edit templates 打开是这个样子:
拿for语句来说可以加入下面的代码来实现:
#TEMPLATE &Statement>&for,"&End Value"=10,&Variable=i
for(int %2 = 0; %2 < %1; %2++)
{
%c
}
#TEMPLATE 代表代码模版
&Statement 是模块的名字清单,可以自己来取
"&End Value"=10 这个代表for 结束的值
&Variable=i 循环变量
%1,%2,代表相应位置输入值
使用Edit --》 code templates --> insert templates
在出现在菜单中选择Statement--> for 之后会出现这个菜单
比如我输入10,i,就会生成代码如下
我自己整理的代码模版:
接下来分享一些技巧的操作:
1、更改注释字体的方式:在代码段点击右键,找到Options->Editor->Color and Fonts ,然后找到Syntax Coloring,再找到C++ comment和comment,然后将左侧的type Styles 改成 Normal 就可以了,还可以把注释的颜色改成绿色,这样更加适合我们的习惯。其次在这里还可以更改C或C++里面关键字的颜色。
2、显示行号:在代码段点击右键,找到Options->Editor,将右面的Show Line Numbers 勾选上就可以了。
3、设置Tab键:在代码段点击右键,找到Options->Editor,将上面的Tab Size设置为4,Index Size 也设置为4这样就可以实现直接按Tab键就可以缩写4个空格。
4、注释的快捷键:Ctrl+K;取消注释:Ctrl+Shfit+K
5、CTRL + B自动的把程序{}花括号的配对内容反色的选中
6、格式化源码 CTRL + T
7、Ctrl+Shfit+空格,可以使用IAR提供的内部代码的编写,如if语句。
*Ctrl+Shift+V 列出剪切板中所有的字符串供选择粘贴
Ctrl+B 智能选择光标所在括弧内的区域,多次使用可选更大的区域
Ctrl+T 对选择区域进行自动缩进
Ctrl+K 注释掉选择区域
Ctrl+Shift+K 去除所选区域的注释,所选区域必须是全被注释掉的.
F9 光标处添加/删除断点
Ctrl+F9 使能/失能断点
*Shift+Alt+E 打开断点窗口,列出所有断点
*Ctrl+F 向下寻找光标所在处的单词
F3 向下寻找上次搜索的字符
Shift+F3 向上寻找上次搜索的单词
Ctrl + H 替换字符串
Ctrl + G 跳到指定行
Ctrl+Shift+F 在文件中搜索
*Shift + F2 在光标处添加标签
F2 跳到下一个标签处
F4 跳到定义处
*Ctrl+F4 关闭当前文件
*Ctrl+1 新增垂直窗口
CTRL+SHIFT+SPACE 模版使用(包括if、for、class等);
CTRL+B 括号匹配 选择括号内的多行代码;
CTRL+T 自动缩进,格式化选中代码,格式设置在
TOOLS->OPTIONS->EDITER->Auto Indent->CONFIGS;
CTRL+K 快注释,屏蔽选中的代码;
CTRL+SHIFT+K 取消快注释,取消屏蔽选中的代码;
*Ctrl+2 新增水平窗口
*Ctrl+Shift+4 关闭除当前激活外的所有文件
Ctrl+Shift+空格 插入Template
作者:IC爬虫
题目:【MSP430 编译器使用经验】 + 添加自己写的头文件的方法
初学IAR for 430的时候使用别人的代码,经常编译的时候出现无法找到头文件的编译提示错误。我但是就是属于这样的小白,有不知道怎么添加这些文件,应为以前我学51的时候往往都是把很多代码都写在同一个.C文件中,顶多就只添加一个REG52.h的头文件,别人写的代码往往是包含了很多自己写的头文件的,于是在网上搜到了添加头文件的方法,现在做一个总结。 如果你是把头文件和当前工程的目录保存在一起的,这个很简单,是需要在你的主程序中包含这个头文件就可以,不需要在编译器下手动添加,编译这个工程后相应的头文件自然会出现在相应的.c文件下,这也就说明这个头文件被调用了。。
另外一种情况是你的程序的组织结构比较复杂,需要使用到的文件较多,为了使我们的工程看起来比较整洁,一般都会把不同的功能的代码用文件夹方便装起来,这种情况下右击workspace中的Debug项,add --> add group ,如图所示。自己可新增如名为Resource和Head的文件夹,将.c和.h文件作一个分类。如果.h和.c文件不在编译器默认搜索路径下,则需要在如图2所示的C/C++ compiler 选项中添加额外的include 搜索路径,每行写一个新的路径。。
作者:chende815
题目:【MSP430 编译器使用经验】+ 关于在Information Flash中初始化数据
在一些项目需要保存一些参数和数据在EEPROM或者FLASH中,由于MSP430单片机没有内置EEPROM,只能把数据存储在FLASH中。查找IAR编译器的用户手册得知,可以使用location和__root关键字定义数据在flash中,只要编程下载时写入就可以了。而在CCS中,我还没有找到方法,希望知道的朋友不吝赐教。
#pragma location = 0x1000
__root const unsigned char pic[]=
{
0x00,0x00,0x00,0x02,0x11,'0','2','0',//00-07
'0','0','0','0','0','0','0','0', //08-0F
'0','6','8','1','0',0xFF,0xFF,0xFF, //10-17
0x01,0x5c,0x65,0xb0,0,0xff,0xff,0xff,//18-1F
0x0f,'2','0','1','4','.','0','5', //20-27
'.','1','1','V','0','.','1','0', //28-2F
};
#pragma location = 0x1000定义数据开始位置,info flash地址从0x1000开始,也可以定义到其它地址。
对于已经设置好的参数或者数据,不希望每次下载程序时修改或者重新设置,可以在IAR中进行如下设置:
在Download选项Flash erase选项下选择只擦除main memory,就可以保存上次的数据。
由于FLASH只能扇区擦除,修改FLASH数据的时候可能比较麻烦一点,要按照读-修改-写的模式进行操作,把整个扇区的数据读出来,擦除扇区,修改完成以后再把数据写回去。
作者:MrKingMCU
题目:【MSP430 编译器使用经验】+AIR开发环境使用
我接触MSP430单片机是在大二的时候,当时已经学过51单片机,其他型号的单片机也用过,像STC12C5A60S2、STC5210AD都过。当时主要是在社团有人带,自己对这方面也感兴趣,学长他们跟着老师做项目什么的都说在参加大赛的时候430会用到,就拿他们的板子和仿真器学了省了一笔钱那......
********************************************************************
下面写的仅仅代表我自己的一些东西,拿出来跟大家分享一下,下面说的方法
在论坛上没看到有人写过,可能是歪门邪道,但是我用起来感觉还可以。
另外就是小弟水平有限,一些东西的理解可能不够透彻,说的不对的地方还请
大家指正
*********************************************************************
这个程序是上学的时候写的一个,IAR的设置我就不写了,前面好多坛友写了好多,我下面就写写自己使用IAR写的这个小程序吧
每个功能我写了一个头文件,比如key.h和key.c,h文件里放的关于这个功能的定义,c文件里放的是这个功能的子函数,比如按键检测等等。所有的.h文件包含在一个#include"includes.h"文件内,下面是includes.h文件的截图
包含.h文件之后,c文件要自己添加,.c文件开头要包含一个头文件,那就是#include"includes.h"这样会把所有的头文件包含进去,这样在你写某个功能的时候要用到其他文件里的一些东西,就不需要自己再包含来包含去的。
下面是main函数里while(1)循环里的程序,其实想写个多任务处理系统的,但是水平不够,没写出来,就模仿了一个“伪”系统
if((TACTL&TAIFG)==TAIFG)//产生系统时基
{
TACTL &=~TAIFG;
AdcTimerFlag++;
KeyTimer++;
ShowTimer++;
}
if(KeyTimer >=KEY_TIMER)
{
KeyTimer=0;
P5OUT = ~P5OUT;
key();
}
if(AdcTimerFlag >= 2)
{
AdcTimerFlag = 0;
ADC12CTL0 |= ADC12SC;
while(ADC12CTL0&ADC12SC){}// 等待AD转换完成
ADC12CTL0 |= ENC;
AdcSum0 += ADC12MEM2;
AdcCounter++;
}
if(AdcCounter >=64)
{
AdcCounter = 0;
AdcResult0 = (AdcSum0>>6);
Ad = AdcResult0;
if(Lock_ADZerro)
AdZerro = AdcResult0;
AdcSum0 = 0;
}
用一个定时器产生1ms定时,然后给每个任务设置一个flag,没1msflag加1,然后给每个任务设置一个时间,比如按键处理任务我设置的20ms一次,当按键任务的flag>=20的时候,flag清零,然后执行按键操作。这里要注意的是,每个任务中都不能出现while循环等待的情况,这样有时候会导致整个系统停在那里,一直等待响应。
作者:swustlx86
题目:【MSP430 编译器使用经验】+快捷键的使用介绍
最开始使用MSP430单片机还得追溯到大学时期了,那时参加一个比赛,使用的就是MSP430F149,想想还是多久之前的事情了呢,废话不多说了。
作者:digitaltek
题目:【MSP430 编译器使用经验】+ IAR中栈的设置
开发MSP430的的程序,使用IAR开发环境是比较多的,印象中CCS应该是这两年才开始支持430的。 在调试程序的时候如果碰到栈溢出的情况就会导致程序异常,而这种异常一般不太好查, 如果我们能够看到栈的使用情况,在栈溢出的时候能给出报警那么对于调试程序来说是非常有用的。 在新建IAR工程后栈的图形显示和栈溢出报警是不打开的,可以按如下方法打开,tools->options->stack, 把两个勾打上 如下图1 图1 打开栈图形显示和栈报警 打开后在调试的时候就可以显示堆栈的使用情况,在栈溢出时也会提示,如图2 图2 可视化堆栈使用情况 如果栈空间使用比较多,那么可以手动设置栈的大小,如图3中改成了400字节,默认不改的话是80个字节 图3,设置栈大小 |
作者:hh376158101
题目:【MSP430 编译器使用经验】+ IAR之工程管理
现在给大家分享一下我在使用IAR过程中的一些小心得,希望对初学的朋友有所帮助。
我们知道TI的CCS用在MSP430开发上很有优势,可以很方便的查看各种官方例程,还可以通过GRACE图形化配置更高效快捷的完成MSP430配置工作,这是IAR无法比拟之处。但是,其相对IAR而言要略显复杂,在电脑配置低或者是电脑满负荷工作时,CCS启动慢,调试编译慢的问题尤为明显。接下来,我将为大家讲解如何利用好,管理好TI提供的example code。
首先,我们到TI官网下载最新的example code (这里以msp430g2553为例)。查找到MSP430G2553资料,选择“工具与软件”菜单,
找到 ****code examples ,点击下载即可。
解压得到我们需要的example code 文件。我们看到很多片内外设的驱动程序。我们根据需要,复制粘贴。可是你在学习查看过程中需要频繁的查找打开关闭这些文档,有时用记事本打开还会遇到排版混乱的问题,略显麻烦。
其实,在你第一次使用这些例程的时候,你可以为其都建立一个工程,而这些工程保存在同一个工作空间下。这样你打开一个工作空间,就能查找到所有的驱动程序,并且每个工程都能方便快捷的独立运行。在一个较复杂的系统中,为了方便调试各子模块、子系统,也可以使用这种工程管理模式。
下图为各工程目录。
IAR的界面挺简洁的,工具栏比KEIL的还简洁,不过我们可以通过快捷键操作,加快编辑速度。下面附上IAR的一些常用的快捷键:
自动缩进排版 :Ctrl + T
添加注释 :Ctrl + K
删除注释 :Ctrl + Alt + K
选择大括号内的内容(带括号):Ctrl + B
选择大括号内的内容(不带括号):Ctrl +Shit + B
自动补全单词 :Ctrl + Alt + Space
这是msp430g2553官方例程的部分工程文件,有需要的朋友自己添加完善哦
作者:我不懂
题目:我的IAR经验
一年前开始学习MSP430的MCU ,也一直用的是IAR的编译器。使用最多的是MSP430G2553的Launchpad,在线下载和仿真,
建立工程的最近本步骤相信大家都会了
下面步骤是选择Launchpad 在线调试的必要步骤:
完成着两个步骤之后就基本上可以实现在线调试的功能了(当然要保证你的硬件的没有问题的)
当然,我们使用直插的20或者14引脚的G系列430MCU的时候可以直接的插到Launchpad上就可以下载了,想G25,G24系列的,但是当我们想用贴片的MCU 的时候呢?可不可以也直接利用Launchpad 上的仿真器直接在线仿真呢?答案当然是可以的咯。
下面用MSP430G2231来举个例子吧!
首先,我们找到LaunchPad 上面的几个编译时用的是几个引脚,如图:
所示:
五个引脚从左到右分别是:TX , RX , RST , TEST , VCC, 当然还要加上地线GND,一共需要者6条线。
接着我们打开MSP430G2231的文档,直接看引脚的定义可以找到如图所示:
当然啦,要是英文不好的话,也可以下载个中文的文档看:
找到对应的引脚之后就好办事了:
MSP430G2231的1引脚(VCC)接电源正端 14引脚(GND)接电源地
8引脚接Launchpad的 TX
9引脚接Launchpad的 RX
10引脚接Launchpad的 RST
11引脚接Launchpad的 TEST
这样子,6条线都接好了。建立好工程之后按照上面的步骤设置好就可以实现在线下载和硬件仿真了。对应的G系列都可以用这个方法实现哦!
只要对应的线连接好,基本上就可以现实了。
MSP430F系列的程序下载一般都先生成txt类型的文件,在使用相应的下载器和下载软件下载;要生成TXT类型的文件的设置如下
最后给大家分享一下比较常用到了两个快捷键:ctrl+k 屏蔽选代码:
ctrl + shift +k 取消屏蔽 ;知道 这个的话对有些人刚从KEIL转型过来的可能比较快适应吧。
作者:sacq
题目:【MSP430 编译器使用经验】用IAR编译其实也可以很简单
2年前就开始学习430,又是安装CCS,又是不同版本的CCS,又是FET-MSP,操作过程复杂,学习进展缓慢。
去年底另外又装了IAR的430版,用了下,感觉大不一样,跑了430的大部分例程,几乎没什么障碍。还从例程中学到了不少东西,自己也学着编写一些简单的程序。 准备工作是在成功安装好IAR430版,下载了MSP430的有关例程。 另外,IAR的MCU已经选择正确,下载器驱动已经搞定,相关过程可参见《手把手教你使用 TI MSP430 LaunchPad》。 下面主要用截图记录编译例程的部分过程。 点开例程包里的文件夹C,先看看例程里有哪些程序吧,README文档里有详细的说明: 打开IAR,准备建立一个工程: 这两个选那个都行,感觉只有生成的文件名的后缀有区别(.c 或 .cpp) 不妨点开“C”后,再点“main”,再点OK 取好工程名后(.ewp),保存。 main.c文件里已经替我们写好了几行 用“记事本”打开感兴趣的例程,把文档全部复制下来,贴到刚才打开的main.c中的所有文档 贴进来了: 接下来,可以编译一下,有可能要求输入一个名称,不妨与刚才的一致,保存为.eww文件(可能是工作环境参数) 编译完毕: 如果接好430板,可以考虑下载了(点下图中绿色三角符号)。 (红色圆点是DEBUG) |
作者:sdrcust
题目:晒出我使用MSP430编译器的经验与技巧
刚接触IAR软件不久,下面发一些整理的图片,希望给初学者一点帮助和启示,软件的按照和破解就省略了 论坛有下载 http://bbs.eeworld.com.cn/forum. ... r%2B%2B430%2B%2B5.5 为减少文字说明,本人尽量在图片上作说明,网上也有大把教程可以参考;1 建立一个工程 file----new-----workplace
2 打开/新建工程
弹出如下框:
按下图中操作
继续
下图是使用中的一些快捷键,可以用用体会下;
下图是调试时遇到的情况(已解决)
下面是网上找到的几点贴出来:
1、更改注释字体的方式:在代码段点击右键,找到Options->Editor->Color and Fonts ,然后找到Syntax Coloring,再找到C++ comment和comment,然后将左侧的type Styles 改成 Normal 就可以了,还可以把注释的颜色改成绿色,这样更加适合我们的习惯。其次在这里还可以更改C或C++里面关键字的颜色。
2、显示行号:在代码段点击右键,找到Options->Editor,将右面的Show Line Numbers 勾选上就可以了。
3、设置Tab键:在代码段点击右键,找到Options->Editor,将上面的Tab Size设置为4,Index Size 也设置为4这样就可以实现直接按Tab键就可以缩写4个空格。
作者:qiushenghua
题目:使用CCS不愁找不到资料和例程
使用CCS有段时间了,刚接触430的时候,想必各位都会到处去找例程学习,找来的例程却不一定与自己选择的单片机或者开发工具相适应。我曾经就在某论坛花金币下载了所谓的“430ValueLine”的例程,下载下来却发现是G2211的,而我的单片机已经更新到G2553了。部分硬件不一致需要重新修改参数才能下载运行。最近在使用CCS的时候,发现其实不需要那么复杂,CCS自己就带有一个例程库和资料库,它支持的芯片基本上都有例程,相应的资料也在里面。当然,需要连接因特网才能使用,有些公司限制网络的就享受不到了。
这个资源库在CCS的View-Resource Explorer (Examples)下(见图1)。点开之后:
看到它分为MSP430ware和TI-RTOS for MSP430两个部分。TI-RTOS我暂时没能用到,这里主要讲讲MSP430ware。
展开MSP430ware,可以看到Devices、Development Tools 、和Libraries三个部分,我们从上往下依次看看:
首先,展开Devices,看到430全系列的单片机都在里面。展开我们熟悉的G2xx,看到用户指南User's Guide, 数据表Datasheets, 勘误表Erratasheets都在里面,全系列的都有。同时还有代码示例Code Examples和图形化示例程序Grace Examples。这里特别要提一下这几个文件,个人认为,编写代码的时候更需要参考用户指南User's Guide,数据表Datasheets是在选型时使用的,通过Datasheet我们可以知道芯片具体拥有一些什么资源,可以达到什么性能。但是在编写代码的时候,具体寄存器的定义和用法还需要看User's Guide才能知晓。
继续展开,开发板上的芯片是MSP430G2553,于是我们选择G2x53:
看到相关的例程都在里面,针对每个外设的不同用法,都会有多个相应的示例程序。这里我想看看片上温度传感器的用法,于是点击
msp430g2x33_adc10_03 ADC10, ADC10, Sample A10 Temp, Set P1.0 if Temp ++ ~2C
看到弹出对话框让我们选择使用的芯片。选好之后点OK,这个工程便会自动导入左侧的Project Explorer里。连上Launchpad,可以直接下载调试。当然也可以打开.c文件查看代码。TI官方的代码还是很有参考性的,一些低功耗特性都有体现。
当然,如果你只想学习C代码,或者汇编代码,也可以点上方的View C-Files或者View Assembler Files查看。
Grace的例程与之类似,在这里不作介绍,接下来我们看看Development Tools。
Development Tools顾名思义就是开发工具,展开可以看到我们熟悉的G2、5529、5969金刚狼都在里面
继续展开我们最熟悉的EXP430G2
看到里面资源包括使用指南、设计文件(原理图、Gerbers、BOM)应有尽有,甚至还有出厂IC自带的例程,不知道多少朋友因为当时不小心擦掉了片上的例程而后悔不迭,这下好了,不光程序回来了,还能看到人家是怎么写的。下面的Examples与Devices里的有重复,这里不作介绍。
当然,430BOOST的一些相关资料也在这里面,不多赘言。
最后我们看看430的库文件,和G2相关的主要有Capactive Touch Software Library触摸按键,Graphics Library图形库有提到G2,但是没有合适的外设也白搭。
另外还有一个IEC60730 Development Library居然支持G2553。看来一下这是一个关于可靠性的库,需要开发符合相应标准项目的朋友有福了。
使用其他系列单片机的朋友们也可以从这里找到适合自己的资源,而不必到处去搜索,费时费力还不一定找来的是自己需要的资料。作为一般开发,这个资源库里的东西已经够齐了!
作者:tianshuihu
题目:IAR软件仿真与算法优化
从接触单片机以来先后使用了Keil、IAR、CodeWarrior、CCS、Atmel studio...各种开发环境,各有优缺点
经过时间的洗礼,总的来说对Keil和IAR的印象最好!
Keil是最先接触到的编译器,界面十分美观、友好,软件仿真也很方便,但是不支持硬件仿真(传统51单片机),
另外51的内存太小,外设不够丰富,处理速度尤其是乘法运算的速度不够快,所以入门之后用的就比较少了
再说MSP430和IAR,第一次接触的430是149,没想到单片机居然可以做这么小,而且自带ADC、PWM、多路可中断IO等很实用的外设,并且其时钟源应用非常灵活,自带硬件乘法器....只需一次就深深的爱上她了
更让我惊喜的是其开发环境IAR居然把编译、链接、下载(或仿真)集合成一体,对于软件调试十分方便!并且其下载工具也十分丰富,并口或USB的JTAG下载器、BSL下载器等等
再后来TI推出了G2系列的LaunchPad,这块板子自带下载器,同时十分小巧,和IAR配合可以快速开发一下小的应用,从此这款LaunchPad几乎成了我实验桌里面必不可少的一块开发板!
下面说两个基于IAR开发LaunchPad的经验或者故事吧
1.利用软件仿真优化算法
单片机不像电脑有着强大的运算能力,所以应尽量优化算法,减少其运算量
TI 的官方参考例程利 "msp430x20x2_adc10_temp.c"中有用片内AD的第10通道采样热敏元件获得温度,有如下一段程序
long temp;
long IntDegC;
....
// oC = ((A10/1024)*1500mV)-986mV)*1/3.55mV = A10*423/1024 - 278
temp = ADC10MEM;
IntDegC = ((temp - 673) * 423) / 1024;
前面是两个变量的声明,后面是将AD量化的信号ADC10MEM装换成温度值IntDegC
其实long型的声明完全没必要,int已经够用(10位的AD),这里先不做探讨(或许设计者是为了保险起见,而我没发现其妙处)
下面说说优化
IntDegC = ((temp - 673) * 423) / 1024;
这条语句等效如下
等效一:
IntDegC= temp*0.4131-278.0068;
等效二:
temp = (temp - 673);
IntDegC= temp*0.4131;
修改完成之后,在Debug模式中选择 “Simulator”,可以模拟一下看看哪种方式更快、更准
编译之后,点击下载即可开始仿真,F11为单步执行,F10为执行当前行
图中标示的框3中“CCSTEP”可以看做是机器周期,每执行一步其值都会更新,并显示为红色
我分别试了3个初值,最终的运算结果3者相同,但是消耗的“CCSTEP”却不同,结果如下
ADC10MEM | 原始语句(CCSTEP) | 等效一(CCSTEP) | 等效二 |
678
|
570
|
728
|
576
|
700
|
604
|
708
|
556
|
789
|
632
|
688
|
541
|
从上表可以看出,整体来说等效二的处理方法更高效一点
当然,这里只是一个小小的改进,起到抛砖引玉的作用,期待大家能发现更多
PS.其实如果把long型的声明改为int的话,结果也是对的,并且原始语句仅需要200个CCSTEP即可获得正确的结果,而后面的两种等效消耗时间变化不大
这是因为long型(4字节)的乘法明显比int型(2字节)运算量大很多;而后面两种等效用到了浮点数的乘法,可比性不大
另外,一般来说比较精确的温度需要保留一位小数,这时等效一和等效二的优势就比较明显了,大家有兴趣可以对比一下,我就不再罗列了
2. 软件仿真获取精确的延时
经过上面的仿真就会发现同一个等式,初值不同时,运算消耗的时间是不一样的
但是有时候又想获得准确的延时,这时候软件仿真就可以派上用场了;
你只需把断点设到延时函数所在行,然后F10一下,即可得出该函数消耗的 CCSTEP
另外,需注意这个CCSTEP的时间为一个机器周期,即主时钟的一个周期,需要换算之后才能获得实际的延时
3. 软件仿真与硬件仿真
软仿真的好处是不依赖于硬件,当遇到问题时可以帮你判断是不是软件方面的问题,如果不是再从硬件方面着手去解决,免得面对问题无从下手
但是有时候,系统需要配合外设才能工作,那只能硬件仿真了,这时候断电的设置就很有用了......
最后再补充一下,软件仿真通过了,并不意味这硬件就能很好的工作!
比如有一天我发了几乎一个上午的时间去调试一个通讯的程序,发现有个指示灯总是莫名的闪烁,但是软件仿真看不出任何问题
最后翻出了原始的程序才发现我把第一行,关闭看门狗的程序弄丢了。。。哎,瞬间有种可笑不得的感觉
学习使用430好久了,今天小小的总结一下,思绪不够清晰,大家见谅!
附件是官方提供的利用内部AD测温源程序,有兴趣的可以试试
ADC10 仅在MSP430G2x53 器件上提供
作者:nwx8899
题目:【MSP430 编译器使用经验】+CCS GRACE的使用
如果使用低于5.2版本的CCS,可以独立安装grace,安装后能看到有一个像大写字母G的快捷方式
打开grace
如果安装的是v5.2版本,grace以一种工具的形式包含在ccs中。
File new ccs project
之后下面会多出一个grace project 如下图所示
Finish
之后会多出一个.cfg文件如图
点device overview 就可以对430单片机各个外部模块进行基本的配置,初始化过程都是图形化的,勾选就可以了。
下面只配置一下GPIO,一个简单的实验实现按下S2 /P1.3则LED1/ P1.0亮,不按则不亮。
点击上图中的PORT1,出现
再点击第三个标签,
通过下拉选项,按下图设置
点P1/P2,进行引脚详细设置
其实在这两个标签下设置都是相通的
至此 基本配置已经完成
点source就可以看到代码了
你的主函数你多了一个初始化函数CSL_INT();(就是你刚才要实现的实验)
点击DEBUG 下载即可。
作者:armcu
题目: IAR 环境下的函数定位加载(分散加载)方法
以MSP430AFE253为例分享IAR(5.5)环境下的函数定位方法
1、修改XCL配置文件
在IAR的安装目录 Tools\430\config下找到lnk430afe253.xcl文件,将其拷贝到当前工程目录下;
设置项目中链接文件的位置(将默认位置改为修改后lnk430afe253.xcl文件的存放位置),如下图所示:
打开 lnk430afe253.xcl 文件,找到 CODE 字段的定义,在其中添加以下语句:
// 在我的项目中需要将一段代码放置在地址 0xF000 起始位置处,故定义 MYCODE 代码段如下
-P(CODE)MYCODE=F000-F1FF
如下图示:
2、在代码中指定下载位置
共有两种写法可以实现函数的定位:
1)、void fun(void) @ "MYCODE"
{}
2)、
#pragma location = "MYCODE"
void fun(void)
{
}
另外,结束后要回复编译器默认的定位
#pragma location = "CODE"
3、下载后查看FLASH内容
代码示例:
#pragma location = "MYCODE"
void DefaultIO(void)
{
P1DIR = 0xFF;
P1OUT = BIT3;
P2SEL &= ~(BIT6 | BIT7);
P2DIR = 0xFF;
P2OUT = BIT0;
}
#pragma location = "CODE"
下载后memory内容截图:
作者:joywu
题目:工欲善其事、必先利其器之入门IAR
要用MS430实现你的各种设计、想法。熟练掌握一个或者多个IDE工具是必须的,平时使用IDE开发的时候大部分时间花在输入代码和查Bug,输入代码我们希望编译器把关键字突出显示,这样万一我写错了,可以及时发现,编译的时候看到编译结果可以迅速定位到相应的行,或者我要使用结构体,switch,等常用数据类型、语句的时候可以有个模板快速插入。
这篇文章要解决的就是上面的这些问题,帮助你快速定制你自己的IDE
没有定制之前,打开一个430的工程会是这样的,
定制之后上这样的,
关键字突出显示,字符串和字符、数字也可以明显区别开来,左侧开启行号显示。
首先把关键字显示设置下,在编辑窗口空白处右击,弹出常用菜单,点击最底下的Option,弹出设置窗口
在右侧把show line number 选项勾上就可以开启行号显示了。
然后点击并展开Edit项,在里面就可以设置关键字、字符串、字符、数字的显示颜色,字体等;
大家可以参考我的设置,平时在输入代码的过程,免不了会经常使用for语句,在IAR里面自带了for语句模板,我们可以很轻易的把整个for语句添加进来
同样上右击,弹出快捷菜单,选择 Insert Template(插入模板)
里面有if,也有for,还可以自己添加switch,while等常用的语句,在弹出的对话框里面填入参数即可
至此就完成了基本的编辑环境的设置,另外还有一个常用的技巧,按住Ctrl+滚轮可以对编辑窗口进行放大和缩小。
作者:数码小叶
题目:IAR以及CCS的正确安装
关于这两个软件的安装,论坛已经有很多的帖子了,大家可以自行搜索。但在实际使用过程中,发现还是有很多人安装不成功,表现为安装成功,但一编译就报错,可是检查下来,都会说我是按那个安装步骤来的啊,其实还是存在一些容易忽略的地方:
1:安装路径最好不能有中文,这个一般大家都知道;
2:关于IAR注册不成功的原因解释:
这个问题尤为常见,怎么注册大家都很清楚,关键就是很多人都注册不成功,自己也找不到原因,其实问题的根源出在win 7的UAC上(UAC(User Account Control,用户帐户控制)UAC 可以帮助防止恶意软件和间谍软件在未经许可的情况下在计算机上进行安装或对计算机进行更改,但同时,也给正常安装带来麻烦,所以安装的时候应该右键,然后点击“以管理员身份运行”
这样,你的软件注册信息才能生效,同样,在生成许可文件的时候,也别忘了“以管理员身份运行”。
3:ccs的安装报错:
很多人安装ccs都出现了下面的错误
这个错误其实也很简单,有两个原因,一个是你软件没下全,这个可能性一般不会出现;第二个就是杀毒软件捣鬼了,安装ccs之前应该关闭所有的杀毒软件
以及安全软件,如果你不放心可以拔掉网线,离线安装。这里有一点比较麻烦的是,安装瑞星和小红伞的可能要自己手动关闭相关安全进程。
关于ccs的第二点是License的安装,ccs可以申请免费版 License,论坛也有相关教程。
License的位置好多人不知道:
安装完后,要再次进入,把你的License勾上:
注意:License同样不能再中文路径下!!!这个一定要注意,见了太多人都是用的安装包路径,而安装包路径又有中文,结果使用过程中就是一直提示License错误。
作者:弋木夹子
题目:【MSP430 编译器使用经验】+ 基于快捷键的CCS小技巧
一开始用CCS时,会各种误触,然后就调不回去了,所以想到小技巧什么的,第一反应就是各种快捷键了,放上一些常用的快捷键吧,希望有所帮助
向上滚动一页 Page Up
向下滚动一页 Page Down
向上滚动一行 Ctrl + Up
向下滚动一行Ctrl + Down
选择文本 left Shift + left arrow
选择字符 right Shift + right arrow (最早的时候瞎按成字符模式,不知道怎么调回来只能退出···)
选择一个词 left Shift + Ctrl + left arrow
选择一个字 right Shift + Ctrl + right arrow
选择行 Shift + End
选择开始行 Shift + Home
全选 Ctrl + A
编译文件 Ctrl + F7
停止 Shift + F5
重置模拟器 Ctrl + Shift + R
连接或断开 Alt + C
移动到文件底 Ctrl + End
作者:霹雳之火
题目:IAR开发MSP430入门篇
IAR有针对很对种芯片的版本,比如针对ARM核的IAR for ARM. IAR for AVR是针对AVR单片机的,IAR for MSP430是针对TI出品的MSP430系列单片机的. 你需要根据你使用的芯片选择.
为了学习用,可以下载先尝试一个破解版的,我使用的是IAR for MSP430 5.5,找度娘就可以下载到,只有100M,相比其它上G的开发工具,已经很浓缩喽。
IAR是个优秀的IDE,可以让我们开发MSP430方便
闲话少说直接来体验IAR开发MSP430的过程
1 打开IAR embeded workbench
2 IAR打开的初始界面,下面将开始MSP430编程之旅
3 首先肯定需要新建一个工程
4 弹出对话框,选择c(当然也可以选择汇编了,不过新手还是先上c吧),如果选择c下的main,工程会自动帮你创建main.c
5 选择工程保存路径以及工程名,既然是新手就叫first吧,然后点击保存
6 弹出对话框选择确定,意思是会生成main.c(因为前面选择了)
7 展开左边的工程文件,可以看见已经有main.c了,并且帮我们关掉了看门狗
8 新建文件,如果是才文件最好先保存.c的格式,这样会有彩显,有的错误编程中容易发现(程序就不写了,新手可以参考官方例程)
9 将写好的c程序加入到工程中(为了便于管理,可以先建个组在加入)
10 接下来就是相关设置,在工程上右击鼠标选择options
11 在General Options下的device选择你的MSP430芯片对应的型号
12 再选择dedugger,在Driver的下拉菜单选中FET dedugger
13 在选中左边的FET debugger,在connection下选择你的烧写或调试工具,当然还有其它设置,这可以深入了再学习,选择OK
14 点击右上角的make,编译程序,接着你就可以直接烧写程序或者调试程序
结语:这就是IAR开发MSP430的整体框架,当然还有很多的知识要在不断地深入学习中,熟练掌握操作开发环境和配置开发环境的方法
作者:rowen800
题目:【MSP430 编译器使用经验】+ 技巧经验汇总
如果要使用MSP430进行开发,那么IAR是一个很好的开发环境,这里针对IAR,把一些经验技巧总结如下:
1、IAR的安装。这里我是用的破解,咱们只是用来学习,相信也不构成侵权吧?破解的方法网上找,不会的可以找我。
2、工程的建立。如下图:
点击“project”---"creat new project",就弹出如上图所示的页面,如果用C语言开发,就选C-main,点“OK”,提示保存,将工程保存到指定路径。
3、编译器的配置。
第2步完成后,会出现下图所示界面:
在右侧选中 test--debug,右键,选择“option”,来对工程进行配置。如下图:
(1)目标器件设置。首先选择general options ,target,来配置目标单片机,430所有系列单片机都在里面包括,选中正确的即可。“output”选项是用来选择输出是可执行文件或者是库函数,如果输出库函数给别人使用,别人就不会看到你的源代码。其它默认设置就行。
(2)编译优化。选中C/C++ compiler -----optimizations,如图,可看到有不同的优化level。其它默认设置。
(3)编译器显示设置。选择工具栏tools---options,打开如下图所示界面,在这里可以设置字体颜色,快捷键、语法高亮等,大家可以根据个人爱好来选择。
作者:鲜果
题目:【MSP430 编译器使用经验】IAR自学经验和收获
本人也是新手一枚,只能谈谈自己的学习经验和收获~ 关键名词:MSP430F149,IAR,C语言 进入IAR,在file里面新建一个workspace,然后在project里creat new project,选择C语言 main函数,再自己命名保存 就新建ok了! 改成如下就开始程序生活啦~同时还要一边复习C语言!!! Some Tips: 1.记得关闭看门狗啊(新手有一次忘记关看门狗,就出错了!)。 2.生成一些头文件可使主程序调理清晰,更方便测试修改。 3. 添加 #include<stdio.h> sprintf函数非常好用 sprintf(c,"%g",s); //就是把s的值放在数组c中按%g格式输出 另外还可以整型%d,浮点型%f,等等 //%g可以输出小数(保留6位有效数字)或整数,末尾自动去无效零,解决了小数输出的问题 // sprintf(c,"Result=%g",s)还可以这样哦!及其方便哦~ 4.仿真的时候这个千万不能忘诶··· 最后 祝大家都在学习和生活中进步,每日都有新收获! 祝自己天天向上! |
QQ图片20140801104451.jpg (13.15 KB, 下载次数: 1)
作者:youluo
题目:【MSP430 编译器使用经验】+教你如何用IAR入门430
安装IAR后需要破解。至于如何破解相信网上很多资料。可以下载一个注册机。然后就行了,如果你没破解就算程序完全对的编译也不会通过的。
先打开IAR软件。之后。NEW-》workspace 点击project ->creat new project.这里我们选择430 c->main 如下图所示。
点击OK弹出如下界面。保存在自己新建的文件夹下。
在左边框内右键选择OPTION。填出对话框如下。
点击general options ,,在device里面选择自己用的是那种430.、
然后点击debugger 在driver里面选择。如果是模拟就选simulator.如果是下板子的就选FET.
点击FET debugger .这里根据仿真器选择。我用的是usb仿真器。就选择teax instrument usb IF.如图。
点击OK之后然后就可以在MAIN.C里面进行编程了。编译通过之后可以点击上面工具栏那里有个绿色的按钮就是调试的。另外关于如何添加c。h 文件日后再详细补上来。
作者:Rufer
题目:【MSP430 编译器使用经验】CCS代码编辑的几个常用设置
第一次发帖,分享几个我觉得比较常用的CCS代码编辑设置
1、代码的折叠
代码写多了很长,不方便查看,这时可以右键单击行号左边任意空白处,在弹出的菜单中选择Folding-->Enable Folding,这时每个函数名字的左边便出现了一个折叠的符号,可以进行函数的折叠,如图:
代码折叠后:
2、代码的自动批量注释
一般的编译器都有这个功能,我大CCS怎能没有?直接上快捷键,选中要注释的代码行,同时按下“CTRL”键和“/” 键,取消注释也是同样的按键,此为"//"的注释方式,"/**/"的注释方式快捷键为"CTRL+Shift+/",取消注释为"CTRL+Shift+\",不知道为什么CCS不把它设置为同一个
3、代码的格式化
快捷键为"CTRL+Shift+F"(没反应的话可能是搜狗输入法快捷键的冲突,在搜狗输入法的设置中将对应冲突的快捷键修改一下或者直接屏蔽即可),而代码的格式化设置在Windows-->Preference-->C/C++-->Code Style-->Formatter设置,默认有4种代码格式风格选择,我们也可以按"New.."添加自己的代码格式风格,如图:
作者:hanskying666
题目:【MSP430 编译器使用经验】+IAR基础应用篇
从接触单片机开始就使用MSP430,编译环境使用的是IAR,记得型号是MSP430F2012,这款单片机就十几个引脚,片上资源也很少,其实当时刚刚接触单片机对什么片上资源也没有什么概念,现在用了149,169,1611,427,449,5438等系列的单片机后才对系统的资源有了清晰的认识,在这想和大家分享几点使用心得: (1)比如最基本的RAM,RAM包括,你在工程中定义的全局变量,堆栈占用的空间,已经固定的寄存器占用一部分,大体分为这三个部分,其实在初学时候很容易忽略一点就是修改IAR编译器的堆栈大小,当写的一个函数使用了较多的局部变量时,消耗的堆栈资源过多,会造成堆栈溢出的现象,程序跑飞,单片机重启等等,较多难排除的现象。下面是IAR设置单片机堆栈的大小,如果以后有童鞋碰到类似的地方记得预估一下自己局部变量的多少,适当的开辟相应的堆栈大小。 (2)还有一点是,如果你定义了较大的数组,其实MSP430在启动的时候是要初始化这些数组的,如果数组定义过大会造成时间超过看门狗时间造成程序跑飞的现象,因此需要在初始化这些数组之前将看门狗关掉,注意不是IAR中main函数的关闭看门狗,是汇编中的关闭看门狗哦。 (3)IAR_430编辑界面虚线左移修改方法,有时候IAR编译器的编辑界面虚线会移动到靠左边的位置,编程界面很难看,按照下图做法即可改变过来。 |
作者:陌路绝途
题目:【MSP430 编译器使用经验】+IAR头文件添加技巧
作者:FireLife
题目:【MSP430 编译器使用经验】+IAR软件仿真
利用IAR软件进行仿真的时候,很多新手可能会遇到这种错去提示(图片1),这个时候,大家不需要设置其他的什么。如果你用的是IAR的话,那么你只需要在编译环境中你所建的工程文件上单击右键,选择option,然后设置里面的linker就行了。如果你要仿真择将output选择为生成debug information for C-SPY,如果想把写好的工程进行编译,下载到单片机中,那么你就要将这里的output设置成other-------即生成 .txt的文件(下载单片机的文件就是他)。对于新手,不建议使用仿真。本人的比较倾向于,下载程序到单片机,观察现象,再结合程序分析程序是否有问题,或者程序应该怎样修改。 另外分享一点我写程序的经验,我一般是先华一定的时间,将实现的功能,以及所要利用的算法,接口等都列出来,并在大脑中想好程序的大体结构,在开始编写程序。一般先按照自己所想的功能,将程序分为多个模块进行编写(即使有些不会写,也将框架写好,留下空白,等整个程序框架搭好后再来填空)。尽量将一些常用的功能写成文件的形式,方便以后调用,我比较偏向于将一个大的功能分成几个小的功能,然后将小的功能又分为不同的函数进行编写,最后将能够合并在一起的合并到一起,尽量优化程序的结构。 纯属个人看法,仅供参考,谢谢!!! |
作者:kaisy
题目:【MSP430 编译器使用经验】+IAR
1、首先打开IAR软件,其开发界面如下:
2、新建工程:点击界面左上角的File〈New〈File,之后会出现下面的界面:
3、保存新建的工程,根据自己的需要选择工程保存的位置,以及为该工程命名。
4、接下来就可以为自己的工程编写代码了。
在使用该软件的工程中,要注意以下一些问题:
1、在打开IAR工程时,要注意选择合适的IAR软件的版本,否则会出现一些问题。经验告诉我:当工程是在IAR 5.5版本中建立时,如果使用IAR 6.3打开它,便会产生一些问题,所以需要先使用notepad++或者一些其他的文本工具来打开那些(*.ewp)文件,通过在该文件中查找ProductVersion(请注意查找时选择非全词匹配)的一些信息,来选择合适的IAR版本软件,如下所示:
如果有关ProductVersion的信息如下:
<option>
<name>OGProductVersion</name>
<state>7.20.1.7306</state>
</option>
<option>
<name>OGLastSavedByProductVersion</name>
<state>7.10.3.6927</state>
</option>
那么就要使用IAR 7.2版本的软件来打开这些工程文件。同理可根据需要选择其他版本的软件。
2、当用IAR软件进行仿真的过程中,如果想要知道运行周期,通常需要执行下面这两步:
(1)、当然需要打开软件进行仿真了,界面如下(注意下图中的圈圈):
(2)、当执行仿真操作后,就需要打开菜单view〈register simulator〈function profiler,接下来 就可以查看到函数执行的周期数 和 程序执行周期数,当然我们也是可以结合断点来得到想要了解的运行周期数,这部分的界面如下所示:
3、使用该软件的过程中,要记一下一些快捷键,对开发很有帮助的,当然记住的前提就是多练习啦。
CTRL+B 括号匹配,片选择代码
CTRL+F Find快捷键
CTRL+SHIFT+F Find in Files快捷键
CTRL+K 快速注释,屏蔽选中的代码,就是自动加上“//”CTRL+T 自动缩进,格式化选中的代码,格式在TOOLS->OPTIONS->EDITER->Auto Indent->CONFIGS
4、可以在最后生成的.MAP文件中查看编译过程中的一些信息。
作者:muxb
题目:【MSP430 编译器使用经验】+ IAR配置经验分享
首先打开MSP430的工程,右键打开工程选项'Option',点击Linker选项如下图:
再打开config标签,设置Linker command file 栏, 勾选“ Override defalt”,在下面的选择框中选择自己的配置文件(.icf文件)。
在配置文件中,可以自己配置ROM大小和RAM大小,以及堆栈大小,下面是我的部分配置文件:
这里定义ROM大小:
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x00040000;
define symbol __ICFEDIT_region_ROM_end__ = 0x00080000;
这里定义堆栈的大小:
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x100;
define symbol __ICFEDIT_size_heap__ = 0x200;
/**** End of ICF editor section. ###ICF###*/
在这里定义RAM空间大小:
define symbol __region_RAM2_start__ = 0x20001000;
define symbol __region_RAM2_end__ = 0x20008000;
define exported symbol __VECTOR_TABLE = 0x00000000;
define exported symbol __BOOT_STACK_ADDRESS = __region_RAM2_end__ - 8; //0x20007FF8;
为了方便调试,可以修改RAM空间大小和堆栈大小已适用我们的程序,个人觉得比较方便,所以分享给大家,希望对大家有帮助。
作者:Sur
题目:关于IAR的仿真器链接问题
1、首先打开一个工程
2、鼠标移至工程文件处,右击,单击options…
3、在Category中选择FETDebugger
4、在Connection中单击”…” 会出现USBSelection,这样你就可以通过该窗口查看到是否连接正常。如果看到COM就是仿真器链接是正常的,这样就不是板子的问题。如果没有看到COM的话,恭喜您可以继续往下面看了
如果没有看到COM的话,可能是如下问题导致的
一、有时候会出现USB线的问题,大家请注意下,部分不是正版的仿真器可能存在着USB接口与线连接不紧密的情况,这时候可以换个USB线试试
二、仿真器的问题:
1、可能会出现升级后不能使用的情况,这时候可以使用CCS自带的降级功能来将仿真器恢复到升级前的版本。
2、仿真器故障(可自行修复的故障),直接重新断电重启即可。
3、十有八九您的仿真器坏了,可以去再买一个了。
三、还有一个极其悲剧的可能,您的软件有问题
1、没有安装正版
2、没有激活
3、没有使用管理员身份运行(貌似好像也没多大关系)
作者:Sur
题目:【MSP430 编译器使用经验】+在CCS中一些简单的小技巧
在编程时,我们会发现有很多很多我们需要注释的地方,如何来注释相信大家都知道,只是如何便捷快速的来注释,可能部分朋友对CCS中的快捷键还有一些不清楚的地方,现在为大家带来一部分TI的CCS中的快捷键介绍,希望能够帮助到大家。
1、Ctrl+/ 是用“//”注释所选的语句,再次按时可以取消,介绍了“//”当然不能忘记“/*”和“*/”。
2、Ctrl+Shift+/ 添加块状注释
当然我们可以使用Ctrl+Shift+\来取消上面的注释
如果我们想把语句左移和右移应该怎么做呢--〉首先选择相应的语句--〉然后按Shift+Tab就可以实现左移,但是如有要右移呢,我们可以这样做:--〉选择需要操作的语句--〉右击--〉点击Source--〉点击Shift Right。
作者:Sur
题目:【MSP430 编译器使用经验】+CCS 之排版功能
对于程序员来说,或者对于电脑使用者来说,快捷键往往决定着工作效率的高低,一个人知道Ctrl+C和Ctrl+V的人的工作效率肯定要比只知道右击-〉复制-〉右击-〉粘贴的人要高。下面来为大家介绍下CCS中的一个非常实用的快捷键。那就是ctrl+shift+F。
应用情景:大家有没有遇到,使用CCS时代码界面很乱的时候啊,这个时候大家都怎么弄的呢,是一行行对其还是快捷键呢。
下面我们来为大家介绍下CCS 5中类似visual c++的Alt+F8快速排版、对齐的功能
那就是Ctrl+A来全选,然后右击——〉进入Source子菜单--〉Format,里面还有更多的功能。