网站大量收购闲置独家精品文档,联系QQ:2885784924

AVR-libc 参考手册(带书签).pdf

  1. 1、本文档共113页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AVR-libc 参考手册(带书签)

avr-libc 参考手册 1.4.4 Generated by Doxygen 1.4.6 Thu Apr 20 23:34:14 2006 翻译:杨子江 2007-2-1 6 avr-libc 模块文件 6 avr-libc 模块文件 6 avr-libc 模块文件 6.1 assert.h: 诊断 6.1.1 详细描述 #include assert.h 这个头文件定义了调试的帮助。 由于使用本库的许多应用程序没有标准错误输出流可供使用,默认情况下不允许产生一 个可打印的错误信息。应用程序在包含头文件assert.h之前定义宏 __ASSERT_USE_STDERR 错误信息才会被生成。默认情况下,只有调用abort()才会挂起应用程序。 定义 #define assert(expression) 参数: expression 对表达式进行测试。 宏assert()测试给定的参数expression,如果结果为假,调用assert() 的进程将被终止。一 条诊断信息写入stderr 并且调用函数abort(),可以有效终止程序。 如果expression 为真,宏assert()不进行任何操作。 如果编译时定义了宏NDEBUG (例如使用编译器选项-DNDEBUG ),则宏assert()将会 被忽略。 6.2 avr/boot.h:Bootloader 功能支持 6.2.1 详细描述 #include avr/io.h #include avr/boot.h 这个模块定义的宏提供C 语言的接口支持某些AVR 单片机的Bootloader 功能。这些宏 设计为可在所有不同大小的Flash 存储器下工作。 注意: –9 – 6 avr-libc 模块文件 不是所有的AVR 单片机都提供bootloader 支持。详情请查看AVR 单片机的数据手册。 Todo 来自Marek 的Email:小型器件(除了ATmega64/128) ,__SPM_REG 是在I/O 空间中,使用”in” 和”out”指令可以生成较短的代码- 由于bootloader 空间有限,这可能是一个重要的优化方法。 API 用法示例 下面的代码显示了boot API 的典型用法。 #include inttypes.h #include avr/interrupt.h #include avr/pgmspace.h void boot_program_page (uint32_t page, uint8_t *buf) { uint16_t i; uint8_t sreg; //关中断 sreg = SREG; cli(); eeprom_busy_wait (); boot_page_erase (page); boot_spm_busy_wait (); //等待Flash 擦除结束 for (i=0; iSPM_PAGESIZE; i+=2) { //将数据转换成小端模式 uint16_tw=*buf++;w+=(*buf++)8; boot_page_fill (page + i, w); } boot_page_write (page); //

您可能关注的文档

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档