日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] IAR編譯器配置(AVR)一、EEPROM 區(qū)域數(shù)據(jù)存儲:__eeprom unsigned char a;//定義一個變量存放在EEPROM空間__eeprom unsigned char a @ 0x8;//定義一個變量存放在EEPROM空間0X08單元__eeprom unsigned ch

 

IAR編譯器配置(AVR)

一、EEPROM 區(qū)域數(shù)據(jù)存儲:
__eeprom unsigned char a;//定義一個變量存放在EEPROM空間
__eeprom unsigned char a @ 0x8;//定義一個變量存放在EEPROM空間0X08單元
__eeprom unsigned char p[] @ 0x22//定義一個數(shù)組存放在EEPROM空間,開始地址為0X22單元
__eeprom unsigned char a @ 0x08=9;//定義一個常數(shù)存放在EEPROM空間0X08單元
__eeprom unsigned char p[] @0x22={1,2,3,4,5,6,7,8};
EEPROM操作宏取函數(shù):在comp_a90.h intrinsics.h頭文件里有詳細(xì)說明。

自動生成.eep文件置:在Project->Options->linker->config>的linker command line中觀察該P(yáng)roject使用了哪個XCL文件 。本文使用M8編譯,使用文件是”TOOLKIT_DIR$\src\template\cfgm8.xcl”-Ointel-extended,(CODE)=.hex
-Ointel-extended,(XDATA)=.eep


二、FLASH 區(qū)域數(shù)據(jù)存儲:
用關(guān)鍵字__flash 控制來存放, __ flash 關(guān)鍵字寫在數(shù)據(jù)類型前后效果一樣
__flash unsigned char a @ 0x8;//定義變量存放在flash 空間0X08單元__flash
unsigned char p[] @ 0x22//定義數(shù)組存放在flash 空間,開始地址為0X22單元
__flash unsigned char a @ 0x08=9;//定義常數(shù)存放在flash 空間0X08單元
__flash unsigned char p[] @ 0x22={1,2,3,4,5,6,7,8};

unsigned int __flash * p;//定義個指向flash 空間地址的指針,16位。
unsigned int __farflash * p;//定義指向flash 空間地址的指針,24位。
__flash unsigned char * p; //定義指向SARMM空間地址的指針,指針本身存放在flash 中。
flash 操作宏函數(shù):在comp_a90.h intrinsics.h頭文件里有詳細(xì)說明


三、IAR編譯器對位的支持更強(qiáng)大:
PORTB_ Bit2=1; //置PORTB的第2位=1
PORTC_Bit4=PORTB_Bit2;//把PORTB的第2位傳送到PORTC的第4位


四、頭文件
avr_macros.h里面包含了讀寫16位寄存器的簡化書寫,和幾個位操作函數(shù)
comp_a90.h對大量的內(nèi)在函數(shù)做了簡要書寫,flash 操作宏函數(shù)
ina90.h包含"inavr.h" "comp_A90.h"文件
intrinsics.h內(nèi)在函數(shù)提供最簡單的操作處理器底層特征。休眠,看門狗,F(xiàn)LASH函數(shù)。
iomacro.H I/O寄存器定義文件樣本。

#include
#include
#include
#include
#include
#include
#include
#include
#include

 

五、extra options
1、GP-system-Data stack :0xff //堆棧大小設(shè)置
2、C/C++-Preprocessor:$PROJ_DIR$\headers\ //頭文件定位
C/C++-extra Option: --string_literals_in_flash //定義字符串在flash空間
3、Linker-Extra Option:

-Ointel-extended,(XDATA)=.eep
-Ointel-extended,(CODE)=.A90
-Ointel-extended,(CODE)=.hex
5、與ICC編譯器兼容宏定義

#ifndef __ICCAVR__
#define __ICCAVR__
#endif

#ifndef BIT
#define BIT(x) (1 << (x))
#endif
#define NOP() __no_operation() //asm("nop")
#define CLI() __disable_interrupt() //asm("cli")
#define SEI() __enable_interrupt() //asm("sei")

#pragma language=extended
#ifndef ENABLE_BIT_DEFINITIONS
#define ENABLE_BIT_DEFINITIONS
#endif

 

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