← Back to team overview

t-kernel-zh team mailing list archive

Re: [T-Kernel] T-Kernel 使用 mktksvc 生成系统调用汇编程序

 

现在可以原版中所有的 API 函数供 ARMCC 使用,现在的使用方法是:

 $ git clone git://git.open.tkernel.org/t-kernel open-t-kernel
 $ cd open-t-kernel
 $ cd tkernel_source
 $ ln -s Makefile.armct Makefile
 $ make distclean
 $ make prepare
 $ make
 

On Sun, Jan 08, 2017 at 04:28:34PM +0800, Du Huanpeng wrote:
> 在 T-Kernel 里面的系统调用,有一些是使用 perl 自动生成的,而且生成的
> 是 GNU 格式的汇编语言。Open T-Kernel 需要支持不同编译器,这部分就需要
> 进行改动。
> 先试着执行一下:
> 
>  $ cd etkernel_source
>  $ ./etc/mktksvc
>  -bash: ./etc/mktksvc: /usr/local/bin/perl: bad interpreter: No such file or directory
> 
> 这个提示表明找不到 perl,那么可以确定一下系统有没有装 perl,如果没有
> 的话,就安装一个。
> 现在我的机器是有安装 perl,但仍然出现这个提示,可以先看一下脚本的内容
> 
>  $ head -5 etc/mktksvc     
>  #! /usr/local/bin/perl
>  #
>  # ----------------------------------------------------------------------
>  #     T-Kernel 2.0 Software Package
>  #
> 
> 再查看一下本机的 perl 安装路径:
> 
>  $which perl
>  /usr/bin/perl
> 
> 发现,脚本写的路径与本机不同,解决的方法可以修改脚本,也可以使用 perl
> 直接执行。
> 
>  $ perl etc/mktksvc
>  $./etc/mktksvc 
>  usage: mktksvc cpu infile
> 
> 其实研究过之后,这个 cpu 是一个输出的目录,而 infile 是一个头文件,而
> 且里面有标志:
> 
>  $vi include/tk/syscall.h +617
> 
> /* [BEGIN SYSCALLS] */
> 
> 
>  $vi include/tk/syscall.h +753
> 
> /* [END SYSCALLS] */
> 
> 而且这个脚本执行需要在特定的路径,经试验之后发现:
> 
>  $ cd lib/libsvc/src
>  $../../../etc/mktksvc em1d ../../../include/tk/syscall.h
> 
> 生成的文件位于当前目录下的 sysdepend/${cpu}/ 下面,可以尝试
> 
>  $ mkdir sysdepend/sta1095
>  $ ../../../etc/mktksvc sta1095 ../../../include/tk/syscall.h     
>  can not open sysdepend/sta1095/tk_cre_tsk.S
>  
>  
>  $ ../../../etc/mktksvc em1d ../../../include/tk/syscall.h 
>  $ ../../../etc/mktksvc sta1095 ../../../include/tk/syscall.h                                                                                                 
>  can not open sysdepend/sta1095/tk_cre_tsk.S
>  $ mkdir sysdepend/sta1095
>  $ ../../../etc/mktksvc sta1095 ../../../include/tk/syscall.h 
>  Can't locate ../build/sta1095/makeiftk.pl in @INC (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at ../../../etc/mktksvc line 200.
>  $ mkdir ../build/sta1095
>  $ cp ../build/em1d/*.pl ../build/sta1095/
>  $ # 这个脚本在这里可以看到还依赖于上面的 .pl 文件
>  $ # 现在再执行这个脚本
>  $ ../../../etc/mktksvc sta1095 ../../../include/tk/syscall.h
>  $ ls sysdepend/sta1095/
>  tk_acp_por.S    tk_cre_mbf.S  tk_del_flg.S  tk_dly_tsk_u.S  tk_get_mpl_u.S  tk_ras_tex.S    tk_ref_mtx.S    tk_rpl_rdv.S    tk_snd_mbf.S    tk_wai_flg_u.S
>  tk_acp_por_u.S  tk_cre_mbx.S  tk_del_mbf.S  tk_ena_dsp.S    tk_get_otm.S    tk_rcv_mbf.S    tk_ref_por.S    tk_rsm_tsk.S    tk_snd_mbf_u.S  tk_wai_sem.S
>  tk_cal_por.S    tk_cre_mpf.S  tk_del_mbx.S  tk_ena_tex.S    tk_get_otm_u.S  tk_rcv_mbf_u.S  tk_ref_sem.S    tk_set_cpr.S    tk_snd_mbx.S    tk_wai_sem_u.S
>  tk_cal_por_u.S  tk_cre_mpl.S  tk_del_mpf.S  tk_ena_wai.S    tk_get_reg.S    tk_rcv_mbx.S    tk_ref_ssy.S    tk_set_flg.S    tk_sta_alm.S    tk_wai_tev.S
>  tk_can_wup.S    tk_cre_mtx.S  tk_del_mpl.S  tk_end_tex.S    tk_get_res.S    tk_rcv_mbx_u.S  tk_ref_sys.S    tk_set_pow.S    tk_sta_alm_u.S  tk_wai_tev_u.S
>  tk_chg_pri.S    tk_cre_por.S  tk_del_mtx.S  tk_evt_ssy.S    tk_get_rid.S    tk_ref_alm.S    tk_ref_tex.S    tk_set_reg.S    tk_sta_cyc.S    tk_wup_tsk.S
>  tk_chg_slt.S    tk_cre_res.S  tk_del_por.S  tk_exd_tsk.S    tk_get_tid.S    tk_ref_alm_u.S  tk_ref_tsk.S    tk_set_rid.S    tk_sta_ssy.S
>  tk_chg_slt_u.S  tk_cre_sem.S  tk_del_res.S  tk_ext_tsk.S    tk_get_tim.S    tk_ref_cyc.S    tk_ref_tsk_u.S  tk_set_tim.S    tk_sta_tsk.S
>  tk_cln_ssy.S    tk_cre_tsk.S  tk_del_sem.S  tk_frsm_tsk.S   tk_get_tim_u.S  tk_ref_cyc_u.S  tk_ref_ver.S    tk_set_tim_u.S  tk_stp_alm.S
>  tk_clr_flg.S    tk_def_int.S  tk_del_tsk.S  tk_fwd_por.S    tk_get_tsp.S    tk_ref_flg.S    tk_rel_mpf.S    tk_set_tsp.S    tk_stp_cyc.S
>  tk_cre_alm.S    tk_def_ssy.S  tk_dis_dsp.S  tk_get_cpr.S    tk_inf_tsk.S    tk_ref_mbf.S    tk_rel_mpl.S    tk_sig_sem.S    tk_sus_tsk.S
>  tk_cre_cyc.S    tk_def_tex.S  tk_dis_tex.S  tk_get_mpf.S    tk_inf_tsk_u.S  tk_ref_mbx.S    tk_rel_wai.S    tk_sig_tev.S    tk_ter_tsk.S
>  tk_cre_cyc_u.S  tk_del_alm.S  tk_dis_wai.S  tk_get_mpf_u.S  tk_loc_mtx.S    tk_ref_mpf.S    tk_ret_int.S    tk_slp_tsk.S    tk_unl_mtx.S
>  tk_cre_flg.S    tk_del_cyc.S  tk_dly_tsk.S  tk_get_mpl.S    tk_loc_mtx_u.S  tk_ref_mpl.S    tk_rot_rdq.S    tk_slp_tsk_u.S  tk_wai_flg.S
>  $
> 
> 下一步,需要把这些内容移植到 KBuild 里面去,主要有两方面的工作:
>  1. 脚本修改或者重写之后集成到 KBuild 里
>  2. 对不同编译器生成不同的汇编代码
> 
> -- 
> 
> ...
> duhuanpeng.
> u74147@gmai1.com
> 
> 
> [keyword]
> 
> T-Kernel perl makeifex.pl makeiftk.pl makeifdrv.pl makeiftd.pl
> mergesrec mkdrvsvc mkiflib mktdsvc mktksvc

-- 
Copyright (c) 2017 duhuanpeng <u74147@xxxxxxxxx>
>From 86d1492765ecc0d795d49f4d8014e0d02a1ce9ef Mon Sep 17 00:00:00 2001
From: Du Huanpeng <u74147@xxxxxxxxx>
Date: Wed, 11 Jan 2017 00:03:17 +0800
Subject: [PATCH] armct support: perl script for generate syscall

How to use this script:

 $ cd tkernel_source
 $ ./etc/mktksvc $(ARCH) ./include/tk/syscall.h
 $ # $(ARCH) is nonsense
or
 $ make -f Makefile.armct mktksvc

Signed-off-by: Du Huanpeng <u74147@xxxxxxxxx>
---
 tkernel_source/Makefile.armct                     | 138 ++++++++++++++++++++++
 tkernel_source/etc/mktksvc                        |  18 ++-
 tkernel_source/etc/sysdepend/cpu/em1d/makeiftk.pl |  44 +++++++
 3 files changed, 195 insertions(+), 5 deletions(-)

diff --git a/tkernel_source/Makefile.armct b/tkernel_source/Makefile.armct
index 3bf25cb..b6b1de0 100644
--- a/tkernel_source/Makefile.armct
+++ b/tkernel_source/Makefile.armct
@@ -174,6 +174,141 @@ SRC += sysdepend/arm/lib/libtk/waitnsec.c
 ##SRC += sysdepend/arm/lib/libtk/disint.S
 ##SRC += sysdepend/arm/lib/libtk/disint-armct.S
 
+## include/tk/syscall.h  ##
+SRC += sysdepend/arm/lib/libsvc/tk_cre_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_sta_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_ext_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_exd_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_ter_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_dis_dsp.S
+SRC += sysdepend/arm/lib/libsvc/tk_ena_dsp.S
+SRC += sysdepend/arm/lib/libsvc/tk_chg_pri.S
+SRC += sysdepend/arm/lib/libsvc/tk_chg_slt.S
+SRC += sysdepend/arm/lib/libsvc/tk_rot_rdq.S
+SRC += sysdepend/arm/lib/libsvc/tk_rel_wai.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_tid.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_tsp.S
+SRC += sysdepend/arm/lib/libsvc/tk_set_tsp.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_rid.S
+SRC += sysdepend/arm/lib/libsvc/tk_set_rid.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_reg.S
+SRC += sysdepend/arm/lib/libsvc/tk_set_reg.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_cpr.S
+SRC += sysdepend/arm/lib/libsvc/tk_set_cpr.S
+SRC += sysdepend/arm/lib/libsvc/tk_inf_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_def_tex.S
+SRC += sysdepend/arm/lib/libsvc/tk_ena_tex.S
+SRC += sysdepend/arm/lib/libsvc/tk_dis_tex.S
+SRC += sysdepend/arm/lib/libsvc/tk_ras_tex.S
+SRC += sysdepend/arm/lib/libsvc/tk_end_tex.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_tex.S
+SRC += sysdepend/arm/lib/libsvc/tk_sus_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_rsm_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_frsm_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_slp_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_wup_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_can_wup.S
+SRC += sysdepend/arm/lib/libsvc/tk_sig_tev.S
+SRC += sysdepend/arm/lib/libsvc/tk_wai_tev.S
+SRC += sysdepend/arm/lib/libsvc/tk_dis_wai.S
+SRC += sysdepend/arm/lib/libsvc/tk_ena_wai.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_sem.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_sem.S
+SRC += sysdepend/arm/lib/libsvc/tk_sig_sem.S
+SRC += sysdepend/arm/lib/libsvc/tk_wai_sem.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_sem.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_mtx.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_mtx.S
+SRC += sysdepend/arm/lib/libsvc/tk_loc_mtx.S
+SRC += sysdepend/arm/lib/libsvc/tk_unl_mtx.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_mtx.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_flg.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_flg.S
+SRC += sysdepend/arm/lib/libsvc/tk_set_flg.S
+SRC += sysdepend/arm/lib/libsvc/tk_clr_flg.S
+SRC += sysdepend/arm/lib/libsvc/tk_wai_flg.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_flg.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_mbx.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_mbx.S
+SRC += sysdepend/arm/lib/libsvc/tk_snd_mbx.S
+SRC += sysdepend/arm/lib/libsvc/tk_rcv_mbx.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_mbx.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_mbf.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_mbf.S
+SRC += sysdepend/arm/lib/libsvc/tk_snd_mbf.S
+SRC += sysdepend/arm/lib/libsvc/tk_rcv_mbf.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_mbf.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_por.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_por.S
+SRC += sysdepend/arm/lib/libsvc/tk_cal_por.S
+SRC += sysdepend/arm/lib/libsvc/tk_acp_por.S
+SRC += sysdepend/arm/lib/libsvc/tk_fwd_por.S
+SRC += sysdepend/arm/lib/libsvc/tk_rpl_rdv.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_por.S
+SRC += sysdepend/arm/lib/libsvc/tk_def_int.S
+SRC += sysdepend/arm/lib/libsvc/tk_ret_int.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_mpl.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_mpl.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_mpl.S
+SRC += sysdepend/arm/lib/libsvc/tk_rel_mpl.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_mpl.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_mpf.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_mpf.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_mpf.S
+SRC += sysdepend/arm/lib/libsvc/tk_rel_mpf.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_mpf.S
+SRC += sysdepend/arm/lib/libsvc/tk_set_tim.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_tim.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_otm.S
+SRC += sysdepend/arm/lib/libsvc/tk_dly_tsk.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_cyc.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_cyc.S
+SRC += sysdepend/arm/lib/libsvc/tk_sta_cyc.S
+SRC += sysdepend/arm/lib/libsvc/tk_stp_cyc.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_cyc.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_alm.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_alm.S
+SRC += sysdepend/arm/lib/libsvc/tk_sta_alm.S
+SRC += sysdepend/arm/lib/libsvc/tk_stp_alm.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_alm.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_ver.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_sys.S
+SRC += sysdepend/arm/lib/libsvc/tk_def_ssy.S
+SRC += sysdepend/arm/lib/libsvc/tk_sta_ssy.S
+SRC += sysdepend/arm/lib/libsvc/tk_cln_ssy.S
+SRC += sysdepend/arm/lib/libsvc/tk_evt_ssy.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_ssy.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_res.S
+SRC += sysdepend/arm/lib/libsvc/tk_del_res.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_res.S
+SRC += sysdepend/arm/lib/libsvc/tk_set_pow.S
+SRC += sysdepend/arm/lib/libsvc/tk_chg_slt_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_inf_tsk_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_tsk_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_slp_tsk_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_wai_tev_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_dly_tsk_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_wai_sem_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_wai_flg_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_rcv_mbx_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_loc_mtx_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_snd_mbf_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_rcv_mbf_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_cal_por_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_acp_por_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_mpl_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_mpf_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_set_tim_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_tim_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_otm_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_cre_cyc_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_cyc_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_sta_alm_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_alm_u.S
+######################################################################
+
 
 OBJ := $(SRC)
 OBJ := $(OBJ:.S=.o)
@@ -245,3 +380,6 @@ vmtronx: $(OBJ)
 
 clean:
 	rm -f $(OBJ)
+
+mktksvc:
+	./etc/mktksvc ARM
diff --git a/tkernel_source/etc/mktksvc b/tkernel_source/etc/mktksvc
index 077378a..b502a71 100755
--- a/tkernel_source/etc/mktksvc
+++ b/tkernel_source/etc/mktksvc
@@ -58,7 +58,8 @@ if ( $cpu eq "" ) {
 }
 if ( $infile eq "" ) {
 	print STDERR "Too few arguments\n";
-	exit(1);
+	print STDERR "Default: include/tk/syscall.h\n";
+	$infile = "include/tk/syscall.h"
 }
 
 #
@@ -159,7 +160,8 @@ if ( $makedeps ) {
 #
 # generate function code definition file
 #
-open(FN_H, ">$ENV{'BD'}/include/sys/svc/$fn_h") || die "can not open $ENV{'BD'}/include/sys/svc/$fn_h\n";
+# open(FN_H, ">$ENV{'BD'}/include/sys/svc/$fn_h") || die "can not open $ENV{'BD'}/include/sys/svc/$fn_h\n";
+open(FN_H, ">include/sys/svc/tkfncd.h") || die "ERROR: 222222222 can not open $ENV{'BD'}/include/sys/svc/$fn_h\n";
 
 ### create header part ###
 print FN_H <<EndOfFnHeader;
@@ -187,7 +189,8 @@ close(FN_H);
 #
 # generate branch table
 #
-open(TB_H, ">$ENV{'BD'}/include/sys/svc/$tb_h") || die "can not open $ENV{'BD'}/include/sys/svc/$tb_h\n";
+# open(TB_H, ">$ENV{'BD'}/include/sys/svc/$tb_h") || die "can not open $ENV{'BD'}/include/sys/svc/$tb_h\n";
+open(TB_H, ">include/sys/svc/tksvctbl.h") || die "ERROR: 1111111 can not open $ENV{'BD'}/include/sys/svc/$tb_h\n";
 
 ### create header part ###
 print TB_H <<EndOfTbHeader;
@@ -235,7 +238,8 @@ for ( $i = 0; $i <= $#syscalls; $i++ ) {
 	$fname =~ tr/A-Z/a-z/;	# to lower case
 
 	# open library source file
-	open(LIB, ">sysdepend/$cpu/$fname.S") || die "can not open sysdepend/$cpu/$fname.S\n";
+#	open(LIB, ">sysdepend/$cpu/$fname.S") || die "can not open sysdepend/$cpu/$fname.S\n";
+	open(LIB, ">sysdepend/arm/lib/libsvc/$fname.S") || die "can not open sysdepend/$cpu/$fname.S\n"; 
 
 	print LIB <<EndOfIfLibHeader;
 $copyright_c
@@ -248,9 +252,13 @@ $copyright_c
 EndOfIfLibHeader
 
 	# system dependencies
-	require("$ENV{'BD'}/etc/sysdepend/cpu/$cpu/makeiftk.pl");
+#	require("$ENV{'BD'}/etc/sysdepend/cpu/$cpu/makeiftk.pl");
+	require("etc/sysdepend/cpu/em1d/makeiftk.pl");
 	&makelib();
 
+#	print stderr "SYSCALL: $fname\n";
+	print stderr "GEN sysdepend/arm/lib/libsvc/$fname.S\n";
+
 	close(LIB);
 }
 
diff --git a/tkernel_source/etc/sysdepend/cpu/em1d/makeiftk.pl b/tkernel_source/etc/sysdepend/cpu/em1d/makeiftk.pl
index 5044ee0..66bf0bd 100755
--- a/tkernel_source/etc/sysdepend/cpu/em1d/makeiftk.pl
+++ b/tkernel_source/etc/sysdepend/cpu/em1d/makeiftk.pl
@@ -27,6 +27,7 @@ sub makelib
 #include <tk/sysdef.h>
 #include <sys/svc/$fn_h>
 
+#if (defined __GNUC__) && !(defined __SES_ARM) && !(defined __CROSSWORKS_ARM)
 	.text
 	.balign	4
 	.globl	Csym(${func})
@@ -40,6 +41,49 @@ Csym(${func}):
 	ldmfd	sp!, {lr}
 	ldmfd	sp!, {r4}
 	bx	lr
+	.end
+#endif
+
+#ifdef __CC_ARM
+
+; generated by Component: ARM Compiler 5.06 update 1 (build 61) Tool: armcc [4d35ad]
+; commandline armcc [--arm -S svc.c]
+;
+; DO NOT MODIFY.
+;
+; This file was generated by Kbuild
+;
+
+;----------------------------------------------------------------------
+;    Open T-Kernel Project
+;    Copyright 2017 Du Huanpeng <u74147@xxxxxxxxx>
+;----------------------------------------------------------------------
+
+        ARM
+        REQUIRE8
+        PRESERVE8
+
+        AREA ||.text||, CODE, READONLY, ALIGN=2
+
+${func} PROC
+	STMFD    sp!, {r4}
+	ADD      r4, sp, #4
+	STMFD    sp!, {lr}
+	LDR      ip, =TFN_${Func}
+	SWI      SWI_SVC
+	LDMFD    sp!, {lr}
+	LDMFD    sp!, {r4}
+        BX       lr
+        ENDP
+
+
+        EXPORT ${func} [CODE]
+
+
+
+        END
+
+#endif
 
 EndOfIfLibBody
 }
-- 
2.7.4

>From 0837abfb9fc5ef387b8ac207c3ff39b6514b9128 Mon Sep 17 00:00:00 2001
From: Du Huanpeng <u74147@xxxxxxxxx>
Date: Wed, 11 Jan 2017 08:39:43 +0800
Subject: [PATCH] armct support: perl: mktdsvc, include/tk/dbgspt.h

$ ./etc/mktdsvc $(ARCH) include/tk/dbgspt.h

Signed-off-by: Du Huanpeng <u74147@xxxxxxxxx>
---
 tkernel_source/Makefile.armct                     | 58 ++++++++++++++++++++++-
 tkernel_source/etc/mktdsvc                        | 16 +++++--
 tkernel_source/etc/sysdepend/cpu/em1d/makeiftd.pl | 41 ++++++++++++++++
 3 files changed, 108 insertions(+), 7 deletions(-)

diff --git a/tkernel_source/Makefile.armct b/tkernel_source/Makefile.armct
index b6b1de0..f04d85d 100644
--- a/tkernel_source/Makefile.armct
+++ b/tkernel_source/Makefile.armct
@@ -307,9 +307,62 @@ SRC += sysdepend/arm/lib/libsvc/tk_cre_cyc_u.S
 SRC += sysdepend/arm/lib/libsvc/tk_ref_cyc_u.S
 SRC += sysdepend/arm/lib/libsvc/tk_sta_alm_u.S
 SRC += sysdepend/arm/lib/libsvc/tk_ref_alm_u.S
-######################################################################
-
 
+## include/tk/dbgspt.h ##
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_tsk.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_sem.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_flg.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_mbx.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_mtx.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_mbf.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_por.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_mpf.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_mpl.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_cyc.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_alm.S
+SRC +=  sysdepend/arm/lib/libsvc/td_lst_ssy.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_sem.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_flg.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_mbx.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_mtx.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_mbf.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_por.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_mpf.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_mpl.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_cyc.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_alm.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_ssy.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_tsk.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_tex.S
+SRC +=  sysdepend/arm/lib/libsvc/td_inf_tsk.S
+SRC +=  sysdepend/arm/lib/libsvc/td_get_reg.S
+SRC +=  sysdepend/arm/lib/libsvc/td_set_reg.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_sys.S
+SRC +=  sysdepend/arm/lib/libsvc/td_get_tim.S
+SRC +=  sysdepend/arm/lib/libsvc/td_get_otm.S
+SRC +=  sysdepend/arm/lib/libsvc/td_rdy_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_sem_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_flg_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_mbx_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_mtx_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_smbf_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_rmbf_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_cal_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_acp_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_mpf_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_mpl_que.S
+SRC +=  sysdepend/arm/lib/libsvc/td_hok_svc.S
+SRC +=  sysdepend/arm/lib/libsvc/td_hok_dsp.S
+SRC +=  sysdepend/arm/lib/libsvc/td_hok_int.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_dsname.S
+SRC +=  sysdepend/arm/lib/libsvc/td_set_dsname.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_cyc_u.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_alm_u.S
+SRC +=  sysdepend/arm/lib/libsvc/td_ref_tsk_u.S
+SRC +=  sysdepend/arm/lib/libsvc/td_inf_tsk_u.S
+SRC +=  sysdepend/arm/lib/libsvc/td_get_tim_u.S
+SRC +=  sysdepend/arm/lib/libsvc/td_get_otm_u.S
+######################################################################
 OBJ := $(SRC)
 OBJ := $(OBJ:.S=.o)
 OBJ := $(OBJ:.c=.o)
@@ -383,3 +436,4 @@ clean:
 
 mktksvc:
 	./etc/mktksvc ARM
+	./etc/mktdsvc ARM
diff --git a/tkernel_source/etc/mktdsvc b/tkernel_source/etc/mktdsvc
index d9af592..8b31f26 100755
--- a/tkernel_source/etc/mktdsvc
+++ b/tkernel_source/etc/mktdsvc
@@ -58,7 +58,8 @@ if ( $cpu eq "" ) {
 }
 if ( $infile eq "" ) {
 	print STDERR "Too few arguments\n";
-	exit(1);
+	print STDERR "Default: include/tk/dbgspt.h\n";
+	$infile = "include/tk/dbgspt.h";
 }
 
 #
@@ -159,7 +160,8 @@ if ( $makedeps ) {
 #
 # generate function code definition file
 #
-open(FN_H, ">$ENV{'BD'}/include/sys/svc/$fn_h") || die "can not open $ENV{'BD'}/include/sys/svc/$fn_h\n";
+# open(FN_H, ">$ENV{'BD'}/include/sys/svc/$fn_h") || die "can not open $ENV{'BD'}/include/sys/svc/$fn_h\n";
+open(FN_H, ">include/sys/svc/$fn_h") || die "can not open include/sys/svc/$fn_h\n";
 
 ### create header part ###
 print FN_H <<EndOfFnHeader;
@@ -186,7 +188,8 @@ close(FN_H);
 #
 # generate branch table
 #
-open(TB_H, ">$ENV{'BD'}/include/sys/svc/$tb_h") || die "can not open $ENV{'BD'}/include/sys/svc/$tb_h\n";
+# open(TB_H, ">$ENV{'BD'}/include/sys/svc/$tb_h") || die "can not open $ENV{'BD'}/include/sys/svc/$tb_h\n";
+open(TB_H, ">include/sys/svc/$tb_h") || die "can not open include/sys/svc/$tb_h\n";
 
 ### create header part ###
 print TB_H <<EndOfTbHeader;
@@ -234,7 +237,9 @@ for ( $i = 0; $i <= $#syscalls; $i++ ) {
 	$fname =~ tr/A-Z/a-z/;	# to lower case
 
 	# open library source file
-	open(LIB, ">sysdepend/$cpu/$fname.S") || die "can not open sysdepend/$cpu/$fname.S\n";
+#	open(LIB, ">sysdepend/$cpu/$fname.S") || die "can not open sysdepend/$cpu/$fname.S\n";
+	open(LIB, ">sysdepend/arm/lib/libsvc/$fname.S") || die "sysdepend/arm/lib/libsvc/$fname.S\n";
+	print stderr "GEN: sysdepend/arm/lib/libsvc/$fname.S\n";
 
 	print LIB <<EndOfIfLibHeader;
 $copyright_c
@@ -247,7 +252,8 @@ $copyright_c
 EndOfIfLibHeader
 
 	# system dependencies
-	require("$ENV{'BD'}/etc/sysdepend/cpu/$cpu/makeiftd.pl");
+#	require("$ENV{'BD'}/etc/sysdepend/cpu/$cpu/makeiftd.pl");
+	require("etc/sysdepend/cpu/em1d/makeiftd.pl");
 	&makelib();
 
 	close(LIB);
diff --git a/tkernel_source/etc/sysdepend/cpu/em1d/makeiftd.pl b/tkernel_source/etc/sysdepend/cpu/em1d/makeiftd.pl
index b121a4a..a40d27a 100755
--- a/tkernel_source/etc/sysdepend/cpu/em1d/makeiftd.pl
+++ b/tkernel_source/etc/sysdepend/cpu/em1d/makeiftd.pl
@@ -27,6 +27,7 @@ sub makelib
 #include <tk/sysdef.h>
 #include <sys/svc/$fn_h>
 
+#if (defined __GNUC__) && !(defined __SES_ARM) && !(defined __CROSSWORKS_ARM)
 	.text
 	.balign	4
 	.globl	Csym(${func})
@@ -37,6 +38,46 @@ Csym(${func}):
 	swi	SWI_DEBUG
 	ldmfd	sp!, {lr}
 	bx	lr
+	.end
+#endif
+
+#ifdef __CC_ARM
+
+; generated by Component: ARM Compiler 5.06 update 1 (build 61) Tool: armcc [4d35ad]
+; commandline armcc [--arm -S svc.c]
+;
+; DO NOT MODIFY.
+;
+; This file was generated by Kbuild
+;
+
+;----------------------------------------------------------------------
+;    Open T-Kernel Project
+;    Copyright 2017 Du Huanpeng <u74147@xxxxxxxxx>
+;----------------------------------------------------------------------
+
+        ARM
+        REQUIRE8
+        PRESERVE8
+
+        AREA ||.text||, CODE, READONLY, ALIGN=2
+
+${func} PROC
+        STMFD    sp!, {lr}
+        LDR      ip, =TDFN_${Func}
+        SWI      SWI_DEBUG
+        LDMFD    sp!, {lr}
+        BX       lr
+        ENDP
+
+
+        EXPORT ${func} [CODE]
+
+
+
+        END
+
+#endif
 
 EndOfIfLibBody
 }
-- 
2.7.4

>From 6914623d986e1f971c3e764d5241ee5d2d7e6a63 Mon Sep 17 00:00:00 2001
From: Du Huanpeng <u74147@xxxxxxxxx>
Date: Wed, 11 Jan 2017 13:47:08 +0800
Subject: [PATCH] armct support: peral script mkiflib

currently, these files below has 'iflib'

 include/sys/segment.h
 include/tk/sysmgr.h
 include/tk/devmgr.h
 include/device/serialio.h
 include/device/pcmcia.h
 include/device/em1d512_iic.h

Signed-off-by: Du Huanpeng <u74147@xxxxxxxxx>
---
 tkernel_source/Makefile.armct                      | 29 ++++++++++++--
 tkernel_source/etc/mkiflib                         | 25 +++++++++---
 tkernel_source/etc/sysdepend/cpu/em1d/makeifdrv.pl | 44 ++++++++++++++++++++++
 tkernel_source/etc/sysdepend/cpu/em1d/makeifex.pl  | 44 ++++++++++++++++++++++
 4 files changed, 132 insertions(+), 10 deletions(-)

diff --git a/tkernel_source/Makefile.armct b/tkernel_source/Makefile.armct
index f04d85d..34246b8 100644
--- a/tkernel_source/Makefile.armct
+++ b/tkernel_source/Makefile.armct
@@ -363,6 +363,15 @@ SRC +=  sysdepend/arm/lib/libsvc/td_inf_tsk_u.S
 SRC +=  sysdepend/arm/lib/libsvc/td_get_tim_u.S
 SRC +=  sysdepend/arm/lib/libsvc/td_get_otm_u.S
 ######################################################################
+## Default: include/tk/sysmgr.h ##
+SRC += sysdepend/arm/lib/libsvc/tk_get_cfn.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_cfs.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_smb.S
+SRC += sysdepend/arm/lib/libsvc/tk_rel_smb.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_smb.S
+SRC += sysdepend/arm/lib/libsvc/_getkernelcommonarea.S
+SRC += sysdepend/arm/lib/libsvc/_syslog_send.S
+######################################################################
 OBJ := $(SRC)
 OBJ := $(OBJ:.S=.o)
 OBJ := $(OBJ:.c=.o)
@@ -429,11 +438,23 @@ vmtronx: $(OBJ)
 	$(CC) $(CFLAGS) $< -c -o $@
 
 %.o: %.S
-	$(CC) $(CFLAGS) $< -c -o $@
+	$(CC) $(CFLAGS) $< -c -o $@ -D__ASSEMBLY__ -D_in_asm_source_
 
 clean:
 	rm -f $(OBJ)
 
-mktksvc:
-	./etc/mktksvc ARM
-	./etc/mktdsvc ARM
+distclean:
+	rm -f $(OBJ)
+	git checkout -- sysdepend/arm/lib/libsvc
+
+prepare:
+	./etc/mktksvc ARM include/tk/dbgspt.h
+	./etc/mktdsvc ARM include/tk/dbgspt.h
+	./etc/mkiflib ARM include/sys/consio.h
+	./etc/mkiflib ARM include/sys/segment.h
+	./etc/mkiflib ARM include/tk/sysmgr.h
+	./etc/mkiflib ARM include/tk/devmgr.h
+	./etc/mkiflib ARM include/device/serialio.h
+	./etc/mkiflib ARM include/device/pcmcia.h
+	./etc/mkiflib ARM include/device/em1d512_iic.h
+
diff --git a/tkernel_source/etc/mkiflib b/tkernel_source/etc/mkiflib
index 60c18f8..63846ac 100755
--- a/tkernel_source/etc/mkiflib
+++ b/tkernel_source/etc/mkiflib
@@ -58,7 +58,8 @@ if ( $cpu eq "" ) {
 }
 if ( $infile eq "" ) {
 	print STDERR "Too few arguments\n";
-	exit(1);
+	print STDERR "Default: include/tk/sysmgr.h\n";
+	$infile = "include/tk/sysmgr.h";
 }
 
 chop($infile_base = `basename $infile`);
@@ -179,7 +180,8 @@ if ( $makedeps ) {
 #
 # generate function code definition file
 #
-open(FN_H, ">$ENV{'BD'}/include/sys/svc/$fn_h") || die "can not open $ENV{'BD'}/include/sys/svc/$fn_h\n";
+# open(FN_H, ">$ENV{'BD'}/include/sys/svc/$fn_h") || die "can not open $ENV{'BD'}/include/sys/svc/$fn_h\n";
+open(FN_H, ">include/sys/svc/$fn_h") || die "can not open include/sys/svc/$fn_h\n";
 
 ### create header part ###
 print FN_H <<EndOfFnHeader;
@@ -190,7 +192,13 @@ $copyright_c
  *	   (generated automatically)
  */
 
