### Dynamic C 编程——基于Rabbit 产品的开发 #### Dynamic C 版本的历史发展 在探讨基于Rabbit产品的Dynamic C编程之前,我们先来了解一下Dynamic C的不同版本及其历史发展情况: - **Dynamic C Premier for Rabbit 2000/3000**:这是针对Rabbit 2000和3000系列微控制器优化的高级版本,提供了丰富的库支持和先进的编程特性。 - **Dynamic C SE for Rabbit 2000/3000**:精简版,适用于对成本敏感的应用场景,在保持核心功能的同时去除了某些高级特性。 - **Dynamic C 32 for Z180**:专门针对Z180系列处理器设计的版本,支持更多的硬件资源和高级功能。 #### 从硬件入手:了解Rabbit 2000/3000 Rabbit 2000/3000作为一款高性能8位CPU,相较于传统的Z180有以下改进和提升: - **集成外部设备**:集成了多种外设,减少了外部硬件的需求,提高了系统的整体性能。 - **更高的运行速度**:运行频率高达29.49 MHz,远高于其他同类产品如Zilog Z180的24.58 MHz。 - **实时时钟和Watchdog定时器**:内置了实时时钟和Watchdog定时器,增强了系统的可靠性和稳定性。 - **通信接口**:具备4至6个串行接口,支持灵活的通信方式。 - **定时器资源**:拥有5个8位定时器和2个10位定时器,满足不同应用场景下的计时需求。 - **中断处理**:支持4级中断,提高了系统的响应速度和实时性。 - **远程下载和启动**:支持通过网络进行远程下载和启动,方便了系统的更新维护。 #### Rabbit 2000 计算能力对比 | 测试项 | AMD188ES @36.86MHz | Phillips 80C51 @33.18MHz | Dallas DS80C320 @33.18MHz | Zilog Z180 @24.58MHz | *Rabbit 2000 @29.49MHz | |-----------------|---------------------|---------------------------|---------------------------|----------------------|-------------------------| | Sine | 804 | 1112 | 452 | 1238 | 94μs | | Square Root | 355 | 805 | 334 | 343 | 32μs | | Multiply | 194 | 78 | 32 | 26 | 9.6μs | | Add | | | | | | 从上表可以看出,Rabbit 2000 在计算性能方面表现出色,特别是在乘法运算和平方根运算中优势明显。 #### Dynamic C 的增强特性 - **丰富的库函数**:提供了一系列内置的库函数,简化了编程过程。 - **函数链**:允许将多个函数链接起来执行,提高了代码的复用性。 - **协程(Costatement/Cofunction)**:支持简单的多任务处理机制,能够实现协同任务间的切换。 - **切片(Slice)、Waitfor() 和 Waitfordone()**:这些特性使得抢占式多任务调度更为简便。 - **内存布局控制**:可以精确地控制数据和代码在内存中的位置。 - **变量共享保护**:通过`Shared`关键字保护变量免受意外修改。 - **重置保护**:使用`Protected`关键字保护变量在系统重置时不会丢失。 - **异常处理**:支持128个用户定义的异常处理和128个系统级别的异常处理。 #### Dynamic C 的差异性特点 - **变量初始化**:在初始化赋值时,变量会自动变为常量(const),可通过`#GLOBAL_INIT`进行调整。 - **变量默认属性**:变量默认为静态(static),可以通过`#classauto`进行调整。 - **不支持bit字段**:不支持C语言中的`bit`字段。 - **无register关键字**:不支持`register`关键字,意味着所有变量均按普通变量处理。 - **函数指针参数不检查**:编译器不会检查函数指针的参数类型。 - **使用`#use`替代`#include`**:使用`#use`指令替代传统C语言中的`#include`指令,并支持一些特殊的宏定义。 - **`sizeof()`运算符**:在`sizeof()`运算符中,表达式会被计算出来。 #### 用户自定义库 - **`#use`指令**:用于引入用户自定义库。 - **库路径管理**:通过`LIB.DIR`文件或用户指定的`.dir`文件管理库的路径。 - **模块化结构**:每个库函数都有一个关键的模块定义(`Module`)、头部文件(`theheader`)和主体(`thebody`)。 #### 系统支持文件 - **`DCW.CFG`**:系统配置文件。 - **`DC.HH`**:定义了基本的数据类型。 - **`LIB.DIR`**:包含库的路径信息。 - **`DEFAULT.H`**:定义了特定产品的宏。 #### 编译器/编辑器简介 - **Reset流程**:系统复位后,首先执行`DTRReset`,随后加载`Coldload.bin`,最后加载`Polite.bin`。 - **BIOS功能**:为应用程序提供低级服务,初始化系统,与Dynamic C进行通讯,并配置存储空间。 - **运行模式**:支持调试模式和非调试模式,以及轮询模式等。 #### 更进一步 - **内存管理**:基于μC/OS-Ⅱ系统的应用开发中,Dynamic C 提供了高效的内存管理方案。 - **文件系统支持**:支持多种文件系统,例如FAT12/FAT16/FAT32等。 - **网络编程**:利用zConsole函数库实现TCP/IP协议栈的功能。 - **串口编程**:提供丰富的API进行串口通信。 - **I2C/SPI总线编程**:支持I2C和SPI总线通信。 - **加密算法**:包括FFT、AES等算法库的使用。 Dynamic C 编程是一种专为嵌入式系统设计的编程语言,特别适用于基于Rabbit微控制器的产品开发。它不仅提供了强大的硬件访问能力,还具有丰富的库支持和先进的编程特性,极大地提高了开发效率和程序的可靠性。


















剩余56页未读,继续阅读

- wg66892014-04-07不错的资料 虽然是介绍性质的
- junson_y2011-10-26只是用ppt介绍一下概念性的东西,不够深入,只够了解了解

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 网络环境下教育教学的探索与实施.docx
- Ahdqyln计算机专业大学本科方案设计书(网络).doc
- 数据库课程设计(实例-).doc
- 单片机万年历电子钟方案设计书报告含电路图和源程序.doc
- 2010年9月全国计算机等级测验二级笔试试卷C语言程序设计.docx
- workerman-PHP资源
- 计算机软件应用与发展分析.docx
- 麻村砂石加工系统安全渡汛措施.doc
- 论网络环境中的图书馆藏书发展.docx
- 一级分类食品饮料、家居用品、个人用品、IT与电子商务、耐用品.doc
- 工作任务8-网站宣传与推广.ppt
- 基于大学城空间的动态网页课程信息化教学设计.docx
- ATS单片机的数字温度测量及显示系统设计方案.doc
- 贫困地区的教育信息化发展障碍及对策.docx
- 论大数据对高校教育的推动作用.docx
- Freescale单片机电池管理系统设计方案.doc


