avr-libc 参考手册(带书签)

avr-libc 参考手册(带书签)

ID:8231211

大小:527.07 KB

页数:113页

时间:2018-03-11

avr-libc 参考手册(带书签)_第1页
avr-libc 参考手册(带书签)_第2页
avr-libc 参考手册(带书签)_第3页
avr-libc 参考手册(带书签)_第4页
avr-libc 参考手册(带书签)_第5页
资源描述:

《avr-libc 参考手册(带书签)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、avr-libc参考手册1.4.4GeneratedbyDoxygen1.4.6ThuApr2023:34:142006翻译:杨子江2007-2-16avr-libc模块文件6avr-libc模块文件6.1:诊断6.1.1详细描述#include这个头文件定义了调试的帮助。由于使用本库的许多应用程序没有标准错误输出流可供使用,默认情况下不允许产生一个可打印的错误信息。应用程序在包含头文件之前定义宏__ASSERT_USE_STDERR错误信息才会被生成。默认情况下,只有调用abort()才会挂起应用程序。ò定义#definea

2、ssert(expression)参数:expression对表达式进行测试。宏assert()测试给定的参数expression,如果结果为假,调用assert()的进程将被终止。一条诊断信息写入stderr并且调用函数abort(),可以有效终止程序。如果expression为真,宏assert()不进行任何操作。如果编译时定义了宏NDEBUG(例如使用编译器选项-DNDEBUG),则宏assert()将会被忽略。6.2:Bootloader功能支持6.2.1详细描述#include#include这个模块定义的宏

3、提供C语言的接口支持某些AVR单片机的Bootloader功能。这些宏设计为可在所有不同大小的Flash存储器下工作。注意:–9–6avr-libc模块文件不是所有的AVR单片机都提供bootloader支持。详情请查看AVR单片机的数据手册。Todo来自Marek的Email:小型器件(除了ATmega64/128),__SPM_REG是在I/O空间中,使用”in”和”out”指令可以生成较短的代码-由于bootloader空间有限,这可能是一个重要的优化方法。òAPI用法示例下面的代码显示了bootAPI的典型用法。#include#include

4、interrupt.h>#includevoidboot_program_page(uint32_tpage,uint8_t*buf){uint16_ti;uint8_tsreg;//关中断sreg=SREG;cli();eeprom_busy_wait();boot_page_erase(page);boot_spm_busy_wait();//等待Flash擦除结束for(i=0;i

5、,w);}boot_page_write(page);//在Flash页存储缓冲数据boot_spm_busy_wait();//等待Flash写入结//再使能RWW-section//如果要在引导装入后跳转到应用程序需要这样操作boot_rww_enable();//重开中断(如果中断原来是打开的)SREG=sreg;}–10–6avr-libc模块文件ò定义#defineBOOTLOADER_SECTION__attribute__((section(“.bootloader”)))#defineboot_spm_interrupt_enable()(__SPM_REG

6、=(uin

7、t8_t)_BV(SPMIE))#defineboot_spm_interrupt_disable()(__SPM_REG&=(uint8_t)∼_BV(SPMIE))#defineboot_is_spm_interrupt()(__SPM_REG&(uint8_t)_BV(SPMIE))#defineboot_rww_busy()(__SPM_REG&(uint8_t)_BV(__COMMON_ASB))#defineboot_spm_busy()(__SPM_REG&(uint8_t)_BV(SPMEN))#defineboot_spm_busy_wait()do{}while(b

8、oot_spm_busy())#defineGET_LOW_FUSE_BITS(0x0000)#defineGET_LOCK_BITS(0x0001)#defineGET_EXTENDED_FUSE_BITS(0x0002)#defineGET_HIGH_FUSE_BITS(0x0003)#defineboot_lock_fuse_bits_get(address)#defineboot_page_fill(address,data)__boo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。