+/*
+ * DO NOT MODIFY.
+ * This file was generated by Kbuild
+ */
+
 #include <sys/ssid.h>
+#include <compiler.h>
 
 EndOfFnHeader
 
@@ -215,7 +223,7 @@ for ( $i = 0; $i <= $#syscalls; $i++ ) {
 
 	( $Func, $func, $ret, @para ) = &split_func($syscalls[$i]);
 	$fno = (($i + 1) << 16) + (($#para + 1) << 8);
-	printf FN_H "#define ${prefix}_${Func}_FN\t(0x%08x | ${svc})\n", $fno;
+	printf FN_H "#define ${prefix}_${Func}_FN\t(0x%08x __BITOR__ ${svc})\n", $fno;
 }
 print FN_H "\n";
 
@@ -225,7 +233,8 @@ close(FN_H);
 #
 # create header file (if*.h)
 #
-open(IF_H, ">$ENV{'BD'}/include/sys/svc/$if_h") || die "can not open $ENV{'BD'}/include/sys/svc/$if_h\n";
+# open(IF_H, ">$ENV{'BD'}/include/sys/svc/$if_h") || die "can not open $ENV{'BD'}/include/sys/svc/$if_h\n";
+open(IF_H, ">include/sys/svc/$if_h") || die "can not open include/sys/svc/$if_h\n";
 
 ### generate header part ###
 print IF_H <<EndOfIfHeader;
@@ -279,7 +288,8 @@ for ( $i = 0; $i <= $#syscalls; $i++ ) {
 	$fname =~ tr/A-Z/a-z/;	# to lower case
 
 	# open library source file
-	open(LIB, ">sysdepend/$cpu/$fname.S") || die "can not open sysdepend/$cpu/$fname.S\n";
+#	open(LIB, ">sysdepend/$cpu/$fname.S") || die "can not open sysdepend/$cpu/$fname.S\n";
+	open(LIB, ">sysdepend/arm/lib/libsvc/$fname.S") || die "sysdepend/arm/lib/libsvc/$fname.S\n";
 
 	print LIB <<EndOfIfLibHeader;
 $copyright_c
@@ -292,9 +302,12 @@ $copyright_c
 EndOfIfLibHeader
 
 	# system dependencies
-	require("$ENV{'BD'}/etc/sysdepend/cpu/$cpu/makeifex.pl");
+#	require("$ENV{'BD'}/etc/sysdepend/cpu/$cpu/makeifex.pl");
+	require("etc/sysdepend/cpu/em1d/makeifex.pl");
 	&makelibex();
 
+	print stderr "sysdepend/arm/lib/libsvc/$fname.S\n";
+
 	close(LIB);
 }
 
diff --git a/tkernel_source/etc/sysdepend/cpu/em1d/makeifdrv.pl b/tkernel_source/etc/sysdepend/cpu/em1d/makeifdrv.pl
index 1bc064b..d7790fe 100755
--- a/tkernel_source/etc/sysdepend/cpu/em1d/makeifdrv.pl
+++ b/tkernel_source/etc/sysdepend/cpu/em1d/makeifdrv.pl
@@ -28,6 +28,7 @@ sub makelibdrv
 #include <tk/sysdef.h>
 #include "$fn_h"
 
+#if (defined __GNUC__) && !(defined __SES_ARM) && !(defined __CROSSWORKS_ARM)
 	.text
 	.balign	4
 	.globl	Csym(${func})
@@ -41,6 +42,49 @@ Csym(${func}):
 	ldmfd	sp!, {lr}
 	add	sp, sp, #4*4
 	bx	lr
+	.end
+#endif
+
+#ifdef __CC_ARM
+
+; generated by Component: ARM Compiler 5.06 update 1 (build 61) Tool: armcc [4d35ad]
+; commandline armcc [--arm -S svc.c]
+;
+; DO NOT MODIFY.
+;
+; This file was generated by Kbuild
+;
+
+;----------------------------------------------------------------------
+;    Open T-Kernel Project
+;    Copyright 2017 Du Huanpeng <u74147@xxxxxxxxx>
+;----------------------------------------------------------------------
+
+        ARM
+        REQUIRE8
+        PRESERVE8
+
+        AREA ||.text||, CODE, READONLY, ALIGN=2
+
+${func} PROC
+        STMFD    sp!, {r0-r3}
+        MOV      r0, sp
+        STMFD    sp!, {lr}
+        LDR      ip, =${prefix}_${Func}_FN
+        SWI      SWI_SVC
+        LDMFD    sp!, {lr}
+        ADD      sp, sp, #4*4
+        BX       lr
+        ENDP
+
+
+        EXPORT ${func} [CODE]
+
+
+
+        END
+
+#endif
 
 EndOfExtIfLibBody
 }
diff --git a/tkernel_source/etc/sysdepend/cpu/em1d/makeifex.pl b/tkernel_source/etc/sysdepend/cpu/em1d/makeifex.pl
index 5c14178..1b62423 100755
--- a/tkernel_source/etc/sysdepend/cpu/em1d/makeifex.pl
+++ b/tkernel_source/etc/sysdepend/cpu/em1d/makeifex.pl
@@ -27,6 +27,7 @@ sub makelibex
 #include <tk/sysdef.h>
 #include <sys/svc/$fn_h>
 
+#if (defined __GNUC__) && !(defined __SES_ARM) && !(defined __CROSSWORKS_ARM)
 	.text
 	.balign	4
 	.globl	Csym(${func})
@@ -40,6 +41,49 @@ Csym(${func}):
 	ldmfd	sp!, {lr}
 	add	sp, sp, #4*4
 	bx	lr
+	.end
+#endif
+
+#ifdef __CC_ARM
+
+; generated by Component: ARM Compiler 5.06 update 1 (build 61) Tool: armcc [4d35ad]
+; commandline armcc [--arm -S svc.c]
+;
+; DO NOT MODIFY.
+;
+; This file was generated by Kbuild
+;
+
+;----------------------------------------------------------------------
+;    Open T-Kernel Project
+;    Copyright 2017 Du Huanpeng <u74147@xxxxxxxxx>
+;----------------------------------------------------------------------
+
+        ARM
+        REQUIRE8
+        PRESERVE8
+
+        AREA ||.text||, CODE, READONLY, ALIGN=2
+
+${func} PROC
+        STMFD    sp!, {r0-r3}
+        MOV      r0, sp
+        STMFD    sp!, {lr}
+        LDR      ip, =${prefix}_${Func}_FN
+        SWI      SWI_SVC
+        LDMFD    sp!, {lr}
+        ADD      sp, sp, #4*4
+        BX       lr
+        ENDP
+
+
+        EXPORT ${func} [CODE]
+
+
+
+        END
+
+#endif
 
 EndOfExtIfLibBody
 }
