source: asp3_tinet_ecnl_arm/trunk/asp3_dcre/arch/arm_gcc/common/core_check.trb@ 352

Last change on this file since 352 was 352, checked in by coas-nagasima, 6 years ago

arm向けASP3版ECNLを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby;charset=UTF-8
File size: 1.6 KB
Line 
1# -*- coding: utf-8 -*-
2#
3# パス3の生成スクリプトのコア依存部(ARM用)
4#
5# $Id$
6#
7
8#
9# ターゲット非依存部のインクルード
10#
11IncludeTrb("kernel/kernel_check.trb")
12
13#
14# 割込みハンドラテーブルに関するチェック
15#
16# DEF_INHで登録した割込みハンドラのみチェックする.逆に言うと,コンフィ
17# ギュレータで生成した割込みハンドラや,default_int_handlerのチェックは
18# 行わない.
19#
20inhTable = SYMBOL("_kernel_inh_table")
21$cfgData[:DEF_INH].each do |key, params|
22 inthdr = PEEK(inhTable + params[:inhno] * $sizeof_FP, $sizeof_FP)
23
24 # 割込みハンドラの先頭番地のチェック[NGKI3056]
25 if (inthdr & ($CHECK_FUNC_ALIGN - 1)) != 0
26 error_wrong_id("E_PAR", params, :inthdr, :inhno, "not aligned")
27 end
28 if $CHECK_FUNC_NONNULL && inthdr == 0
29 error_wrong_id("E_PAR", params, :inthdr, :inhno, "null")
30 end
31end
32
33#
34# CPU例外ハンドラテーブルに関するチェック
35#
36# DEF_EXCで登録したCPU例外ハンドラのみチェックする.逆に言うと,
37# default_exc_handlerのチェックは行わない.
38#
39excTable = SYMBOL("_kernel_exc_table")
40$cfgData[:DEF_EXC].each do |key, params|
41 exchdr = PEEK(excTable + params[:excno] * $sizeof_FP, $sizeof_FP)
42
43 # CPU例外ハンドラの先頭番地のチェック[NGKI3135]
44 if (exchdr & ($CHECK_FUNC_ALIGN - 1)) != 0
45 error_wrong_id("E_PAR", params, :exchdr, :excno, "not aligned")
46 end
47 if $CHECK_FUNC_NONNULL && exchdr == 0
48 error_wrong_id("E_PAR", params, :exchdr, :excno, "null")
49 end
50end
Note: See TracBrowser for help on using the repository browser.