TOPPERS/SSP
(HEW
SECTION1
!
!
TOPPERS/SSP
:
WindowsPC
C
SSP HEW
2
1.
2.
TOPPERS/SSP
TOPPERS/SSP
3.
4.
SSP HEW
3
TOPPERS/SSP
!
(RTOS)
!
!
!
!
!
-->
!
!
SSP HEW
4
1.Interface
RX62N
ssp_frk_rx62n_hew-20111120.lzh
2.
High-Performance Embedded
Workshop
RX
C/C++
V.1.02 Release 01
ccrxv102r01_ev.exe
: WindowsPC 32bit
SSP HEW
64bit
5
Interface
RX62N
SSP HEW
6
High-Performance
Embedded Workshop
SSP HEW
7
!
!
!
!
!
!
!
1)
2)HEW HELLOWORLD
3)SSP
4)HEW
5)SSP
6)
7)
SSP HEW
8
1)
!
!
(1)
(2)RX
!
HEW
!
(3)TOPPERS/SSP
!
SSP HEW
9
1)
!
Windows
!
subst
!
!
!
C:\>subst
C:\>subst
:
!
!
!
W:\>subst
W:\: => D:\usr\
ITRON
\SWEST\SEC1-WORKSPACE
SSP HEW
\OS
10
2)HEW HELLOWORLD
!
!
main()
!
SSP HEW
11
2)HEW HELLOWORLD
SSP HEW
12
2)HEW HELLOWORLD
SSP HEW
13
2)HEW HELLOWORLD
SSP HEW
14
2)HEW HELLOWORLD
SSP HEW
15
2)HEW HELLOWORLD
!
!
!
!
!
!
!
!
!
!
!
***********************************************************************/
/*
*/
/* FILE
:hello1.c
*/
/* DATE
:Mon, Jul 21, 2014
*/
/* DESCRIPTION :Main Program
*/
/* CPU TYPE :RX62N
*/
/*
*/
/* This file is generated by Renesas Project Generator (Ver.4.53). */
/* NOTE:THIS IS A TYPICAL EXAMPLE.
*/
/*
*/
/***********************************************************************/
!
!
!
!
!
!
!
#include<stdio.h>
//#include "typedefine.h"
#ifdef __cplusplus
//#include <ios>
// Remove the comment when you use ios
//_SINT ios_base::Init::init_cnt;
// Remove the comment when you use ios
#endif
SSP HEW
16
2)HEW HELLOWORLD
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
void main(void);
#ifdef __cplusplus
extern "C" {
void abort(void);
}
#endif
void main(void)
{
printf("Hello SWEST\n");
}
#ifdef __cplusplus
void abort(void)
{
}
#endif
SSP HEW
17
2)HEW HELLOWORLD
HEW
CPU
SSP HEW
18
2)HEW HELLOWORLD
!
!
\hello1\lowlvl.src
!
!
W:\
SSP HEW
19
3)SSP
!
!
ssp_frk_rx62n_hew-20111120\target\frk_rx62n_hew
\sample_workspace\sample1.hws
!
!
!
!
!
!
)
asm_config
cfg
kernel
sample1
!
!
!
!
SSP HEW
20
4)HEW
!
SSP HEW
21
4)HEW
SSP HEW
22
4)HEW
!
SSP HEW
23
4)HEW
!
CPU
SSP HEW
24
5)SSP
(1)lowlvl.src
w:\
(2)
!
!
!
\pdic\rx600
\pdic\rx600\rx600_uart.c: rx600_uart_snd_chr(SIOPCB
*p_siopcb, char_t c)
\pdic\rx600\rx600_uart.c: void rx600_uart_pol_putc(char_t
c, ID siopid)
\syssvc\serial.c: serial_wri_chr(SPCB *p_spcb, char_t c)
(3)Sample1
(LOGPUT)
SSP HEW
25
5)SSP
!
!
!
!
!
!
!
!
!
!
!
!
\pdic\rx600\rx600_uart.c:
/*
1
*/
extern void charput(unsigned char);
/*
*
I/O
*/
void
rx600_uart_pol_putc(char_t c, ID siopid)
{
#if 0
const SIOPINIB *p_siopinib;
---------------------------------------------------------------------------------sil_wrb_mem((void *)p_siopinib->tdreg, (uint8_t)c);
!
!
#endif
!
!
}
charput(c);
SSP HEW
26
5)SSP
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
/*
*
I/O
*/
bool_t
rx600_uart_snd_chr(SIOPCB *p_siopcb, char_t c)
{
bool_t ercd = false;
#if 0
if((sil_reb_mem(
(void *)p_siopcb->p_siopinib->ssrreg) & SCI_SSR_TEND_BIT) != 0){
sil_wrb_mem((void *)p_siopcb->p_siopinib->tdreg, (uint8_t)c);
ercd = true;
}
#endif
charput(c);
ercd = true;
return ercd;
!
!
}
SSP HEW
27
5)SSP
!
!
!
syssvc\serial.c: serial_wri_chr(SPCB *p_spcb, char_t c)
/*
1
*/
extern void charput(unsigned char);
/*
!
*
1
!
*/
!
static ER_BOOL
!
serial_wri_chr(SPCB *p_spcb, char_t c)
!
{
!
#if 0
!
bool_t
buffer_full;
!
ER
ercd, rercd;
!
/*
!
* LF
CR
!
*/
---------------- ---------------------------------------------------------------------------------!
#endif
!
charput(c);
!
return(false);
!
}
!
SSP HEW
28
5)SSP
!
!
!
!
!
!
sample1.c
void main_task(intptr_t exinf)
{
static ID tskid = TASK1;
static uint_t tskno = 1;
char_t c;
!
!
!
!
!
-------
LOGPUT("Sample program ACTIVE.\n");
/*
*/
if(serial_rea_dat(SIO_PORTID , &c , 1) > 0)
{
------------------------------------
SSP HEW
29
6)
!
sample1.c fg
10
#include "sample1.h"
CRE_TSK(INIT_TASK , { TA_ACT , 0 , init_task , INIT_PRIORITY , STACK_SIZE , NULL });
CRE_TSK(MAIN_TASK , { TA_NULL , 0 , main_task , MAIN_PRIORITY , STACK_SIZE ,
NULL });
CRE_TSK(TASK1 , { TA_NULL , 1 , task , TASK1_PRIORITY , STACK_SIZE , NULL });
CRE_TSK(TASK2 , { TA_NULL , 2 , task , TASK2_PRIORITY , STACK_SIZE , NULL });
CRE_TSK(TASK3 , { TA_NULL , 3 , task , TASK3_PRIORITY , STACK_SIZE , NULL });
!
DEF_EPRI(TASK3 , { TASK3_EXEPRIORITY });
!
!
!
!
!
!
!
!
!
!
#ifdef USE_TIMER
CRE_CYC(MAIN_CYC , { TA_STA , MAIN_TASK , cyclic_handler , 200 , 100 });
#endif /* USE_TIMER */
---------------------------------------------------------------
SSP HEW
30
7)
SSP HEW
31
4.
!
!
!
!
Sourceforge
https://sourceforge.jp/users/alvstakahashi/pf/TOPPERS_ETC/
wiki/FrontPage
Interface
RX62N
HEW
E1
SIO
!
!
SSP
-->
!
SSP HEW
32
SSP
SECTION 2
SSP
1
!
TOPPERS/SSP
shrink-sp-rx62n
!
SSP
2
!
!
!
1)
2)
3)
SSP
3
SSP
!
Interface
RX62N
RTOS
RTOS
/
!
!
!
!
!
SSP
/
!
SSP
4
!
!
TOPPERS/SSP
SSP
5
)
2)RX
HELLOWORLD
3)
SSP
4)
SSP
6
)
Windows PC
High-Performance
Embedded Workshop
RX
C/C++
V.1.02 Release 01
ccrxv102r01_ev.exe
SSP shrink-sp-rx62n.zip
SSP
7
High-Performance
Embedded Workshop
SSP
8
Shrink-SP-RX62N
SSP
9
2)RX
HELLOWORLD
!
RX
!
HEW
(HEW)
main()
SSP
10
2)RX
HELLOWORLD
SSP
11
2)RX
HELLOWORLD
SSP
12
2)RX
HELLOWORLD
SSP
13
2)RX
HELLOWORLD
SSP
14
2)RX
HELLOWORLD
!
!
!
!
!
!
!
!
!
!
!
***********************************************************************/
/*
*/
/* FILE
:hello1.c
*/
/* DATE
:Mon, Jul 21, 2014
*/
/* DESCRIPTION :Main Program
*/
/* CPU TYPE :RX62N
*/
/*
*/
/* This file is generated by Renesas Project Generator (Ver.4.53). */
/* NOTE:THIS IS A TYPICAL EXAMPLE.
*/
/*
*/
/***********************************************************************/
!
!
!
!
!
!
!
#include<stdio.h>
//#include "typedefine.h"
#ifdef __cplusplus
//#include <ios>
// Remove the comment when you use ios
//_SINT ios_base::Init::init_cnt;
// Remove the comment when you use ios
#endif
SSP
15
2)RX
HELLOWORLD
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
void main(void);
#ifdef __cplusplus
extern "C" {
void abort(void);
}
#endif
void main(void)
{
printf("Hello SWEST\n");
}
#ifdef __cplusplus
void abort(void)
{
}
#endif
SSP
16
2)RX
HELLOWORLD
HEW
CPU
SSP
17
3)
!
SSP
(
SSP
SSP/
include
! (
SSP C
SSP
18
3)
SSP
!
RXstanderd toolchain
SSP
19
3)
SSP
SSP
20
3)
SSP
(
-vectn=28=__kernel_default_int_handler_entry
RXstanderd toolchain
SSP
21
3)
SSP
SSP
22
3)
SSP
!
!
!
!
!
vect.h
// CMTU0_CMT0
//#pragma interrupt (Excep_CMTU0_CMT0(vect=28))
//void Excep_CMTU0_CMT0(void);
SSP
23
3)
SSP
(
!
resetprg.c
//
set_psw(PSW_init);
chg_pmusr();
sta_ker();
//
main();
!
!
!
!
!
// Set Ubit & Ibit for PSW
_CLOSEALL();
// Use SIM I/O
SSP
24
3)
(5)
!
!
!
!
SSP
#include <kernel.h>
#include "kernel_cfg.h"
#include <machine.h>
#include "iodefine.h"
iodefine.h
// Include machine.h
// Include
!
!
!
!
!
!
!
#include<stdio.h>
//#include "typedefine.h"
#ifdef __cplusplus
//#include <ios>
// Remove the comment when you use ios
//_SINT ios_base::Init::init_cnt;
// Remove the comment when you use ios
#endif
SSP
25
3)
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
SSP
void main(intptr_t arg);
#ifdef __cplusplus
extern "C" {
void abort(void);
}
#endif
void main(intptr_t arg)
{
printf("hello main\n");
PORT1.DDR.BIT.B5 = 1;
MSTP( CMT0 ) = 0;
CMT0.CMCOR = 4800000/512/2 - 1;
CMT0.CMCR.WORD = 0x0043;
IEN( CMT0, CMI0 ) = 1;
IPR( CMT0, CMI0 ) = 1;
Interrupt Level is 1
//
set_psw( 0x00010000 );
IPL=0 of PSW
CMT.CMSTR0.BIT.STR0 = 1;
//
for(;;)
//
;
}
// P15 is Output
// Wakeup CMT0,CMT1
// CMCOR is 500ms Count
// CMIE is Enable,CKS is PCLK/512
// CMI0 Enable
// CMI0
// Set I=1,
// Start CMT0
SSP
26
3)
!
!
!
!
!
!
void task2(intptr_t arg)
{
printf("task2\n");
}
void CMI0(void) // Interrupt Function
{
!
!
!
!
!
!
!
!
SSP
}
// Multiple Interrupt Enable
// Reverse P15(LED)
PORT1.DR.BIT.B5 ^= 1;
iact_tsk(TASK2_ID);
#ifdef __cplusplus
void abort(void)
{
}
#endif
SSP
27
3)
!
SSP
(6)
SSP
28
3)
SSP
SSP
29
3)
SSP
!
SSP
30
4)
SSP
31
!
!
target_kernel.h
prc_support.src
!
!
!
!
JUMP
TOPPERS/SSP
/
SSP
32
WAIT_SSP
SECTION 3
WAIT_SSP
1
!
WAIT_SSP
WAIT_SSP
2
!
!
!
!
!
1)WAIT_SSP
2)WAIT_SSP
3)WAIT_SSP
4)WAIT_SSP
5)
WAIT_SSP
3
WAIT_SSP
!
SSP
!
WAIT_SSP
4
WAIT_SSP
!
!
WAIT_SSP
5
WAIT_SSP
!
wai_tsk() / go_tsk()
/
!
8
8
!
WAIT_SSP
6
WAIT_SSP
!
!
SSP
https://sourceforge.jp/users/
alvstakahashi/pf/WAIT_SSP/files/
!
WAIT_SSP
7
WAIT_SSP
!
!
1)
setjmp/longjmp
2)
WAIT_SSP
/
8
1)
/
WAIT_SSP
9
1)
/
jmp
!
setjmp
!
longjmp
!
setjmp
setjmp
longjmp
WAIT_SSP
jmp
10
2)
!
setjmp/longjmp
ACC
!
/
RUN
!
WAIT_SSP
11
2)
!
RUN
setjmp
longjmp()
WAIT_SSP
12
2)
WAIT_SSP
13
2)
WAIT_SSP
14
(RTOS
!
!
IoT
(Ardiuno)
!
!
WAIT_SSP
15
SSP
SSP
SECTION 4
!
SSP
SSP
1
1
!
start.src---
!
target_support.src---
!
startup.c ----sta_ker()
!
target_config.c ----
HEW
2
2
!
!
!
!
!
!
!
!
!
!
!
prc_config.c ---rx600_usrt.c ---target_serial.c ---target_timer.c ---banner.c ---serial.c ---banner.tf ---kernel_cfg.c
kernel_initialize_task ---kernel_initialize_interrupt() ---kernel_initialize_exception() ----
3
3
!
task.c ---
4
4
!
!
!
!
!
!
!
!
!
prc_support.src
kernel_start_dispatch ----------kernel_call_exit_kernel----------ret_int
--------------------------ret_int_r_rte:
----------------kernel_interrupt: ---------------kernel_exception ---------------interrupt.c ---------------------------exception.c --------------------------
© Copyright 2025