-- 
2.7.4

>From 8205ec71765856cc7f2381b1b1a2e2d6c7e9b53a Mon Sep 17 00:00:00 2001
From: Du Huanpeng <u74147@xxxxxxxxx>
Date: Wed, 11 Jan 2017 18:34:54 +0800
Subject: [PATCH] script: correct email address in perl script

Signed-off-by: Du Huanpeng <u74147@xxxxxxxxx>
---
 tkernel_source/etc/sysdepend/cpu/em1d/makeifdrv.pl | 2 +-
 tkernel_source/etc/sysdepend/cpu/em1d/makeifex.pl  | 2 +-
 tkernel_source/etc/sysdepend/cpu/em1d/makeiftd.pl  | 2 +-
 tkernel_source/etc/sysdepend/cpu/em1d/makeiftk.pl  | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/tkernel_source/etc/sysdepend/cpu/em1d/makeifdrv.pl b/tkernel_source/etc/sysdepend/cpu/em1d/makeifdrv.pl
index d7790fe..f102814 100755
--- a/tkernel_source/etc/sysdepend/cpu/em1d/makeifdrv.pl
+++ b/tkernel_source/etc/sysdepend/cpu/em1d/makeifdrv.pl
@@ -57,7 +57,7 @@ Csym(${func}):
 
 ;----------------------------------------------------------------------
 ;    Open T-Kernel Project
