MSP430常见问题之指令系统类

简介: Q1. IAR中怎样描述P2OUT.3脚,#define LCD_cs1 P2OUT.3; 对吗?A1:430 不能位寻址,所以一般的位操作,都通过“与”来作用。#define LCD_cs1 (P2OUT&BIT3 )。

Q1. IAR中怎样描述P2OUT.3脚,#define LCD_cs1 P2OUT.3; 对吗?
A1:430 不能位寻址,所以一般的位操作,都通过“与”来作用。#define LCD_cs1 (P2OUT&BIT3 )。

Q2.__intrinsic是什么意思
A2:本征函数,不是C语言标准库,而是和MSP430汇编直接对应的函数,比如:
_NOP()
_EINT()
LPM0
引用msp430xxxx.h,默认引用的头文件

Q3:在程序里循环调用了sprintf函数,当循环了几次后程序就跑飞了,是堆栈大小不够吗?还有sprintf到底需要多大的堆栈,单步走了下,发现它使用堆栈都不是连续的?
A3:有可能是的sprintf 函数堆栈数据把跳转地址挤掉,可以调开堆栈看一下。

Q4:数据类型Small,Medium,Large的区别,以及怎么访问大于0X10000的地址空间?数据放在大于0X10000的地址空间中,怎么去访问?同时Small,Medium,Large 在何处可以体现它们的区别?
A4: 可以访问。值得注意的是option 里的General Option 选项内的数据类型得选择Large,程序大小,RAM使用,运行速度都不一样。
1.F5XX 430X
2.选择Large small medium 产生效果是改变指针变量所占字节个数.IAR 中指针变量默认2 个字节,选择large
占用4 个字节,那么指针就可以访问超过64K范围的地址.
3.可以采用IAR 内部函数, */
void __data20_write_char (unsigned long __addr,
unsigned char __value);
void __data20_write_short(unsigned long __addr,
unsigned short __value);
void __data20_write_long (unsigned long __addr,
unsigned long __value);
unsigned char __data20_read_char (unsigned long __addr);
unsigned long __data20_read_long (unsigned long __addr);

Q5:浮点数运算问题,既然2.2A编译器能实现64浮点位运算,那么它的运算程序在哪个文档里。
A5:要使用64位的浮点运算需要设置编译器首先选择project->option->general->target->dou××e floating point size选中"64"再选择project->option->XLINK->include->library->cl430d.r43用c++的朋友要选择dl430d.r43库建议用整型数进行运算,比如像开方,64 位浮点数要用几十毫秒,而整型数随数据大小只要几微秒到几毫秒不等。

Q6:局部变量的问题,在中断服务程序中开中断响应其他中断,发现中断服务中定义的局部变量老被改动,换成全局变量没问题。想问一下这是啥原因?还想问一下c编程过程中应注意的细节?
A6:局部变量只是暂存变量,一般编译器会使用通用寄存器来保存这个变量值,汇编编程的话需要圧栈操作,C语言编程的话建议把变量申明为全局或者静态。

相关文章
|
3月前
|
Web App开发 安全 前端开发
构建安全可靠的系统:第二十一章到附录 A
构建安全可靠的系统:第二十一章到附录 A
XV-440-10TVB-1-20 规范并创建了通用模块产品理念
XV-440-10TVB-1-20 规范并创建了通用模块产品理念
155 0
XV-440-10TVB-1-20 规范并创建了通用模块产品理念
|
C语言 Perl
西门子S7-200 SMART位逻辑指令概述及应用实例
本篇文章我们来学习西门子S7-200 SMART的位逻辑指令。
西门子S7-200 SMART位逻辑指令概述及应用实例
|
C语言 Perl
西门子S7-200 SMART位逻辑指令概述及应用举例
本篇文章我来带领大家学习西门子S7-200 SMART的位逻辑指令。位逻辑指令是PLC编程中最基本、使用最频繁的指令,按不同的功能和用途具有不同的形式,总的来说可以分为下述几大类:标准位逻辑指令、置位/复位指令、立即位逻辑指令、其他位逻辑指令。
西门子S7-200 SMART位逻辑指令概述及应用举例
|
存储 数据采集 缓存
第九章 FPGA至简设计法规范
第九章 FPGA至简设计法规范
152 0
第九章 FPGA至简设计法规范
|
芯片
74HC595芯片的IO扩展(串转并)实验(包含硬件原理和软件编程解析和代码)
74HC595芯片的IO扩展(串转并)实验(包含硬件原理和软件编程解析和代码)
272 1
74HC595芯片的IO扩展(串转并)实验(包含硬件原理和软件编程解析和代码)
|
IDE 开发工具
RISC-V MCU开发 (十一):跨内核工程转换
大多数嵌入式工程师使用Keil进行开发,但Keil目前不支持RISC-V内核,只支持ARM内核。MounRiver® Studio(MRS)同时支持两种内核,为了方便工程师从ARM内核迁移至RISC-V内核,MRS增加了Keil工程转换的功能。
RISC-V MCU开发 (十一):跨内核工程转换
MIPS R6架构现已可供开放使用
MIPS在继去年年底宣布开源后,MIPS 32位和64位架构的最新版本已于3月28日推出了,在MIPS Open网页可供任何人下载使用。那么,今天在MIPS Open上下载的具体内容是什么?第一个版本包括:32和64位MIPS指令集架构(ISA)的开源版本,版本6MIPS SIMD扩展MIPS DSP扩展MIPS多线程MIPS MCUmicroMIPS代码压缩MIPS虚拟化MIPS Open还提供其第一套“可交付成果”。
2112 0