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

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

mbed関連を更新
シリアルドライバをmbedのHALを使うよう変更
ファイルディスクリプタの処理を更新

  • 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")
21offset = SYMBOL("__etext") - SYMBOL("__data_start__")
22$cfgData[:DEF_INH].each do |key, params|
23 inthdr = PEEK(inhTable + offset + params[:inhno] * $sizeof_FP, $sizeof_FP)
24
25 # 割込みハンドラの先頭番地のチェック[NGKI3056]
26 if (inthdr & ($CHECK_FUNC_ALIGN - 1)) != 0
27 error_wrong_id("E_PAR", params, :inthdr, :inhno, "not aligned")
28 end
29 if $CHECK_FUNC_NONNULL && inthdr == 0
30 error_wrong_id("E_PAR", params, :inthdr, :inhno, "null")
31 end
32end
33
34#
35# CPU例外ハンドラテーブルに関するチェック
36#
37# DEF_EXCで登録したCPU例外ハンドラのみチェックする.逆に言うと,
38# default_exc_handlerのチェックは行わない.
39#
40excTable = SYMBOL("_kernel_exc_table")
41$cfgData[:DEF_EXC].each do |key, params|
42 exchdr = PEEK(excTable + params[:excno] * $sizeof_FP, $sizeof_FP)
43
44 # CPU例外ハンドラの先頭番地のチェック[NGKI3135]
45 if (exchdr & ($CHECK_FUNC_ALIGN - 1)) != 0
46 error_wrong_id("E_PAR", params, :exchdr, :excno, "not aligned")
47 end
48 if $CHECK_FUNC_NONNULL && exchdr == 0
49 error_wrong_id("E_PAR", params, :exchdr, :excno, "null")
50 end
51end
Note: See TracBrowser for help on using the repository browser.