-;    Copyright 2017 Du Huanpeng <u74147@xxxxxxxxx>
+;    Copyright 2017 Du Huanpeng <u74147\@gmail.com>
 ;----------------------------------------------------------------------
 
         ARM
diff --git a/tkernel_source/etc/sysdepend/cpu/em1d/makeifex.pl b/tkernel_source/etc/sysdepend/cpu/em1d/makeifex.pl
index 1b62423..735808b 100755
--- a/tkernel_source/etc/sysdepend/cpu/em1d/makeifex.pl
+++ b/tkernel_source/etc/sysdepend/cpu/em1d/makeifex.pl
@@ -56,7 +56,7 @@ Csym(${func}):
 
 ;----------------------------------------------------------------------
 ;    Open T-Kernel Project
-;    Copyright 2017 Du Huanpeng <u74147@xxxxxxxxx>
+;    Copyright 2017 Du Huanpeng <u74147\@gmail.com>
 ;----------------------------------------------------------------------
 
         ARM
diff --git a/tkernel_source/etc/sysdepend/cpu/em1d/makeiftd.pl b/tkernel_source/etc/sysdepend/cpu/em1d/makeiftd.pl
index a40d27a..906c8b9 100755
--- a/tkernel_source/etc/sysdepend/cpu/em1d/makeiftd.pl
+++ b/tkernel_source/etc/sysdepend/cpu/em1d/makeiftd.pl
@@ -53,7 +53,7 @@ Csym(${func}):
 
 ;----------------------------------------------------------------------
 ;    Open T-Kernel Project
