1 Installing Dynamic C
- 1.1 Requirements
- 1.2 Assumptions
2 Introduction to Dynamic C
- 2.1 The Nature of Dynamic C
- Speed
- 2.2 Dynamic C Enhancements and Differences
- 2.3 Dynamic C Differences Between Rabbit and Z180
3 Quick Tutorial
- 3.1 Run DEMO1.C
- Single Stepping
- Watch Expression
- Breakpoint
- Editing the Program
- 3.2 Run DEMO2.C
- Watching Variables Dynamically
- 3.3 Run DEMO3.C
- Cooperative Multitasking
- 3.4 Summary of Features
4 Language
- 4.1 C Language Elements
- 4.2 Punctuation and Tokens
- 4.3 Data
- Data Type Limits
- 4.4 Names
- 4.5 Macros
- Restrictions
- 4.6 Numbers
- 4.7 Strings and Character Data
- String Concatenation
- Character Constants
- 4.8 Statements
- 4.9 Declarations
- 4.10 Functions
- 4.11 Prototypes
- 4.12 Type Definitions
- 4.13 Aggregate Data Types
- Array
- Structure
- Union
- Composites
- 4.14 Storage Classes
- 4.15 Pointers
- 4.16 Pointers to Functions, Indirect Calls
- 4.17 Argument Passing
- 4.18 Program Flow
- Loops
- Continue and Break
- Branching
- 4.19 Function Chaining
- 4.20 Global Initialization
- 4.21 Libraries
- 4.22 Headers
- 4.23 Modules
- The Key
- The Header
- The Body
- Function Description Headers
- 4.24 Support Files
5 Multitasking with Dynamic C
- 5.1 Cooperative Multitasking
- 5.2 A Real-Time Problem
- Solving the Real-Time Problem with a State Machine
- 5.3 Costatements
- Solving the Real-Time Problem with Costatements
- Costatement Syntax
- Control Statements
- 5.4 Advanced Costatement Topics
- The CoData Structure
- CoData Fields
- Pointer to CoData Structure
- Functions for Use With Named Costatements
- Firsttime Functions
- Shared Global Variables
- 5.5 Cofunctions
- Syntax
- Calling Restrictions
- CoData Structure
- Firsttime Functions
- Types of Cofunctions
- Types of Cofunction Calls
- Special Code Blocks
- Solving the Real-Time Problem with Cofunctions
- 5.6 Patterns of Cooperative Multitasking
- 5.7 Timing Considerations
- waitfor Accuracy Limits
- 5.8 Overview of Preemptive Multitasking
- 5.9 Slice Statements
- Syntax
- Usage
- Restrictions
- Slice Data Structure
- Slice Internals
- 5.10 Summary
6 The Virtual Driver
- 6.1 Default Operation
- 6.2 Calling _GLOBAL_INIT()
- 6.3 Global Timer Variables
- 6.4 Watchdog Timers
- Hardware Watchdog
- Virtual Watchdogs
- 6.5 Preemptive Multitasking Drivers
7 The Slave Port Driver
- 7.1 Slave Port Driver Protocol
- Overview
- Registers on the Slave
- Polling and Interrupts
- Communication Channels
- 7.2 Functions
- 7.3 Examples
- Status Handler
- Serial Port Handler
- Byte Stream Handler
8 Run-Time Errors
- 8.1 Run-Time Error Handling
- Error Code Ranges
- Fatal Error Codes
- 8.2 User-Defined Error Handler
- Replacing the Default Handler
- 8.3 Run-Time Error Logging
- Error Log Buffer
- Initialization and Defaults
- Configuration Macros
- Error Logging Functions
- Examples of Error Log Use
9 Memory Management
- 9.1 Memory Map
- Memory Mapping Control
- 9.2 Extended Memory Functions
- Code Placement in Memory
10 The Flash File System
- 10.1 General Usage
- Maximum File Size
- Using SRAM
- Wear Leveling
- Low-Level Implementation
- Multitasking and the File System
- 10.2 Application Requirements
- FS1 Requirements
- FS1 and Use of the First Flash
- FS2 Requirements
- FS2 Configuration Macros
- FS2 and Use of the First Flash
- 10.3 Functions
- FS1 API
- FS2 API
- 10.4 Setting up and Partitioning the File System
- Initial Formatting
- Logical Extents (LX)
- Logical Sector Size
- 10.5 File Identifiers
- File Numbers
- File Names
- 10.6 Skeleton Program Using FS1
- 10.7 Skeleton Program Using FS2
11 Using Assembly Language
- 11.1 Mixing Assembly and C
- Embedded Assembly Syntax
- Embedded C Syntax
- Setting Breakpoints in Assembly
- 11.2 Assembler and Preprocessor
- Comments
- Defining Constants
- Multiline Macros
- Labels
- Special Symbols
- C Variables
- 11.3 Stand-Alone Assembly Code
- Stand-Alone Assembly Code in Extended Memory
- Example of Stand-Alone Assembly Code
- 11.4 Embedded Assembly Code
- The Stack Frame
- Embedded Assembly Example
- Local Variable Access
- 11.5 C Calling Assembly
- Passing Parameters
- Location of Return Results
- 11.6 Assembly Calling C
- 11.7 Interrupt Routines in Assembly
- Steps Followed by an ISR
- Modifying Interrupt Vectors
- 11.8 Common Problems
12 Keywords
- abandon
- abort
- align
- always_on
- anymem
- asm
- auto
- bbram
- break
- c
- case
- char
- const
- continue
- costate
- debug
- default
- do
- else
- enum
- extern
- firsttime
- float
- for
- goto
- if
- init_on
- int
- interrupt
- interrupt_vector
- long
- main
- nodebug
- norst
- nouseix
- NULL
- protected
- return
- root
- segchain
- shared
- short
- size
- sizeof
- speed
- static
- struct
- switch
- typedef
- union
- unsigned
- useix
- waitfor
- waitfordone (wfd)
- while
- xdata
- xmem
- xstring
- yield
- 12.1 Compiler Directives
- #asm
- #class
- #debug #nodebug
- #define
- #endasm
- #fatal
- #GLOBAL_INIT
- #error
- #funcchain
- #if #elif #else #endif
- #ifdef
- #ifndef
- #interleave #nointerleave
- #KILL
- #makechain
- #memmap
- #precompile
- #undef
- #use
- #useix #nouseix
- #warns
- #warnt
- #ximport
13 Operators
- 13.1 Arithmetic Operators
- +
- -
- *
- /
- ++
- --
- %
- 13.2 Assignment Operators
- =
- +=
- -=
- *=
- /=
- %=
- <<=
- >>=
- &=
- ^=
- |=
- 13.3 Bitwise Operators
- <<
- >>
- &
- ^
- |
- ~
- 13.4 Relational Operators
- <
- <=
- >
- >=
- 13.5 Equality Operators
- ==
- !=
- 13.6 Logical Operators
- &&
- ||
- !
- 13.7 Postfix Expressions
- ( )
- [ ]
- . (dot)
- ->
- 13.8 Reference/Dereference Operators
- &
- *
- 13.9 Conditional Operators
- ? :
- 13.10 Other Operators
- (type)
- sizeof
- ,
14 Graphical User Interface
- 14.1 Editing
- 14.2 Menus
- File Menu
- Edit Menu
- Compile Menu
- Run Menu
- Inspect Menu
- Options Menu
- Editor
- Compiler
- Debugger
- Display
- Communications
- Define Target Configuration
- Other Menu Choices
- Window Menu
- Help Menu
15 Command Line Interface
- 15.1 Default States
- 15.2 User Input
- 15.3 Saving Output to a File
- 15.4 Command Line Switches
- Switches Without Parameters
- Switches Requiring a Parameter
- 15.5 Examples
- Example 1
- Example 2
- Example 3
16 Project Files
- 16.1 Project File Names
- Active Project
- 16.2 Updating a Project File
- 16.3 Menu Selections
- 16.4 Command Line Usage
17 Hints and Tips
- 17.1 Efficiency
- Nodebug Keyword
- Static Variables
- 17.2 Run-time Storage of Data
- User Block
- Flash File System
- WriteFlash2
- Battery Backed RAM
- 17.3 Root Memory Reduction Tips
- Increasing Root Code Space
- Increasing Root Data Space
18 µC/OS-II
- 18.1 Changes to µC/OS-II
- Ticks per Second
- Task Creation
- Restrictions
- 18.2 Tasking Aware Interrupt Service Routines (TA-ISR)
- Interrupt Priority Levels
- Possible ISR Scenarios
- General Layout of a TA-ISR
- 18.3 Library Reentrancy
- 18.4 How to Get a µC/OS-II Application Running
- Default Configuration
- Custom Configuration
- Examples
- 18.5 Compatibility with TCP/IP
- Socket Locks
- 18.6 Debugging Tips
A Macros and Global Variables
- Compiler-Defined Macros
- Global Variables
- Exception Types
- Rabbit 2000/3000 Internal registers
B Map File Generation
- Grammar
C Utility Programs
- Font and Bitmap Converter Utility
- Library File Encryption Utility
- Rabbit Field Utility
Index
| Z-World http://www.zworld.com Voice: (530) 757-3737 FAX: (530) 757-3792 sales@zworld.com |