M3T-MR308/4 V.4.00User’s ManualREJ10J1025-0200Z Real-time OS for M16C/70,80,M32C/80 Series Rev.2.00 Nov 1, 2005
vi List of Tables Table 3-1 Task Context and Non-task Context ...- 27 - Table 3-2
Chapter 5 Detailed Applications - 90 - 5.9 Memory Allocation This section describes how memory is allocated for the application program data. Use th
Chapter 5 Detailed Applications - 91 - 5.9.1 Section Allocation of start.a30 The section allocation of the sample startup program for the assembly
Chapter 5 Detailed Applications - 92 - 5.9.2 Section Allocation of crt0mr.a30 The section allocation of the sample startup program for the C langua
Chapter 5 Detailed Applications - 93 - 0FFFFDCH0FFFE00H0FFFD00H0FF0000H000400H000000Hrom_FErom_FOdata_SEIdata_SOIdata_NEIdata_NOIdata_FEIdata_FOISec
Chapter 5 Detailed Applications - 94 - 5.10 Using in M16C/70 Series When you use M16C/70 series, please be sure to set up the following options.
Chapter 6 Using Configurator
Chapter 6 Using Configurator - 96 - 6.1 Configuration File Creation Procedure When applications program coding and startup program modification are
Chapter 6 Using Configurator - 97 - Table 6.2 Operators Operator Priority Direction of computation () High From left to right - (Unary_minus)
Chapter 6 Using Configurator - 98 - • 10ms • 10.5ms It is also well to remember that the time must not begin with . (period).
Chapter 6 Using Configurator - 99 - 6.1.2 Configuration File Definition Items The following definitions 58 are to be formulated in the configuratio
Chapter 1 User’s Manual Organization
Chapter 6 Using Configurator - 100 - 2. Maximum value of priority (value of lowest priority) [( Definition format )] Numeric value [( Definition ra
Chapter 6 Using Configurator - 101 - 8. Maximum message priority value [( Definition format )] Numeric value [( Definition range )] 1 to 255 [( De
Chapter 6 Using Configurator - 102 - [( Definition respective maximum numbers of items )] This definition is to be given only in forming the separat
Chapter 6 Using Configurator - 103 - 5. The maximum number of semaphores defined [( Definition format )] Numeric value [( Definition range )] 1 to
Chapter 6 Using Configurator - 104 - [( Task definition )] << Format >> // Tasks Definition task[ ID No. ]{ name = ID name
Chapter 6 Using Configurator - 105 - 3. User stack size of task [( Definition format )] Numeric value [( Definition range )] 12 or more [( Defau
Chapter 6 Using Configurator - 106 - The task startup code of the initial startup task is 0. 8. Extended information [( Definition format )] Numeric
Chapter 6 Using Configurator - 107 - 3. Initial value of the event flag [( Definition format )] Numeric value [( Definition range )] 0 to 0xFFFF
Chapter 6 Using Configurator - 108 - 2. Selecting a semaphore waiting queue [( Definition format )] Symbol [( Definition range )] TA_TFIFO or TA_T
Chapter 6 Using Configurator - 109 - 2. Number of data [( Definition format )] Numeric Value [( Definition range )] 0 to 0x1FFF [( Default value )
Chapter 1 User’s Manual Organization - 2 - The MR308 User’s Manual consists of nine chapters and thee appendix. • Chapter 2 General Information Ou
Chapter 6 Using Configurator - 110 - 3. Selecting a data queue waiting queue [( Definition format )] Symbol [( Definition range )] TA_TFIFO or TA_T
Chapter 6 Using Configurator - 111 - 4. Maximum message priority [( Definition format )] Numeric Value [( Definition range )] 1 to "maximum
Chapter 6 Using Configurator - 112 - 4. Size (in bytes) [( Definition format )] Numeric value [( Definition range )] 4 to 65,535 [( Default value
Chapter 6 Using Configurator - 113 - 3. Section name [( Definition format )] Symbol [( Definition range )] None [( Default value )] MR_HEAP Define
Chapter 6 Using Configurator - 114 - << Content >> Define the following for each cyclic handler ID number. 1. ID name [( Definition form
Chapter 6 Using Configurator - 115 - 7. Extended information [( Definition format )] Numeric value [( Definition range )] 1 to 0xFFFFFFFF [( Defaul
Chapter 6 Using Configurator - 116 - [( Interrupt vector definition )] This definition is necessary to use Interrupt function. << Format >
Chapter 6 Using Configurator - 117 - specified at the same time. [Precautions] 1. Regarding the method for specifying a register bank A kernel (OS
Chapter 6 Using Configurator - 118 - Table 6.3 Interrupt Causes and Vector Numbers Interrupt cause Interrupt vector number Section Name DMA0 8 INT
Chapter 6 Using Configurator - 119 - 6.1.3 Configuration File Example The following is the configuration file example. 1 /////////////////////////
Chapter 2 General Information
Chapter 6 Using Configurator - 120 - 75 wait_queue = TA_TFIFO; 76 clear_attribute = NO; 77 wait_multi = TA_WMUL; 78 }; 79 flag[2]{ 80 name =
Chapter 6 Using Configurator - 121 - 155 name = ID_mpf1; 156 wait_queue = TA_TFIFO; 157 section = MR_RAM; 158 siz_block = 16; 159 num_block =
Chapter 6 Using Configurator - 122 - 235 entry_address = alm2; 236 name = ID_alm2; 237 exinf = 0x12345678; 238 }; 239 240 241 // 242 // End
Chapter 6 Using Configurator - 123 - 6.2 Configurator Execution Procedures 6.2.1 Configurator Overview The configurator is a tool that converts the
Chapter 6 Using Configurator - 124 - Configuration File xxx.cfg Default Configuration File default.cfg makefile Template File makefile.dos makefile
Chapter 6 Using Configurator - 125 - 6.2.2 Setting Configurator Environment Before executing the configurator, check to see if the environment varia
Chapter 6 Using Configurator - 126 - 6.2.3 Configurator Start Procedure Start the configurator as indicated below. A> cfg308 [-vmV] Conf
Chapter 6 Using Configurator - 127 - 6.2.4 makefile generate Function The configurator follows the procedure below to generate makefile. 1. Examin
Chapter 6 Using Configurator - 128 - 6.2.5 Precautions on Executing Configurator The following lists the precautions to be observed when executing
Chapter 6 Using Configurator - 129 - 6.2.6 Configurator Error Indications and Remedies If any of the following messages is displayed, the configurat
Chapter 2 General Information - 4 - 2.1 Objective of MR308 Development In line with recent rapid technological advances in microcomputers, the func
Chapter 6 Using Configurator - 130 - service call of system definition item. cfg308 Error : system timer's vector <x>conflict near line x
Chapter 6 Using Configurator - 131 - Warning messages The following message are a warning. A warning can be ignored providing that its content is u
Chapter 6 Using Configurator - 132 - 6.3 Editing makefile Here you edit makefile the configurator generated, and set compilation options, libraries,
Chapter 6 Using Configurator - 133 - 6.4 About an error when you execute make The following warning message of mr308tbl is displayed when you execu
Chapter 7 Application Creation Guide
Chapter 7 Application Creation Guide - 136 - 7.1 Processing Procedures for System Calls from Handlers When a service call is issued from a handler,
Chapter 7 Application Creation Guide - 137 - 7.1.1 System Calls from a Handler That Caused an Interrupt during Task Execution Scheduling (task swit
Chapter 7 Application Creation Guide - 138 - 7.1.2 System Calls from a Handler That Caused an Interrupt during System Call Processing Scheduling (t
Chapter 7 Application Creation Guide - 139 - 7.1.3 System Calls from a Handler That Caused an Interrupt during Handler Execution Let us think of a
Chapter 2 General Information - 5 - 7. Timer control is made easier. To perform processing at 10 ms intervals, the microcomputer timer function was
Chapter 7 Application Creation Guide - 140 - 7.2 Stacks 7.2.1 System Stack and User Stack The MR308 provides two types of stacks: system stack and
Chapter 8 Sample Program Description
Chapter 8 Sample Program Description - 142 - 8.1 Overview of Sample Program As an example application of MR308, the following shows a program that
Chapter 8 Sample Program Description - 143 - 8.2 Program Source Listing 1 /***********************************************************************
Chapter 8 Sample Program Description - 144 - 8.3 Configuration File 1 //************************************************************************* 2
Chapter 9 Separate ROMs
Chapter 9 Separate ROMs - 146 - 9.1 How to Form Separate ROMs This chapter describes how to form the MR308's kernel and application programs i
Chapter 9 Separate ROMs - 147 - App_progMR_CIFMR_ROMprogramMR_KERNELkernel ROM(Internal ROM)Application ROM1App_progMR_CIFMR_ROMStartupProgramMR308
Chapter 9 Separate ROMs - 148 - Here you change the section files (c_sec.inc, asm_sec.inc), and set addresses of programs you locate in the applicat
Chapter 9 Separate ROMs - 149 - e.g. mr308tbl \product\app1 \product\app2 8. Generating a system You execute the make command to genera
Chapter 2 General Information - 6 - 2.2 Relationship between TRON Specification and MR308 The TRON Specification is an abbreviation for The Real-ti
Real-time OS for M16C/70,80,M32C/80 Series M3T-MR308/4 User's Manual Publication Date: Nov. 1, 2
M3T-MR308/4 User's Manual
Chapter 2 General Information - 7 - 2.3 MR308 Features The MR308 offers the following features. 1. Real-time operating system conforming to the µI
Chapter 3 Introduction to MR308
Active X, Microsoft, MS-DOS, Visual Basic, Visual C++, Windows and Windows NT are either registered trademarks or trademarks of Microsoft Corporatio
Chapter 3 Introduction to MR308 - 10 - 3.1 Concept of Real-time OS This section explains the basic concept of real-time OS. 3.1.1 Why Real-time O
Chapter 3 Introduction to MR308 - 11 - Key inputmicrocomputerRemote controlmicrocomputerLED illuminationmicrocomputerArbitermicrocomputerVolume cont
Chapter 3 Introduction to MR308 - 12 - Key inputTaskRemote controlTaskLED illuminationTaskreal-timeOSVolume controlTaskMonitorTaskMechanicalcontrolT
Chapter 3 Introduction to MR308 - 13 - 3.1.2 Operating Principles of Real-time OS The real-time OS is the software that makes a one-microcomputer sy
Chapter 3 Introduction to MR308 - 14 - In the state shown in Figure 3.5, it appears to the programmer that the key input task or its microcomputer i
Chapter 3 Introduction to MR308 - 15 - R0PCSPRegisterKey inputTaskRemote controlTaskMemory mapStacksectionSFRR0PCSPR0PCSPSPLED illuminationTaskReal-
Chapter 3 Introduction to MR308 - 16 - 3.2 Service Call How does the programmer use the real-time OS in a program? First, it is necessary to call
Chapter 3 Introduction to MR308 - 17 - 3.2.1 Service Call Processing When a service call is issued, processing takes place in the following sequenc
Chapter 3 Introduction to MR308 - 18 - 3.2.2 Task Designation in Service call Each task is identified by the ID number internally in MR308. For exa
Chapter 3 Introduction to MR308 - 19 - 3.3 Task This section describes how tasks are managed by MR308. 3.3.1 Task Status The real-time OS monitors t
Preface The M3T-MR308/4(abbreviated as MR308) is a real-time operating system1 for the M16C/70,80, M
Chapter 3 Introduction to MR308 - 20 - Forced termination request from other task SUSPENDED state clearrequest from other task SUSPEND requestfrom o
Chapter 3 Introduction to MR308 - 21 - to the ready queue 13 is placed in the RUNNING state. ♦ A currently executed task has normally terminated i
Chapter 3 Introduction to MR308 - 22 - 4. SUSPENDED state When the sus_tsk system call is issued from a task in the RUNNING state or the isus_tsk sy
Chapter 3 Introduction to MR308 - 23 - 3.3.2 Task Priority and Ready Queue In the real-time OS, several tasks may simultaneously request to be exec
Chapter 3 Introduction to MR308 - 24 - 3.3.3 Task Priority and Waiting Queue In The standard profiles in µITRON 4.0 Specification support two waiti
Chapter 3 Introduction to MR308 - 25 - 3.3.4 Task Control Block(TCB) The task control block (TCB) refers to the data block that the real-time OS us
Chapter 3 Introduction to MR308 - 26 - TCBTCBTCBTask Connection pointerStatusPriorityWake-up counterFlag wait modeFlag wait patternTime-out countero
Chapter 3 Introduction to MR308 - 27 - 3.4 System States 3.4.1 Task Context and Non-task Context The system runs in either context state, "tas
Chapter 3 Introduction to MR308 - 28 - Subroutine callTimer interruptRTSCyclic handlerAlarm handlerSystem clockinterrupt handlerTask Figure 3.18 Cyc
Chapter 3 Introduction to MR308 - 29 - 3.4.3 CPU Locked/Unlocked States The system assumes either a CPU locked state or a CPU unlocked state. In a
Chapter 3 Introduction to MR308 - 30 - 3.5 MR308 Kernel Structure 3.5.1 Module Structure The MR308 kernel consists of the modules shown in Figure
Chapter 3 Introduction to MR308 - 31 - 3.5.2 Module Overview The MR308 kernel modules are outlined below. • Scheduler Forms a task processing queue
Chapter 3 Introduction to MR308 - 32 - 3.5.3 Task Management Function The task management function is used to perform task operations such as task
Chapter 3 Introduction to MR308 - 33 - 1 Task APriority 2 Task CTask FTask ETask D 3 n Task BTask BWhen the priority of task B has been changed fro
Chapter 3 Introduction to MR308 - 34 - 3.5.4 Synchronization functions attached to task The task-dependent synchronization functions attached to ta
Chapter 3 Introduction to MR308 - 35 - only one forcible wait request to be nested, if sus_tsk is issued to a task in a forcible wait state, the err
Chapter 3 Introduction to MR308 - 36 - ♦ Timeout wait state ♦ Wait state entered by slp_tsk service call (+ timeout included) ♦ Event flag (+ tim
Chapter 3 Introduction to MR308 - 37 - 3.5.5 Synchronization and Communication Function (Semaphore) The semaphore is a function executed to coordin
Chapter 3 Introduction to MR308 - 38 - • Reference Semaphore Status (ref_sem, iref_sem) Refers the status of the target semaphore. Checks the count
Chapter 3 Introduction to MR308 - 39 - 3.5.6 Synchronization and Communication Function (Eventflag) The eventflag is an internal facility of MR308
i Contents Chapter 1 User’s Manual Organization ...
Chapter 3 Introduction to MR308 - 40 - TaskF TaskD TaskB Flag pattern 0x0F Flag pattern 0 Flag queue TaskA TaskB TaskCTaskDTaskE TaskF0xFF AND 0
Chapter 3 Introduction to MR308 - 41 - 3.5.7 Synchronization and Communication Function (Data Queue) The data queue is a mechanism to perform data
Chapter 3 Introduction to MR308 - 42 - 3.5.8 Synchronization and Communication Function (Mailbox) The mailbox is a mechanism to perform data commun
Chapter 3 Introduction to MR308 - 43 - T_MSG header T_MSG header T_MSG header Message queue Message A Message B Message C Figure 3.34 Message qu
Chapter 3 Introduction to MR308 - 44 - 3.5.9 Memory pool Management Function The memorypool management function provides system memory space (RAM s
Chapter 3 Introduction to MR308 - 45 - Variable-size Memory Pool Management Function The technique that allows you to arbitrary define the size of m
Chapter 3 Introduction to MR308 - 46 - 200 bytes224 bytesRoundingMemorypoolTaskApget_blk200 bytes Figure 3.36 pget_mpl processing • Release Acquire
Chapter 3 Introduction to MR308 - 47 - 3.5.10 Time Management Function The time management function provides system time management, time reading36
Chapter 3 Introduction to MR308 - 48 - at the fifth occurrence of the time tick. • Set System Time (set_tim) • Reference System Time (get_tim) The
Chapter 3 Introduction to MR308 - 49 - 3.5.11 Cyclic Handler Function The cyclic handler is a time event handler that is started every startup cycl
ii 4.2 Development Procedure Example... - 62 - 4.2
Chapter 3 Introduction to MR308 - 50 - 3.5.12 Alarm Handler Function The alarm handler is a time event handler that is started only once at a speci
Chapter 3 Introduction to MR308 - 51 - 3.5.13 System Status Management Function • Rotate Task Precedence (rot_rdq, irot_rdq) This service call est
Chapter 3 Introduction to MR308 - 52 - 3.5.14 Interrupt Management Function The interrupt management function provides a function to process request
Chapter 3 Introduction to MR308 - 53 - 3.5.15 System Configuration Management Function This function inspects the version information of MR308. •
Chapter 3 Introduction to MR308 - 54 - 3.5.17 Extended Function (Reset Function) The reset function is a function outside the scope of µITRON 4.
Chapter 3 Introduction to MR308 - 55 - 3.5.18 Service calls That Can Be Issued from Task and Handler Some service calls can be issued from a task,
Chapter 3 Introduction to MR308 - 56 - Service Call Task Context Non-task Context sig_sem o x isig_sem x o wai_sem o x twai_sem o x pol_sem o x
Chapter 3 Introduction to MR308 - 57 - Service Call Task Context Non-task Context get_mpf o x tget_mpf o x pget_mpf o x rel_mpf o x irel_mpf x o
Chapter 3 Introduction to MR308 - 58 - Service Call Task Context Non-task Context ref_ver o x iref_ver x o vsnd_dtq o x vtsnd_dtq o x vpsnd_dtq o
Chapter 4 Applications Development Procedure Overview
iii Warning messages ...
Chapter 4 Applications Development Procedure Overview - 60 - 4.1 Overview Application programs for MR308 should generally be developed following t
Chapter 4 Applications Development Procedure Overview - 61 - MR308 include filekernel.h Configuratorcfg308 Application object ROM write formatApp
Chapter 4 Applications Development Procedure Overview - 62 - 4.2 Development Procedure Example This chapter outlines the development procedures o
Chapter 4 Applications Development Procedure Overview - 63 - #include <itron.h> #include <kernel.h> #include "kernel_id.h"
Chapter 4 Applications Development Procedure Overview - 64 - 4.2.2 Configuration File Preparation Create a configuration file which has defined i
Chapter 4 Applications Development Procedure Overview - 65 - 4.2.3 Configurator Execution When using HEW, select "Build all," which enab
Chapter 5 Detailed Applications
Chapter 5 Detailed Applications - 68 - 5.1 Program Coding Procedure in C Language 5.1.1 Task Description Procedure 1. Describe the task as a fun
Chapter 5 Detailed Applications - 69 - 7. To specify a task, use the string written in the task definition item “name” of the configura-tion file.4
iv List of Figures Figure 3.1 Relationship between Program Size and Development Period...- 10 - Figure 3.2 Microcomp
Chapter 5 Detailed Applications - 70 - 5.1.2 Writing a Kernel (OS Dependent) Interrupt Handler When describing the kernel (OS-dependent) interrupt
Chapter 5 Detailed Applications - 71 - 5.1.3 Writing Non-kernel (OS-independent ) Interrupt Handler When describing the non-kernel(OS-independent)
Chapter 5 Detailed Applications - 72 - 5.1.4 Writing Cyclic Handler/Alarm Handler When describing the cyclic or alarm handler in C language, observ
Chapter 5 Detailed Applications - 73 - 5.2 Program Coding Procedure in Assembly Language This section describes how to write an application using th
Chapter 5 Detailed Applications - 74 - 8. Set a task that is activated at MR308 system startup in the configuration file 52
Chapter 5 Detailed Applications - 75 - 5.2.2 Writing Kernel(OS-dependent) Interrupt Handler When describing the kernel(OS-dependent) interrupt hand
Chapter 5 Detailed Applications - 76 - 5.2.3 Writing Non-kernel(OS-independent) Interrupt Handler 1. For the symbol indicating the interrupt handle
Chapter 5 Detailed Applications - 77 - 5.2.4 Writing Cyclic Handler/Alarm Handler When describing the cyclic or alarm handler in Assembly Language,
Chapter 5 Detailed Applications - 78 - 5.3 The Use of INT Instruction MR308 has INT instruction interrupt numbers reserved for issuing service call
Chapter 5 Detailed Applications - 79 - 5.5 Regarding Interrupts 5.5.1 Types of Interrupt Handlers MR308's interrupt handlers consist of kernel
v Figure 5.2 Example Task Terminating with ext_tsk() Described in C Language...- 68 - Figure 5.3 Example of Kernel(OS-dependent
Chapter 5 Detailed Applications - 80 - 5.5.3 Controlling Interrupts Interrupt enable/disable control in a service call is accomplished by IPL manipu
Chapter 5 Detailed Applications - 81 - When the I flag before issuing a service call is 1 When the I flag before issuing a service call is 0 Service
Chapter 5 Detailed Applications - 82 - 5.6 Regarding Delay Dispatching MR308 has four service calls related to delay dispatching. • dis_dsp • ena_
Chapter 5 Detailed Applications - 83 - 5.7 Regarding Initially Activated Task MR308 permits the user to specify a task that starts from a READY sta
Chapter 5 Detailed Applications - 84 - 5.8 Modifying MR308 Startup Program MR308 comes with two types of startup programs as described below. • st
Chapter 5 Detailed Applications - 85 - 5.8.1 C Language Startup Program (crt0mr.a30) Figure 5.14 C Language Startup Program (crt0mr.a30) shows th
Chapter 5 Detailed Applications - 86 - 73 74 MOV.L #FROM_,A0 75 MOV.L #TO_,A1 76 MOV.L #(sizeof SECT_ & 0FFFFFFH)
Chapter 5 Detailed Applications - 87 - 153 ;-------------------------------------------------------- 154 BCOPY data_FEI_top,data_FE_top,da
Chapter 5 Detailed Applications - 88 - 233 JSR.W __init_alh 234 .ENDIF 235 236 .IF CYCLIC_HANDLER 237 .GLB __init_cyh
Chapter 5 Detailed Applications - 89 - The following explains the content of the C language startup program (crt0mr.a30). 1. Incorporate a section
Kommentare zu diesen Handbüchern