-;    Copyright 2017 Du Huanpeng <u74147@xxxxxxxxx>
+;    Copyright 2017 Du Huanpeng <u74147\@gmail.com>
 ;----------------------------------------------------------------------
 
         ARM
diff --git a/tkernel_source/etc/sysdepend/cpu/em1d/makeiftk.pl b/tkernel_source/etc/sysdepend/cpu/em1d/makeiftk.pl
index 66bf0bd..9ee2e82 100755
--- a/tkernel_source/etc/sysdepend/cpu/em1d/makeiftk.pl
+++ b/tkernel_source/etc/sysdepend/cpu/em1d/makeiftk.pl
@@ -56,7 +56,7 @@ Csym(${func}):
 
 ;----------------------------------------------------------------------
 ;    Open T-Kernel Project
-;    Copyright 2017 Du Huanpeng <u74147@xxxxxxxxx>
+;    Copyright 2017 Du Huanpeng <u74147\@gmail.com>
 ;----------------------------------------------------------------------
 
         ARM
-- 
2.7.4

>From cce5106ebe633ada3c2fd54ce814aba6a5231e8f Mon Sep 17 00:00:00 2001
From: Du Huanpeng <u74147@xxxxxxxxx>
Date: Wed, 11 Jan 2017 18:35:56 +0800
Subject: [PATCH] armct support: definition for bitwise operation or

