Hitex 166 Introductory
Training Courses At The University Of Warwick Science Park
Regular CAN Tutorials
Hitex C166/ST10
Introductory Training Courses At The University Of Warwick Science
Park
Hitex UK is unique in that it offers formal English language classroom
training in the C166 architecture and its tools to help new users
get the best from this innovative architecture. We can also provide
bespoke short courses to cover specific aspects of the field which
are especially important in customers own projects. A few
days spent on one our courses will save you weeks of trial and
error experimentation and gives you the benefit of our years of
experience right at the start of your project, when you most need
it.
Hitex has developed a number of short
courses, which will help you get the best out of the innovative
166 architecture from day one. While most engineers will learn
how to best apply the C language and the 166s extensive
peripheral set after several projects, it is obviously preferable
to know the tricks of the trade at the start of the
first project!
All the courses are of a hands-on nature, with each student having a PC equipped with C compiler and debugger, C167CR card plus our custom training IO board, equipped with active signal sources, LCD display, keypad, CAN etc.
The courses are held at our UK headquarters on the University Of Warwick Science Park in Coventry. By special arrangement, courses can be conducted at customers own sites.
Introduction to the C166 Compiler
and C166 Architecture
A two-day course intended for all engineers that are new to the
166 family and its development tools. It is strongly recommended
that at least one member of a project team attends this course.
It is most beneficial for students to have spent some time using
the tools and CPU beforehand!
Our most popular introductory
course is designed to get you to the point where you can start
to produce 166 applications that make use of all the major peripherals.
You will also use the most import of the numerous ANSI-extensions
added to make the C language better suited to the job of real-time
microcontroller programming. A learning-by-doing approach will
be taken so that you will have a chance to try new language features
straight away. A working C167CR-based microcomputer is provided,
equipped with our HiTOP166/WIN source level debugger with which
programs can be tested.
It is assumed that you are familiar with the fundamentals of the C language and have some understanding of assembler programming, preferably on the 167. Each language feature is covered by a programming exercise. You have the choice of creating the program from the specification given or using the shell modules, which have the basic framework of the required program already mapped out.
The content is based on the most common questions asked by 166 users and our own experience of what really counts in 166 programming. It is unlikely that you will remember everything once you start using 166 for real but what you will find is that youll be able to refer back to the notes should anything difficult crop up.
Each of the major peripherals is covered by the writing of a small application, which also includes interrupts and the use of the 166s unique peripheral event controller (PEC). Optionally, an extra half day module on the CAN peripheral can be added.
Course Number
S2166-KE: For Keil C166 compiler users
Course Number
S2166-TA: For TASKING C166 compiler users
Course Charges
All standard courses are charged at £225 per day per delegate.
Custom courses are charged at a rate of £300 per day per
delegate. We can arrange suitable overnight accommodation where
necessary, at extra cost.
S2166-KE (KEIL) Course Dates
2001
7th & 8th February
2001
4th & 5th April 2001
4th & 5th July 2001
5th & 6th September 2001
7th & 8th November 2001
Others may be scheduled...please contact us for latest dates.
S2166-TA (TASKING) Course Dates
2001
Please contact us for
the latest scheduled dates.
Contact Louise Barnes for course dates and booking details.
2. Setting Up The C166 Compiler
System
2.1 C166s Environment Variables
2.2 Multiple Include File Search Paths
3. Creating A New Project
3.1 Background Information On C166 Projects
3.1.1 Basic Data Types In C166
3.1.2 Basic Terms Used In C166 Programming
3.1.3 Memory Map Of EVA167 Board And Example Program
3.2 Setting Up The Directory Structure For The Example Project
(Worked Solution)
3.2.1 Necessary Files To Build A Program
3.2.2 Laying Out A C166 Program Module (Source File)
3.2.3 L166 Linker Input Files
3.3 Creating The Project
3.3.1 Setting Up The Project Structure
3.3.2 Setting The Compiler Options
3.3.3 Setting The A166 Assembler Options
3.3.4 Setting The Linker Options
3.3.5 Setting Up The Make Options
3.3.5.1 Note On Register Masks And Global Register Optimization
3.4 Building New Projects For The First Time
4. Using The HiTOP166/WIN Monitor-Based
Debugger
4.1 A Summary Of Setting Up A New uVision Project
5. Using uVision And HiTOP166/WIN
In Program Development
6. Configuring The C Environment
To Your CPU and Hardware
6.1 CPU-Specific Include Files
6.2 Configuring STARTUP.A66 And START167.A66
6.2.1 Configuring STARTUP.A66
6.2.2 Configuring START167.A66
6.3 The Two Stacks In C166
6.3.1 Setting The Size Of The User Stack
6.3.2 Advanced Technique - Placing The User Stack In On Chip RAM
6.3.3 The System Stack
6.4 Setting Up The BUSCONx ADDRSELx Registers
6.5 Special Notes On The Startup Files
6.6 EVA167 Board CPU Setup Requirements
6.7 Configuring The Runtime Environment
6.7.1 Adapting printf() To Other Output Devices
6.7.2 Configuring scanf() For Other Devices
7. Inter-Module Linkage
7.1 An Intelligent Include File Method That Will Avoid Many Program
Build Errors
8. The C166 Data Page-Addressing
And Code Segmentation
8.1 The Data Page Pointers
8.1.1 A Fast Way of Addressing a Large Data Memory Space
8.1.2 The DPPs expressed diagrammatically
8.1.3 Example Of Using DPPs
8.2 Using The DPPs
8.3 Code "Segments"
8.4 DPP Usage Summary
9. C166 Compiler Memory Models
9.1 Summary Of C166 Type Qualifiers That Determine Placement Of
Data
9.1.1 Default Data Object Placement Overriding
9.1.2 C166s Type Qualifiers Summary
9.2 Controlling Constant Data
9.3 Setting Up The DPPs
9.3.1 Special Allocation Of DPPs To Create Customised Memory
Models
9.3.2 Special Memory Maps Possible With C166 v3.00
9.4 Automatic Placement Of Data
9.5 CLASSES And SECTIONS
9.5.1 How Type Qualifiers Relate To Class Names In C166
9.6 The Difference Between NDATA0 And NDATA
9.6.1 The NOINIT #pragma
9.7 Modules And SECTIONs - Placing Things At Absolute Addresses
9.7.1 Special Note On Windows95 and NT4
9.8 Coping With The Special Sections "?C_CLRMEMSECSTART"
And "?C_INITSEC".
9.9 Placing Real Data At Fixed Addresses
9.10 Using The RENAMECLASS Control
9.11 Summary Of Placing Objects At Fixed Addresses With The Linker:
9.12 The ORDER Pragma
9.13 The ASSIGN Linker Control
9.14 The #pragma pack(1) Control
9.15 Using "SECTIONS" With The C167CR CAN Peripheral
9.16 Constructing A Memory Map For Small C167CR Systems
9.16.1 A Typical Small System Memory Map
9.16.2 Constructing Linker Input File
10. Non-ANSI Code Saving Tricks
10.1 Special Note On Bits In Structures
10.2 Bit Fields And Flags In C166
10.3 Simple Bit Flags
10.4 The _testset_() And _testclear_() Intrinsic Functions
10.5 Intrinsic Functions
10.6 The volatile Keyword
11. Accessing Absolute Addresses
11.1 The MVAR and MARRAY Macros
11.1.1 Things To Be Aware Of With This Method
12. Pointers In C166
12.1.1 The Various Pointers In C166
12.1.2 Summary Of Pointer Declarations
12.1.3 Special Note On #pragma MOD167 For C167/5 Users
12.2 Variable Pointers To Absolute Addresses
12.3 Placing The Pointer Itself
12.4 Jumping To Variable Addresses
12.5 Pointer Casting And Conversions
12.6 Pointers To Local Data
12.7 Addressing The C167CR CAN Peripheral Via Pointers
13. Using Peripherals With
Zero Software Intervention
14. The General Purpose Registers,
Register Variables And Registerbanks
14.1 The Context Switch
14.2 Interrupts In C166
14.3 The VECTAB Linker Control
14.4 Macros That Simplify The Setting Of Interrupt Priorities
14.4.1 Application Example - 32-Bit Captures
14.5 The Interrupt-Driven PEC System
14.5.1 Setting The PEC Channel Number
14.5.2 Setting Up The PEC System
14.5.3 Special C166 Language PEC Features Explained
14.6 Switching Registerbanks In C
14.6.1 The USING Control
14.6.2 Sharing Register Banks
14.7 When Your C166 CPU Keeps Flying Off Into Space...
14.7.1 The Trap.C File
14.7.2 Common Reasons For Getting To Unexpected Traps
14.7.3 New Control for Interrupt Functions
14.8 Advanced Technique - Simulating Static Register Variables
14.9 Fixing Register Banks At Absolute Addresses
14.10 Controlling the CP directly -Some Tricks With Registerbanks
14.11 Special Note On idata (classes IDATA0, IDATA) For C165/7
14.12 Bit Addressable Data
14.12.1 Special Function Bits
14.12.2 Note on declaring an sbit as external
15. Assembler Interfacing -
In-line Assembler
15.1 Calling Assembler Functions From C166
15.1.1 Coping With Start Addresses And Parameters
15.1.2 Pointer Passing To Assembler Functions
15.2 Using C166 To Write Assembler Functions
16. The Part 2.0B CAN Module
16.1 CAN Registers
16.1.1 Bit Time calculation
16.1.2 Resynchronization
16.2 Message Objects
16.2.1 Using The SECTIONS Control To Access The C167CR CAN Peripheral
16.3 Setting Up The CAN Module Baudrate And Sampling Point
16.4 Configuring The CAN Module For Transmit
16.5 Configuring The CAN Module For Receive
16.6 Configuring The CAN Module For Remote Request
Hitex has teamed up with Infineon
UK to run a series of unique hands-on CAN tutorial
sessions. These half-day seminars cover the basics of Controller
Area Networking (CAN) from the fundamental concepts of messages
and non-destructive bitwise arbitration up to
application
layer topics such as DeviceNet and CANOPEN. Unlike all other CAN
seminars, delegates are equipped with a PC, C167CR-based training
boards and implement the various CAN features as they are introduced
on a real 10 node CAN network.
We have found that it is only once engineers make their own network
that the real benefits of CAN are brought home! If you are uncertain
as to what CAN is and whether it is relevant to your forthcoming
projects, you are strongly advised to attend a session at our
University Of Warwick base! Please contact Louise
Barnes for tutorial dates and booking details.