Signed-off-by: Du Huanpeng <u74147@xxxxxxxxx>
---
 tkernel_source/include/compiler.h | 11 +++++++++++
 1 file changed, 11 insertions(+)
 create mode 100644 tkernel_source/include/compiler.h

diff --git a/tkernel_source/include/compiler.h b/tkernel_source/include/compiler.h
new file mode 100644
index 0000000..8672170
--- /dev/null
+++ b/tkernel_source/include/compiler.h
@@ -0,0 +1,11 @@
+#ifndef __COMPILER_H__
+#define __COMPILER_H__
+
+#if defined(__CC_ARM) && defined(_in_asm_source_) 
+#define __BITOR__ :OR: 
+#else
+/* default compiler is GCC */ 
+#define __BITOR__ |
+#endif
+
+#endif /* __COMPILER_H__ */
-- 
2.7.4

>From 0b5dd868916ab0e841cdfe72737b2c19075e0a08 Mon Sep 17 00:00:00 2001
From: Du Huanpeng <u74147@xxxxxxxxx>
Date: Wed, 11 Jan 2017 18:37:06 +0800
Subject: [PATCH] armct support: remove not used file in Makefile

Signed-off-by: Du Huanpeng <u74147@xxxxxxxxx>
---
 tkernel_source/Makefile.armct | 73 ++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 69 insertions(+), 4 deletions(-)

diff --git a/tkernel_source/Makefile.armct b/tkernel_source/Makefile.armct
index 34246b8..9fc4cfe 100644
--- a/tkernel_source/Makefile.armct
+++ b/tkernel_source/Makefile.armct
@@ -372,6 +372,71 @@ SRC += sysdepend/arm/lib/libsvc/tk_ref_smb.S
 SRC += sysdepend/arm/lib/libsvc/_getkernelcommonarea.S
 SRC += sysdepend/arm/lib/libsvc/_syslog_send.S
 ######################################################################
+
+## ./etc/mkiflib ARM include/sys/consio.h ##
+SRC += sysdepend/arm/lib/libsvc/console_get.S
+SRC += sysdepend/arm/lib/libsvc/console_put.S
+SRC += sysdepend/arm/lib/libsvc/console_conf.S
+SRC += sysdepend/arm/lib/libsvc/console_in.S
+SRC += sysdepend/arm/lib/libsvc/console_out.S
+SRC += sysdepend/arm/lib/libsvc/console_ctl.S
+
+## ./etc/mkiflib ARM include/sys/segment.h ##
+SRC += sysdepend/arm/lib/libsvc/lockspace.S
+SRC += sysdepend/arm/lib/libsvc/unlockspace.S
+SRC += sysdepend/arm/lib/libsvc/cnvphysicaladdr.S
+SRC += sysdepend/arm/lib/libsvc/chkspace.S
+SRC += sysdepend/arm/lib/libsvc/chkspacetstr.S
+SRC += sysdepend/arm/lib/libsvc/chkspacebstr.S
+SRC += sysdepend/arm/lib/libsvc/chkspacelen.S
+SRC += sysdepend/arm/lib/libsvc/readmemspace.S
+SRC += sysdepend/arm/lib/libsvc/writememspace.S
+SRC += sysdepend/arm/lib/libsvc/setmemspaceb.S
+SRC += sysdepend/arm/lib/libsvc/flushmemcache.S
+SRC += sysdepend/arm/lib/libsvc/setcachemode.S
+SRC += sysdepend/arm/lib/libsvc/controlcache.S
+SRC += sysdepend/arm/lib/libsvc/getspaceinfo.S
+SRC += sysdepend/arm/lib/libsvc/setmemoryaccess.S
+SRC += sysdepend/arm/lib/libsvc/mapmemory.S
+SRC += sysdepend/arm/lib/libsvc/unmapmemory.S
+SRC += sysdepend/arm/lib/libsvc/makespace.S
+SRC += sysdepend/arm/lib/libsvc/unmakespace.S
+SRC += sysdepend/arm/lib/libsvc/changespace.S
+
+## ./etc/mkiflib ARM include/tk/sysmgr.h ##
+SRC += sysdepend/arm/lib/libsvc/tk_get_cfn.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_cfs.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_smb.S
+SRC += sysdepend/arm/lib/libsvc/tk_rel_smb.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_smb.S
+SRC += sysdepend/arm/lib/libsvc/_getkernelcommonarea.S
+SRC += sysdepend/arm/lib/libsvc/_syslog_send.S
+
+## ./etc/mkiflib ARM include/tk/devmgr.h ##
+SRC += sysdepend/arm/lib/libsvc/tk_opn_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_cls_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_rea_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_srea_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_wri_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_swri_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_wai_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_sus_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_get_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_oref_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_lst_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_evt_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_rea_dev_du.S
+SRC += sysdepend/arm/lib/libsvc/tk_srea_dev_d.S
+SRC += sysdepend/arm/lib/libsvc/tk_wri_dev_du.S
+SRC += sysdepend/arm/lib/libsvc/tk_swri_dev_d.S
+SRC += sysdepend/arm/lib/libsvc/tk_wai_dev_u.S
+SRC += sysdepend/arm/lib/libsvc/tk_def_dev.S
+SRC += sysdepend/arm/lib/libsvc/tk_ref_idv.S
+
+######################################################################
+
+
 OBJ := $(SRC)
 OBJ := $(OBJ:.S=.o)
 OBJ := $(OBJ:.c=.o)
@@ -448,13 +513,13 @@ distclean:
 	git checkout -- sysdepend/arm/lib/libsvc
 
 prepare:
-	./etc/mktksvc ARM include/tk/dbgspt.h
+	./etc/mktksvc ARM include/tk/syscall.h
 	./etc/mktdsvc ARM include/tk/dbgspt.h
 	./etc/mkiflib ARM include/sys/consio.h
 	./etc/mkiflib ARM include/sys/segment.h
 	./etc/mkiflib ARM include/tk/sysmgr.h
 	./etc/mkiflib ARM include/tk/devmgr.h
-	./etc/mkiflib ARM include/device/serialio.h
-	./etc/mkiflib ARM include/device/pcmcia.h
-	./etc/mkiflib ARM include/device/em1d512_iic.h
 
+# ./etc/mkiflib ARM include/device/em1d512_iic.h
+# ./etc/mkiflib ARM include/device/pcmcia.h
+# ./etc/mkiflib ARM include/device/serialio.h
-- 
2.7.4


References