Changeset 285


Ignore:
Timestamp:
May 2, 2017, 5:55:20 PM (7 years ago)
Author:
nmir-saito
Message:

Tracのソース閲覧時に文字化けするためmimetypewo

Location:
rubycfg_ssp/trunk
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • rubycfg_ssp/trunk/alarm.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    1111#              Nagoya Municipal Industrial Research Institute, JAPAN
    1212#
    13 #   ä¸Šè¨˜è‘—作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    15 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    16 #   å¤‰ãƒ»å†é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    20 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    21 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25 #       è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    28 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29 #       ç”¨ã§ããªã„形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31 #       ã¨ï¼Ž
    32 #     (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    36 #     (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39 #         å ±å‘Šã™ã‚‹ã“と.
    40 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    45 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47 #       å
    48 è²¬ã™ã‚‹ã“と.
     13#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18#       スコード中に含まれていること.
     19#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22#       の無保証規定を掲載すること.
     23#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25#       と.
     26#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     28#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29#         報告すること.
     30#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34#       免責すること.
    4935#
    50 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    51 ãŠ
    52 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    54 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    55 #   ã®è²¬ä»»ã‚’負わない.
     36#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40#   の責任を負わない.
    5641#
    5742#   $Id: alarm.trb 588 2016-02-05 12:54:58Z ertl-hiro $
     
    5944
    6045#
    61 #               ã‚¢ãƒ©ãƒ¼ãƒ é€šçŸ¥æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     46#               アラーム通知機能の生成スクリプト
    6247#
    6348
     
    6954  def prepare()
    7055    $cfgData[@api].sort.each do |key, params|
    71       # almatrが無効の場合(E_RSATR)
    72       #(TA_STA以外のビットがセットされている場合)
     56      # almatrが無効の場合(E_RSATR)
     57      #(TA_STA以外のビットがセットされている場合)
    7358      if (params[:almatr] & ~($TA_STA)) != 0
    7459        error_illegal_id("E_RSATR", params, :almatr, :almid)
     
    8166    if $cfgData[:CRE_ALM].size() > 0
    8267
    83       # 事前準備(エラーチェック,メモリ領域の生成)
     68      # 事前準備(エラーチェック,メモリ領域の生成)
    8469      prepare()
    8570                                                                                               
    86       # アラームハンドラアドレス(almhdr)
     71      # アラームハンドラアドレス(almhdr)
    8772      $kernelCfgC.append("const ALMHDR\t_kernel_alminib_almhdr[TNUM_ALMID] = {")
    8873      $cfgData[@api].each.with_index do |id, index|
     
    9277      $kernelCfgC.add("};")
    9378
    94       # アラームハンドラ拡張æƒ
    95 å ±(exinf)
     79      # アラームハンドラ拡張情報(exinf)
    9680      $kernelCfgC.append("const intptr_t\t_kernel_alminib_exinf[TNUM_ALMID] = {")
    9781      $cfgData[@api].each.with_index do |id, index|
     
    10286      $kernelCfgC.add2("};")
    10387    else
    104       # オブジェクトが1つもない場合
     88      # オブジェクトが1つもない場合
    10589      $kernelCfgC.add("TOPPERS_EMPTY_LABEL(const ALMHDR, _kernel_alminib_almhdr);")
    10690      $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(const intptr_t, _kernel_alminib_exinf);")
    10791    end
    10892
    109     # アラームハンドラのタイムイベントIDオフセット
     93    # アラームハンドラのタイムイベントIDオフセット
    11094    $kernelCfgC.add2("const uint_t _kernel_almevtid_offset = #{$cfgData[:CRE_CYC].size};")
    11195
    112     # アラームハンドラの動作状æ
    113 ‹
     96    # アラームハンドラの動作状態
    11497    $kernelCfgC.add2("uint16_t\t_kernel_almcb_almact;")
    11598  end
     
    117100
    118101#
    119 #  アラーム通知に関するæƒ
    120 å ±ã®ç”Ÿæˆ
     102#  アラーム通知に関する情報の生成
    121103#
    122104$kernelCfgC.comment_header("Alarm Notification Functions")
  • rubycfg_ssp/trunk/banner.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    88#              Nagoya Municipal Industrial Research Institute, JAPAN
    99#
    10 #   ä¸Šè¨˜è‘—作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    12 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    13 #   å¤‰ãƒ»å†é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    17 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    18 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22 #       è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    25 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26 #       ç”¨ã§ããªã„形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28 #       ã¨ï¼Ž
    29 #     (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    33 #     (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36 #         å ±å‘Šã™ã‚‹ã“と.
    37 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    42 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44 #       å
    45 è²¬ã™ã‚‹ã“と.
     10#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     11#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15#       スコード中に含まれていること.
     16#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19#       の無保証規定を掲載すること.
     20#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22#       と.
     23#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     25#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26#         報告すること.
     27#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31#       免責すること.
    4632#
    47 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    48 ãŠ
    49 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    51 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    52 #   ã®è²¬ä»»ã‚’負わない.
     33#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37#   の責任を負わない.
    5338#
    5439#   $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $
     
    5641
    5742#
    58 ãƒãƒŠãƒ¼å‡ºåŠ›ç”¨ã®ãƒ†ãƒ³ãƒ—レートファイル
     43バナー出力用のテンプレートファイル
    5944#
    6045
  • rubycfg_ssp/trunk/cyclic.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    1111#              Nagoya Municipal Industrial Research Institute, JAPAN
    1212#
    13 #   ä¸Šè¨˜è‘—作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    15 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    16 #   å¤‰ãƒ»å†é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    20 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    21 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25 #       è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    28 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29 #       ç”¨ã§ããªã„形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31 #       ã¨ï¼Ž
    32 #     (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    36 #     (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39 #         å ±å‘Šã™ã‚‹ã“と.
    40 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    45 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47 #       å
    48 è²¬ã™ã‚‹ã“と.
     13#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18#       スコード中に含まれていること.
     19#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22#       の無保証規定を掲載すること.
     23#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25#       と.
     26#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     28#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29#         報告すること.
     30#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34#       免責すること.
    4935#
    50 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    51 ãŠ
    52 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    54 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    55 #   ã®è²¬ä»»ã‚’負わない.
     36#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40#   の責任を負わない.
    5641#
    5742#   $Id: cyclic.trb 588 2016-02-05 12:54:58Z ertl-hiro $
     
    5944
    6045#
    61 #               å‘¨æœŸé€šçŸ¥æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     46#               周期通知機能の生成スクリプト
    6247#
    6348
     
    7055    $cfgData[@api].sort.each do |key, params|
    7156
    72       # cycatrが無効の場合(E_RSATR)
    73       #(TA_STA以外のビットがセットされている場合)
     57      # cycatrが無効の場合(E_RSATR)
     58      #(TA_STA以外のビットがセットされている場合)
    7459      if (params[:cycatr] & ~($TA_STA)) != 0
    7560        error_illegal_id("E_RSATR", params, :cycatr, :cycid)
    7661      end
    7762
    78       # (0 < cyctim && cyctim <= TMAX_RELTIM)でない場合(E_PAR)
     63      # (0 < cyctim && cyctim <= TMAX_RELTIM)でない場合(E_PAR)
    7964      if !(0 < params[:cyctim] && params[:cyctim] <= $TMAX_RELTIM)
    8065        error_illegal_id("E_PAR", params, :cyctim, :cycid)
    8166      end
    8267
    83       # (0 <= cycphs && cycphs <= TMAX_RELTIM)でない場合(E_PAR)
     68      # (0 <= cycphs && cycphs <= TMAX_RELTIM)でない場合(E_PAR)
    8469      if !(0 <= params[:cycphs] && params[:cycphs] <= $TMAX_RELTIM)
    8570        error_illegal_id("E_PAR", params, :cycphs, :cycid)
    8671      end
    8772
    88       # 位相が0かつ,属性が TA_STA の場合(警告)
     73      # 位相が0かつ,属性が TA_STA の場合(警告)
    8974      if params[:cycphs] == 0 && (params[:cycatr] & $TA_STA) != 0
    9075        warning("cycphs==0 is not recommended when TA_STA is set to cycatr in CRE_CYC")
     
    9681    if $cfgData[:CRE_CYC].size() > 0
    9782
    98       # 事前準備(エラーチェック,メモリ領域の生成)
     83      # 事前準備(エラーチェック,メモリ領域の生成)
    9984      prepare()
    10085
    101       # 周期ハンドラ属性(cycatr)
     86      # 周期ハンドラ属性(cycatr)
    10287      cycact = 0
    10388      $cfgData[@api].each.with_index do |id, index|
     
    10893      $kernelCfgC.add("const uint16_t\t_kernel_cycinib_cycact = #{cycact};")
    10994
    110       # 周期ハンドラ拡張æƒ
    111 å ±(exinf)
     95      # 周期ハンドラ拡張情報(exinf)
    11296      $kernelCfgC.append("const intptr_t\t_kernel_cycinib_exinf[TNUM_CYCID] = {")
    11397      $cfgData[@api].each.with_index do |id, index|
     
    118102      $kernelCfgC.add("};")
    119103
    120       # 周期ハンドラアドレス(cychdr)
     104      # 周期ハンドラアドレス(cychdr)
    121105      $kernelCfgC.append("const CYCHDR\t_kernel_cycinib_cychdr[TNUM_CYCID] = {")
    122106      $cfgData[@api].each.with_index do |id, index|
     
    126110      $kernelCfgC.add("};")
    127111
    128       # 周期ハンドラ周期(cyctim)
     112      # 周期ハンドラ周期(cyctim)
    129113      $kernelCfgC.append("const RELTIM\t_kernel_cycinib_cyctim[TNUM_CYCID] = {")
    130114      $cfgData[@api].each.with_index do |id, index|
     
    134118      $kernelCfgC.add("};")
    135119
    136       # 周期ハンドラ位相(cycphs)
     120      # 周期ハンドラ位相(cycphs)
    137121      $kernelCfgC.append("const RELTIM\t_kernel_cycinib_cycphs[TNUM_CYCID] = {")
    138122      $cfgData[@api].each.with_index do |id, index|
     
    142126      $kernelCfgC.add("};")
    143127
    144       # 周期ハンドラの次回起動時刻
     128      # 周期ハンドラの次回起動時刻
    145129      $kernelCfgC.add("EVTTIM\t_kernel_cyccb_evttim[TNUM_CYCID];")
    146130    else
    147       # オブジェクトが1つもない場合
     131      # オブジェクトが1つもない場合
    148132      $kernelCfgC.add("const uint16_t _kernel_cycinib_cycact = 0;")
    149133      $kernelCfgC.add("TOPPERS_EMPTY_LABEL(const intptr_t, _kernel_cycinib_exinf);")
     
    154138    end
    155139
    156     # 周期ハンドラのタイムイベントIDオフセット
    157     # 周期ハンドラのタイムイベントIDは0から開始
     140    # 周期ハンドラのタイムイベントIDオフセット
     141    # 周期ハンドラのタイムイベントIDは0から開始
    158142    $kernelCfgC.add2("const uint_t _kernel_cycevtid_offset = 0;")
    159143
    160     # 周期ハンドラの動作状æ
    161 ‹
     144    # 周期ハンドラの動作状態
    162145    $kernelCfgC.add2("uint16_t\t_kernel_cyccb_cycact;")
    163146  end
     
    165148
    166149#
    167 #  周期通知に関するæƒ
    168 å ±ã®ç”Ÿæˆ
     150#  周期通知に関する情報の生成
    169151#
    170152$kernelCfgC.comment_header("Cyclic Notification Functions")
    171153
    172 # エントリがTMAX_MAXCYC個(kernel.hで定義)より多い場合はエラーとする
     154# エントリがTMAX_MAXCYC個(kernel.hで定義)より多い場合はエラーとする
    173155if $cfgData[:CRE_CYC].size() > $TMAX_MAXCYC
    174156  error("The number of CRE_CYC must be equal to or less than #{$TMAX_MAXCYC}")
  • rubycfg_ssp/trunk/dataqueue.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    1111#              Nagoya Municipal Industrial Research Institute, JAPAN
    1212#
    13 #   ä¸Šè¨˜è‘—作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    15 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    16 #   å¤‰ãƒ»å†é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    20 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    21 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25 #       è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    28 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29 #       ç”¨ã§ããªã„形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31 #       ã¨ï¼Ž
    32 #     (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    36 #     (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39 #         å ±å‘Šã™ã‚‹ã“と.
    40 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    45 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47 #       å
    48 è²¬ã™ã‚‹ã“と.
     13#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18#       スコード中に含まれていること.
     19#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22#       の無保証規定を掲載すること.
     23#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25#       と.
     26#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     28#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29#         報告すること.
     30#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34#       免責すること.
    4935#
    50 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    51 ãŠ
    52 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    54 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    55 #   ã®è²¬ä»»ã‚’負わない.
     36#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40#   の責任を負わない.
    5641#
    5742#   $Id: dataqueue.trb 668 2016-03-03 13:57:53Z ertl-hiro $
     
    5944
    6045#
    61 #               ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     46#               データキュー機能の生成スクリプト
    6247#
    6348
     
    6954  def prepare()
    7055    $cfgData[@api].sort.each do |key, params|
    71       # dtqatrが無効の場合(E_RSATR)
    72       #(TA_NULL以外の場合)
     56      # dtqatrが無効の場合(E_RSATR)
     57      #(TA_NULL以外の場合)
    7358      if params[:dtqatr] != $TA_NULL
    7459        error_illegal_id("E_RSATR", params, :dtqatr, :dtqid)
    7560      end
    7661
    77       # dtqmbがNULLでない場合(E_NOSPT)
     62      # dtqmbがNULLでない場合(E_NOSPT)
    7863      if params[:dtqmb] != "NULL"
    7964        error_illegal_id("E_NOSPT", params, :dtqmb, :dtqid)
    8065      end
    8166
    82       # データキューサイズdtqcntが0の場合(E_PAR)
     67      # データキューサイズdtqcntが0の場合(E_PAR)
    8368      if params[:dtqcnt] == 0
    8469        error_illegal_id("E_PAR", params, :dtqcnt, :dtqid)
     
    8974  def generateData()
    9075    if $cfgData[:CRE_DTQ].size() > 0
    91       # 事前準備(エラーチェック,メモリ領域の生成)
     76      # 事前準備(エラーチェック,メモリ領域の生成)
    9277      prepare()
    9378
    94       # データキュー領域
     79      # データキュー領域
    9580      $cfgData[@api].each.with_index do |id, index|
    9681        $kernelCfgC.add("static intptr_t _kernel_dtqmb_#{id[1][:dtqid].str}[#{id[1][:dtqcnt]}];")
     
    9883
    9984      #
    100       # データキュー初期化ブロック
     85      # データキュー初期化ブロック
    10186      #
    10287
    103       # データキュー属性(dtqatr)
     88      # データキュー属性(dtqatr)
    10489      $kernelCfgC.append("const ATR\t_kernel_dtqinib_atr[TNUM_DTQID] = {")
    10590      $cfgData[@api].each.with_index do |id, index|
     
    11095      $kernelCfgC.add("};")
    11196
    112       # データキューサイズ(dtqcnt)
     97      # データキューサイズ(dtqcnt)
    11398      $kernelCfgC.append("const uint8_t\t_kernel_dtqinib_size[TNUM_DTQID] = {")
    11499      $cfgData[@api].each.with_index do |id, index|
     
    118103      $kernelCfgC.add("};")
    119104
    120       # データキュー管理領域(data)
     105      # データキュー管理領域(data)
    121106      $kernelCfgC.append("intptr_t * const\t_kernel_dtqinib_data[TNUM_DTQID] = {")
    122107      $cfgData[@api].each.with_index do |id, index|
     
    127112
    128113      #
    129       #  データキューコントロールブロック
     114      #  データキューコントロールブロック
    130115      #
    131116      $kernelCfgC.add(<<EOS)
     
    136121
    137122    else
    138       # オブジェクトが1つもない場合
     123      # オブジェクトが1つもない場合
    139124      $kernelCfgC.add("TOPPERS_EMPTY_LABEL(const ATR, _kernel_dtqinib_atr);")
    140125      $kernelCfgC.add("TOPPERS_EMPTY_LABEL(intptr_t * const, _kernel_dtqinib_data);")
     
    148133
    149134#
    150 #  データキューに関するæƒ
    151 å ±ã®ç”Ÿæˆ
     135#  データキューに関する情報の生成
    152136#
    153137$kernelCfgC.comment_header("Dataqueue Functions")
  • rubycfg_ssp/trunk/eventflag.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    1111#              Nagoya Municipal Industrial Research Institute, JAPAN
    1212#
    13 #   ä¸Šè¨˜è‘—作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    15 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    16 #   å¤‰ãƒ»å†é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    20 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    21 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25 #       è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    28 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29 #       ç”¨ã§ããªã„形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31 #       ã¨ï¼Ž
    32 #     (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    36 #     (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39 #         å ±å‘Šã™ã‚‹ã“と.
    40 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    45 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47 #       å
    48 è²¬ã™ã‚‹ã“と.
     13#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18#       スコード中に含まれていること.
     19#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22#       の無保証規定を掲載すること.
     23#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25#       と.
     26#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     28#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29#         報告すること.
     30#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34#       免責すること.
    4935#
    50 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    51 ãŠ
    52 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    54 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    55 #   ã®è²¬ä»»ã‚’負わない.
     36#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40#   の責任を負わない.
    5641#
    5742#   $Id: eventflag.trb 588 2016-02-05 12:54:58Z ertl-hiro $
     
    5944
    6045#
    61 #               ã‚¤ãƒ™ãƒ³ãƒˆãƒ•ãƒ©ã‚°æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     46#               イベントフラグ機能の生成スクリプト
    6247#
    6348
     
    6954  def prepare()
    7055    $cfgData[@api].sort.each do |key, params|
    71       # flgatrが無効の場合(E_RSATR)
    72       #(TA_CLR以外のビットがセットされている場合)
     56      # flgatrが無効の場合(E_RSATR)
     57      #(TA_CLR以外のビットがセットされている場合)
    7358      if (params[:flgatr] & ~($TA_CLR)) != 0
    7459        error_illegal_id("E_RSATR", params, :flgatr, :flgid)
    7560      end
    7661
    77       # iflgptnがFLGPTNに格納できない場合(E_PAR)
     62      # iflgptnがFLGPTNに格納できない場合(E_PAR)
    7863      if (params[:iflgptn] & ~((1 << $TBIT_FLGPTN) - 1)) != 0
    7964        error_wrong_id("E_PAR", params, :iflgptn, :flgid, "too large")
     
    8469  def generateData()
    8570    #
    86     #  オブジェクト初期化ブロックの生成
     71    #  オブジェクト初期化ブロックの生成
    8772    #
    8873    if $cfgData[:CRE_FLG].size() > 0
    89       # 事前準備(エラーチェック,メモリ領域の生成)
     74      # 事前準備(エラーチェック,メモリ領域の生成)
    9075      prepare()
    9176
    92       # イベントフラグ属性(flgatr)
     77      # イベントフラグ属性(flgatr)
    9378      $kernelCfgC.append("const ATR\t_kernel_flginib_atr[TNUM_FLGID] = {")
    9479      $cfgData[@api].each.with_index do |id, index|
     
    9984      $kernelCfgC.add("};")
    10085
    101       # イベントフラグパターンの初期値(iflgptn)
     86      # イベントフラグパターンの初期値(iflgptn)
    10287      $kernelCfgC.append("const FLGPTN\t_kernel_flginib_iflgptn[TNUM_FLGID] = {")
    10388      $cfgData[@api].each.with_index do |id, index|
     
    10792      $kernelCfgC.add("};")
    10893
    109       # イベントフラグの現在のフラグパターンを格納する変数
     94      # イベントフラグの現在のフラグパターンを格納する変数
    11095      $kernelCfgC.add2("FLGPTN\t_kernel_flgcb_flgptn[TNUM_FLGID];")
    11196
    11297    else
    113       # オブジェクトが1つもない場合
     98      # オブジェクトが1つもない場合
    11499      $kernelCfgC.add("TOPPERS_EMPTY_LABEL(const ATR, _kernel_flginib_atr);")
    115100      $kernelCfgC.add("TOPPERS_EMPTY_LABEL(const FLGPTN, _kernel_flginib_iflgptn);")
     
    120105
    121106#
    122 #  イベントフラグに関するæƒ
    123 å ±ã®ç”Ÿæˆ
     107#  イベントフラグに関する情報の生成
    124108#
    125109$kernelCfgC.comment_header("Eventflag Functions")
  • rubycfg_ssp/trunk/exception.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    1111#              Nagoya Municipal Industrial Research Institute, JAPAN
    1212#
    13 #   ä¸Šè¨˜è‘—作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    15 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    16 #   å¤‰ãƒ»å†é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    20 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    21 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25 #       è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    28 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29 #       ç”¨ã§ããªã„形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31 #       ã¨ï¼Ž
    32 #     (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    36 #     (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39 #         å ±å‘Šã™ã‚‹ã“と.
    40 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    45 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47 #       å
    48 è²¬ã™ã‚‹ã“と.
     13#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18#       スコード中に含まれていること.
     19#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22#       の無保証規定を掲載すること.
     23#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25#       と.
     26#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     28#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29#         報告すること.
     30#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34#       免責すること.
    4935#
    50 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    51 ãŠ
    52 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    54 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    55 #   ã®è²¬ä»»ã‚’負わない.
     36#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40#   の責任を負わない.
    5641#
    5742#   $Id: exception.trb 663 2016-02-27 04:45:50Z ertl-hiro $
     
    5944
    6045#
    61 #               CPU例外管理機能の生成スクリプト
     46#               CPU例外管理機能の生成スクリプト
    6247#
    6348
    6449#
    65 #  kernel_cfg.cの生成
     50#  kernel_cfg.cの生成
    6651#
    6752$kernelCfgC.comment_header("CPU Exception Management Functions")
    6853
    6954#
    70 #  CPU例外ハンドラに関するエラーチェック
     55#  CPU例外ハンドラに関するエラーチェック
    7156#
    7257$cfgData[:DEF_EXC].each do |key, params|
    73   # excnoがCPU例外ハンドラ番号として正しくない場合(E_PAR)
     58  # excnoがCPU例外ハンドラ番号として正しくない場合(E_PAR)
    7459  if $EXCNO_VALID.index(params[:excno]).nil?
    7560    error_illegal("E_PAR", params, :excno)
    7661  end
    7762
    78   # excatrが無効の場合(E_RSATR)
    79   #(TARGET_EXCATR以外のビットがセットされている場合)
     63  # excatrが無効の場合(E_RSATR)
     64  #(TARGET_EXCATR以外のビットがセットされている場合)
    8065  if (params[:excatr] & ~($TARGET_EXCATR)) != 0
    8166    error_illegal_sym("E_RSATR", params, :excatr, :excno)
     
    8469
    8570#
    86 #  CPU例外ハンドラのための標準的な初期化æƒ
    87 å ±ã®ç”Ÿæˆ
     71#  CPU例外ハンドラのための標準的な初期化情報の生成
    8872#
    8973if !$OMIT_INITIALIZE_EXCEPTION
    9074  #
    91   #  定義するCPU例外ハンドラの数
     75  #  定義するCPU例外ハンドラの数
    9276  #
    9377  $kernelCfgC.add(<<EOS)
     
    9882  if $cfgData[:DEF_EXC].size != 0
    9983    #
    100     #  CPU例外ハンドラのエントリ
     84    #  CPU例外ハンドラのエントリ
    10185    #
    10286    $cfgData[:DEF_EXC].each do |key, params|
     
    10791
    10892    #
    109     #  CPU例外ハンドラ初期化ブロック
     93    #  CPU例外ハンドラ初期化ブロック
    11094    #
    11195    $kernelCfgC.append("const EXCNO _kernel_excinib_excno[TNUM_EXCNO] = {")
     
    138122
    139123#
    140 #  CPU例外管理機能初期化関数の追加
     124#  CPU例外管理機能初期化関数の追加
    141125#
    142126$initializeFunctions.push("_kernel_initialize_exception();")
  • rubycfg_ssp/trunk/install.sh

    • Property svn:mime-type set to text/plain; charset=utf-8
  • rubycfg_ssp/trunk/interrupt.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    1111#              Nagoya Municipal Industrial Research Institute, JAPAN
    1212#
    13 #   ä¸Šè¨˜è‘—作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    15 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    16 #   å¤‰ãƒ»å†é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    20 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    21 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25 #       è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    28 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29 #       ç”¨ã§ããªã„形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31 #       ã¨ï¼Ž
    32 #     (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    36 #     (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39 #         å ±å‘Šã™ã‚‹ã“と.
    40 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    45 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47 #       å
    48 è²¬ã™ã‚‹ã“と.
    49 #
    50 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    51 ãŠ
    52 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    54 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    55 #   ã®è²¬ä»»ã‚’負わない.
     13#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18#       スコード中に含まれていること.
     19#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22#       の無保証規定を掲載すること.
     23#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25#       と.
     26#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     28#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29#         報告すること.
     30#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34#       免責すること.
     35#
     36#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40#   の責任を負わない.
    5641#
    5742#   $Id: interrupt.trb 678 2016-03-06 02:36:09Z ertl-hiro $
     
    5944
    6045#
    61 #               å‰²è¾¼ã¿ç®¡ç†æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     46#               割込み管理機能の生成スクリプト
    6247#
    6348
     
    6550
    6651#
    67 ãƒˆãƒ¬ãƒ¼ã‚¹ãƒ­ã‚°ãƒžã‚¯ãƒ­ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå®šç¾©
     52トレースログマクロのデフォルト定義
    6853#
    6954$kernelCfgC.add(<<EOS)
     
    7863
    7964#
    80 #  CRE_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号のデ
    81 ãƒ•ã‚©ãƒ«ãƒˆå®šç¾©
     65#  CRE_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号のデ
     66フォルト定義
    8267#
    8368if $INTNO_CREISR_VALID.nil?
     
    8974
    9075#
    91 #  CFG_INTで使用できる割込み優å
    92 ˆåº¦ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå®šç¾©
     76#  CFG_INTで使用できる割込み優先度のデフォルト定義
    9377#
    9478if $INTPRI_CFGINT_VALID.nil?
     
    9781
    9882#
    99 å‰²è¾¼ã¿ç•ªå·ã¨å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ç•ªå·ã®å¤‰æ›ãƒ†ãƒ¼ãƒ–ルの作成
     83割込み番号と割込みハンドラ番号の変換テーブルの作成
    10084#
    10185if $INTNO_CREISR_VALID.length != $INHNO_CREISR_VALID.length
     
    11397
    11498#
    115 å‰²è¾¼ã¿è¦æ±‚ラインに関するエラーチェック
     99割込み要求ラインに関するエラーチェック
    116100#
    117101$cfgData[:CFG_INT].each do |key, params|
    118   #     intnoが割込み番号として正しくない場合(E_PAR)
     102  #     intnoが割込み番号として正しくない場合(E_PAR)
    119103  if $INTNO_VALID.index(params[:intno]).nil?
    120104    error_illegal("E_PAR", params, :intno)
    121105  end
    122106
    123   #     intatrが無効の場合(E_RSATR)
    124   #(TA_ENAINT,TA_EDGE,TARGET_INTATR以外のビットがセットされている場合)
     107  #     intatrが無効の場合(E_RSATR)
     108  #(TA_ENAINT,TA_EDGE,TARGET_INTATR以外のビットがセットされている場合)
    125109  if (params[:intatr] & ~($TA_ENAINT|$TA_EDGE|$TARGET_INTATR)) != 0
    126110    error_illegal_sym("E_RSATR", params, :intatr, :intno)
    127111  end
    128112
    129   #     intpriがCFG_INTに対する割込み優å
    130 ˆåº¦ã¨ã—て正しくない場合(E_PAR)
     113  #     intpriがCFG_INTに対する割込み優先度として正しくない場合(E_PAR)
    131114  if $INTPRI_CFGINT_VALID.index(params[:intpri]).nil?
    132115    error_illegal_sym("E_PAR", params, :intpri, :intno)
    133116  end
    134117
    135   # カーネル管理外に固定されているintnoに対して,intpriにTMIN_INTPRIよ
    136   #     ã‚Šã‚‚小さい値が指定されなかった場合(E_OBJ)
     118  # カーネル管理外に固定されているintnoに対して,intpriにTMIN_INTPRIよ
     119  #     りも小さい値が指定されなかった場合(E_OBJ)
    137120  if !$INTNO_FIX_NONKERNEL.nil?
    138121    if !$INTNO_FIX_NONKERNEL.index(params[:intno]).nil?
     
    144127  end
    145128
    146   #     ã‚«ãƒ¼ãƒãƒ«ç®¡ç†ã«å›ºå®šã•ã‚Œã¦ã„ã‚‹intnoに対して,intpriにTMIN_INTPRIより
    147   #     ã‚‚小さい値が指定された場合(E_OBJ)
     129  #     カーネル管理に固定されているintnoに対して,intpriにTMIN_INTPRIより
     130  #     も小さい値が指定された場合(E_OBJ)
    148131  if !$INTNO_FIX_KERNEL.nil?
    149132    if !$INTNO_FIX_KERNEL.index(params[:intno]).nil?
     
    157140
    158141#
    159 å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ã«é–¢ã™ã‚‹ã‚¨ãƒ©ãƒ¼ãƒã‚§ãƒƒã‚¯
     142割込みハンドラに関するエラーチェック
    160143#
    161144$cfgData[:DEF_INH].each do |key, params|
    162   # inhnoが割込みハンドラ番号として正しくない場合(E_PAR)
     145  # inhnoが割込みハンドラ番号として正しくない場合(E_PAR)
    163146  if $INHNO_VALID.index(params[:inhno]).nil?
    164147    error_illegal("E_PAR", params, :inhno)
    165148  end
    166149
    167   # inhatrが無効の場合(E_RSATR)
    168   #(TARGET_INHATR以外のビットがセットされている場合)
     150  # inhatrが無効の場合(E_RSATR)
     151  #(TARGET_INHATR以外のビットがセットされている場合)
    169152  if (params[:inhatr] & ~($TARGET_INHATR)) != 0
    170153    error_illegal_sym("E_RSATR", params, :inhatr, :inhno)
    171154  end
    172155
    173   #     ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–に固定されているinhnoに対して,inhatrにTA_NONKERNELが
    174   #     æŒ‡å®šã•ã‚Œã¦ã„ない場合(E_RSATR)
     156  #     カーネル管理外に固定されているinhnoに対して,inhatrにTA_NONKERNELが
     157  #     指定されていない場合(E_RSATR)
    175158  if !$INHNO_FIX_NONKERNEL.nil?
    176159    if !$INHNO_FIX_NONKERNEL.index(params[:inhno]).nil?
     
    182165  end
    183166
    184   #     ã‚«ãƒ¼ãƒãƒ«ç®¡ç†ã«å›ºå®šã•ã‚Œã¦ã„ã‚‹inhnoに対して,inhatrにTA_NONKERNELが指
    185   #     å®šã•ã‚Œã¦ã„る場合(E_RSATR)
     167  #     カーネル管理に固定されているinhnoに対して,inhatrにTA_NONKERNELが指
     168  #     定されている場合(E_RSATR)
    186169  if !$INHNO_FIX_KERNEL.nil?
    187170    if !$INHNO_FIX_KERNEL.index(params[:inhno]).nil?
     
    196179    intnoVal = $toIntnoVal[params[:inhno].val]
    197180
    198     # inhnoに対応するintnoに対するCFG_INTがない場合(E_OBJ)
     181    # inhnoに対応するintnoに対するCFG_INTがない場合(E_OBJ)
    199182    if !$cfgData[:CFG_INT].has_key?(intnoVal)
    200183      error_ercd("E_OBJ", params, "intno `#{intnoVal}' corresponding to " \
     
    203186      intnoParams = $cfgData[:CFG_INT][intnoVal]
    204187      if (params[:inhatr] & $TA_NONKERNEL) == 0
    205         # inhatrにTA_NONKERNELが指定されておらず,inhnoに対応するintno
    206         # に対してCFG_INTで設定された割込み優å
    207 ˆåº¦ãŒTMIN_INTPRIよりも小
    208         # さい場合(E_OBJ)
     188        # inhatrにTA_NONKERNELが指定されておらず,inhnoに対応するintno
     189        # に対してCFG_INTで設定された割込み優先度がTMIN_INTPRIよりも小
     190        # さい場合(E_OBJ)
    209191        if intnoParams[:intpri] < $TMIN_INTPRI
    210192          error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}' " \
     
    212194        end
    213195      else
    214         # inhatrにTA_NONKERNELが指定されており,inhnoに対応するintnoに
    215         # 対してCFG_INTで設定された割込み優å
    216 ˆåº¦ãŒTMIN_INTPRI以上である
    217         # 場合(E_OBJ)
     196        # inhatrにTA_NONKERNELが指定されており,inhnoに対応するintnoに
     197        # 対してCFG_INTで設定された割込み優先度がTMIN_INTPRI以上である
     198        # 場合(E_OBJ)
    218199        if intnoParams[:intpri] >= $TMIN_INTPRI
    219200          error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}' " \
     
    226207
    227208#
    228 å‰²è¾¼ã¿ã‚µãƒ¼ãƒ“スルーチン(ISR)に関するエラーチェックと割込みハンドラの生成
     209割込みサービスルーチン(ISR)に関するエラーチェックと割込みハンドラの生成
    229210#
    230211$cfgData[:ATT_ISR].sort.each do |key, params|
    231   #     isratrが無効の場合(E_RSATR)
    232   #(TARGET_ISRATR以外のビットがセットされている場合)
     212  #     isratrが無効の場合(E_RSATR)
     213  #(TARGET_ISRATR以外のビットがセットされている場合)
    233214  if (params[:isratr] & ~($TARGET_ISRATR)) != 0
    234215    error_illegal("E_RSATR", params, "isratr")
    235216  end
    236217
    237   #     intnoがATT_ISRに対する割込み番号として正しくない場合(E_PAR)
     218  #     intnoがATT_ISRに対する割込み番号として正しくない場合(E_PAR)
    238219  if $INTNO_ATTISR_VALID.index(params[:intno]).nil?
    239220    error_illegal("E_PAR", params, "intno")
    240221  end
    241222
    242   #     (TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)でない場合(E_PAR)
     223  #     (TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)でない場合(E_PAR)
    243224  if !($TMIN_ISRPRI <= params[:isrpri] && params[:isrpri] <= $TMAX_ISRPRI)
    244225    error_illegal("E_PAR", params, "isrpri")
     
    247228
    248229$INTNO_ATTISR_VALID.each do |intnoVal|
    249   # 割込み番号intnoに対して登録されたISRのリストの作成
     230  # 割込み番号intnoに対して登録されたISRのリストの作成
    250231  isrParamsList = []
    251232  $cfgData[:ATT_ISR].sort.each do |key, params|
     
    255236  end
    256237
    257   #     å‰²è¾¼ã¿ç•ªå·intnoに対して登録されたISRが存在する場合
     238  #     割込み番号intnoに対して登録されたISRが存在する場合
    258239  if isrParamsList.size > 0
    259240    inhnoVal = $toInhnoVal[intnoVal]
    260241
    261     # intnoに対応するinhnoに対してDEF_INHがある場合(E_OBJ)
     242    # intnoに対応するinhnoに対してDEF_INHがある場合(E_OBJ)
    262243    if $cfgData[:DEF_INH].has_key?(inhnoVal)
    263244      inhnoParams = $cfgData[:DEF_INH][inhnoVal]
     
    266247    end
    267248
    268     # intnoに対するCFG_INTがない場合(E_OBJ)
     249    # intnoに対するCFG_INTがない場合(E_OBJ)
    269250    if !$cfgData[:CFG_INT].has_key?(intnoVal)
    270251      error_ercd("E_OBJ", isrParamsList[0], "%%intno in %apiname " \
     
    273254      intnoParams = $cfgData[:CFG_INT][intnoVal]
    274255
    275       # intnoに対してCFG_INTで設定された割込み優å
    276 ˆåº¦ãŒTMIN_INTPRIよりも
    277       # 小さい場合(E_OBJ)
     256      # intnoに対してCFG_INTで設定された割込み優先度がTMIN_INTPRIよりも
     257      # 小さい場合(E_OBJ)
    278258      if intnoParams[:intpri] < $TMIN_INTPRI
    279259        error_ercd("E_OBJ", isrParamsList[0],
     
    283263    end
    284264
    285     # 次のDEF_INHに相当するデータを生成
     265    # 次のDEF_INHに相当するデータを生成
    286266    # DEF_INH(inhno, { TA_NULL, _kernel_inthdr_<intno> } );
    287267    $cfgData[:DEF_INH][inhnoVal] = {
     
    291271    }
    292272
    293     # 割込みサービスルーチン用の割込みハンドラ
     273    # 割込みサービスルーチン用の割込みハンドラ
    294274    $kernelCfgC.add("void")
    295275    $kernelCfgC.add("_kernel_inthdr_#{intnoVal}(void)")
     
    305285    end
    306286
    307     # 割込みサービスルーチンを優å
    308 ˆåº¦é †ã«å‘¼ã³å‡ºã™
    309     i = 0               # stable sortを行うための変数
     287    # 割込みサービスルーチンを優先度順に呼び出す
     288    i = 0               # stable sortを行うための変数
    310289    isrParamsList.sort_by {|params| [ params[:isrpri].val, i += 1 ]} \
    311290                                                                                .each_with_index do |params, index|
     
    328307
    329308#
    330 #  割込みハンドラのための標準的な初期化æƒ
    331 å ±ã®ç”Ÿæˆ
     309#  割込みハンドラのための標準的な初期化情報の生成
    332310#
    333311if !$OMIT_INITIALIZE_INTERRUPT || $USE_INHINIB_TABLE
    334312  #
    335   #  定義する割込みハンドラの数
     313  #  定義する割込みハンドラの数
    336314  #
    337315  $kernelCfgC.add(<<EOS)
     
    342320  if $cfgData[:DEF_INH].size != 0
    343321    #
    344     #  割込みハンドラのエントリ
     322    #  割込みハンドラのエントリ
    345323    #
    346324    $cfgData[:DEF_INH].each do |key, params|
     
    351329
    352330    #
    353     #  割込みハンドラ初期化ブロック
     331    #  割込みハンドラ初期化ブロック
    354332    #
    355333    $kernelCfgC.append("const INHNO\t_kernel_inhinib_inhno[TNUM_INHNO] = {")
     
    381359
    382360#
    383 #  割込み要求ラインのための標準的な初期化æƒ
    384 å ±ã®ç”Ÿæˆ
     361#  割込み要求ラインのための標準的な初期化情報の生成
    385362#
    386363if !$OMIT_INITIALIZE_INTERRUPT || $USE_INTINIB_TABLE
    387364
    388365  #
    389   #  設定する割込み要求ラインの数
     366  #  設定する割込み要求ラインの数
    390367  #
    391368  $kernelCfgC.add(<<EOS)
     
    395372
    396373  #
    397   #  割込み要求ライン初期化ブロック
     374  #  割込み要求ライン初期化ブロック
    398375  #
    399376  if $cfgData[:CFG_INT].size != 0
     
    427404
    428405#
    429 å‰²è¾¼ã¿ç®¡ç†æ©Ÿèƒ½åˆæœŸåŒ–関数の追加
     406割込み管理機能初期化関数の追加
    430407#
    431408$initializeFunctions.push("_kernel_initialize_interrupt();")
  • rubycfg_ssp/trunk/kernel.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    1111#               Nagoya Municipal Industrial Research Institute, JAPAN
    1212#
    13 #   ä¸Šè¨˜è‘—作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    15 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    16 #   å¤‰ãƒ»å†é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    20 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    21 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25 #       è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    28 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29 #       ç”¨ã§ããªã„形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31 #       ã¨ï¼Ž
    32 #     (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    36 #     (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39 #         å ±å‘Šã™ã‚‹ã“と.
    40 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    45 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47 #       å
    48 è²¬ã™ã‚‹ã“と.
    49 #
    50 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    51 ãŠ
    52 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    54 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    55 #   ã®è²¬ä»»ã‚’負わない.
     13#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18#       スコード中に含まれていること.
     19#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22#       の無保証規定を掲載すること.
     23#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25#       と.
     26#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     28#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29#         報告すること.
     30#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34#       免責すること.
     35#
     36#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40#   の責任を負わない.
    5641#
    5742#   $Id: kernel.trb 670 2016-03-03 15:08:11Z ertl-hiro $
     
    5944
    6045#
    61 #               ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚¿ã®ãƒ‘ス2の生成スクリプト
    62 #
    63 
    64 #
    65 ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ファイルの指定
     46#               コンフィギュレータのパス2の生成スクリプト
     47#
     48
     49#
     50タイムスタンプファイルの指定
    6651#
    6752$timeStampFileName = "kernel_cfg.timestamp"
    6853
    6954#
    70 #  kernel_cfg.hのå
    71 ˆé ­éƒ¨åˆ†ã®ç”Ÿæˆ
     55#  kernel_cfg.hの先頭部分の生成
    7256#
    7357$kernelCfgH = GenFile.new("kernel_cfg.h")
     
    7963
    8064#
    81 #  kernel_cfg.cのå
    82 ˆé ­éƒ¨åˆ†ã®ç”Ÿæˆ
     65#  kernel_cfg.cの先頭部分の生成
    8366#
    8467$kernelCfgC = GenFile.new("kernel_cfg.c")
     
    9477
    9578#
    96 ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–(#include)
     79インクルードディレクティブ(#include)
    9780#
    9881$kernelCfgC.comment_header("Include Directives")
     
    10386
    10487#
    105 #  スタック領域の確保関数
    106 #
    107 #  スタック領域の定義分と,スタック領域のサイズ記述をé
    108 åˆ—で返す.
     88#  スタック領域の確保関数
     89#
     90#  スタック領域の定義分と,スタック領域のサイズ記述を配列で返す.
    10991#
    11092unless defined? AllocStack()
    11193  def AllocStack(stack, size)
    112     # 大きい方に丸めたサイズで確保する
     94    # 大きい方に丸めたサイズで確保する
    11395    $kernelCfgC.add("static STK_T #{stack}[COUNT_STK_T(#{size})];")
    11496    return("ROUND_STK_T(#{size})")
     
    11799
    118100#
    119 #  カーネルオブジェクトに関するæƒ
    120 å ±ã®ç”Ÿæˆï¼ˆä»®æƒ³ã‚¯ãƒ©ã‚¹ï¼‰
     101#  カーネルオブジェクトに関する情報の生成(仮想クラス)
    121102#
    122103class KernelObject
     
    129110  end
    130111
    131   # オブジェクトのID番号のマクロ定義生成
     112  # オブジェクトのID番号のマクロ定義生成
    132113  def generateIdMacro()
    133114    $cfgData[@api].sort.each do |key, params|
     
    138119
    139120  def generate()
    140     # kernel_cfg.hの生成
     121    # kernel_cfg.hの生成
    141122    $kernelCfgH.add("#define TNUM_#{@OBJ}ID\t#{$cfgData[@api].size}")
    142123
    143     # オブジェクトのID番号のマクロ定義の生成
     124    # オブジェクトのID番号のマクロ定義の生成
    144125    generateIdMacro()
    145126
    146     # オブジェクトのID番号を保持する変数
     127    # オブジェクトのID番号を保持する変数
    147128    if $USE_EXTERNAL_ID
    148129      $cfgData[@api].sort.each do |key, params|
     
    153134    end
    154135
    155     # オブジェクトID番号の最大値
     136    # オブジェクトID番号の最大値
    156137    $kernelCfgC.add2("const ID _kernel_tmax_#{@obj}id" \
    157138                      " = (TMIN_#{@OBJ}ID + TNUM_#{@OBJ}ID - 1);")
    158139
    159     # データ構造の生成
     140    # データ構造の生成
    160141    if respond_to?(:generateData)
    161142      generateData()
     
    163144
    164145    if $cfgData[@api].size() > 0
    165       # オブジェクト初期化関数の追加
     146      # オブジェクト初期化関数の追加
    166147      $initializeFunctions.push("_kernel_initialize_#{@object}();")
    167148    end
     
    170151
    171152#
    172 å„機能モジュールのコンフィギュレーション
     153各機能モジュールのコンフィギュレーション
    173154#
    174155$initializeFunctions = []
     
    182163
    183164#
    184 éžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ã®ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸ
     165非タスクコンテキスト用のスタック領域
    185166#
    186167$kernelCfgC.comment_header("Stack Area for Non-task Context")
    187168
    188 # 非タスクコンテキスト用スタック領域のサイズ
     169# 非タスクコンテキスト用スタック領域のサイズ
    189170$istksz = 0
    190171
    191 # DEF_ICSのエントリが存在するか?
     172# DEF_ICSのエントリが存在するか?
    192173if $cfgData[:DEF_ICS].size == 0
    193   # ない場合,サイズは既定値(DEFAULT_ISTKSZ)を使う
     174  # ない場合,サイズは既定値(DEFAULT_ISTKSZ)を使う
    194175  $kernelCfgC.add2("#define TOPPERS_ISTKSZ      DEFAULT_ISTKSZ")
    195176  $istksz = $DEFAULT_ISTKSZ
    196177else
    197   # DEF_ICS のエントリがある場合
    198 
    199   # 静的API「DEF_ICS」が複数ある(E_OBJ)
     178  # DEF_ICS のエントリがある場合
     179
     180  # 静的API「DEF_ICS」が複数ある(E_OBJ)
    200181  if $cfgData[:DEF_ICS].size > 1
    201182    error("E_OBJ: too many DEF_ICS")
     
    204185  params = $cfgData[:DEF_ICS][1]
    205186
    206   # istksz に 0 を指定した場合(E_PAR)
     187  # istksz に 0 を指定した場合(E_PAR)
    207188  if params[:istksz] == 0
    208189    error_wrong("E_PAR", params, :istksz, "size is 0")
    209   # istk は常に NULL である (E_PAR)
     190  # istk は常に NULL である (E_PAR)
    210191  elsif params[:istk] != "NULL"
    211192    error_wrong("E_PAR", params, :istk, "must be NULL")
     
    217198
    218199#
    219 #  å
    220 ±æœ‰ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸ
    221 #      SSPではすべての処理単位のスタックをå
    222 ±æœ‰ã™ã‚‹ãŸã‚ï¼Œ
    223 #      ここでシステムå
    224 ¨ä½“のスタック領域を確保する.
    225 #
    226 
    227 #
    228 #  å
    229 ±æœ‰ã‚¹ã‚¿ãƒƒã‚¯ã®ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã«æˆåŠŸã—たかどうか
    230 #  DEF_STK 処理中にエラーが発生した場合,この変数が false になる.
     200#  共有スタック領域
     201#      SSPではすべての処理単位のスタックを共有するため,
     202#      ここでシステム全体のスタック領域を確保する.
     203#
     204
     205#
     206#  共有スタックのコンフィギュレーションに成功したかどうか
     207#  DEF_STK 処理中にエラーが発生した場合,この変数が false になる.
    231208#
    232209$defstk_success = true
     
    234211$kernelCfgC.comment_header("Stack Area for System")
    235212
    236 # å
    237 ±æœ‰ã‚¹ã‚¿ãƒƒã‚¯ã®ã‚µã‚¤ã‚º
     213# 共有スタックのサイズ
    238214$stksz = 0
    239215
     
    241217stksz_str = ""
    242218
    243 # DEF_STK のエントリが存在するか?
     219# DEF_STK のエントリが存在するか?
    244220if $cfgData[:DEF_STK].size == 0
    245   # (1) DEF_STK のエントリがない場合
     221  # (1) DEF_STK のエントリがない場合
    246222  stk_str = "_kernel_stack"
    247223  stksz_str = AllocStack(stk_str, "TOPPERS_TSTKSZ+TOPPERS_ISTKSZ")
     
    249225  $stksz = $tstksz + $istksz
    250226else
    251   # (2) DEF_STK のエントリがある場合
    252 
    253   # 静的API「DEF_STK」が複数ある(E_OBJ)
     227  # (2) DEF_STK のエントリがある場合
     228
     229  # 静的API「DEF_STK」が複数ある(E_OBJ)
    254230  if $cfgData[:DEF_STK].size > 1
    255231    $defstk_success = false
     
    259235  params = $cfgData[:DEF_STK][1]
    260236
    261   # DEF_STK の stksz で 0 を指定した場合(E_PAR)
     237  # DEF_STK の stksz で 0 を指定した場合(E_PAR)
    262238  if params[:stksz] == 0
    263239    $defstk_success = false
     
    268244
    269245  if params[:stk] == "NULL"
    270     # stk が NULL の場合,スタック領域を自動割付け
     246    # stk が NULL の場合,スタック領域を自動割付け
    271247    stk_str = "_kernel_stack"
    272248    stksz_str = AllocStack(stk_str, "#{$stksz}")
    273249  else
    274     # stk が NULL 以外の場合(アプリ側でスタック領域を用意する場合)
    275 
    276     # stksz がターゲット毎に定まるアライメントサイズの倍数にアライメントされていない場合(E_PAR)
     250    # stk が NULL 以外の場合(アプリ側でスタック領域を用意する場合)
     251
     252    # stksz がターゲット毎に定まるアライメントサイズの倍数にアライメントされていない場合(E_PAR)
    277253    if (defined? $CHECK_STKSZ_ALIGN) && (($stksz & ($CHECK_STKSZ_ALIGN - 1)) != 0)
    278254      $defstk_success = false
     
    286262
    287263#
    288 # å
    289 ±æœ‰ã‚¹ã‚¿ãƒƒã‚¯ã®ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸ
     264# 共有スタックのスタック領域
    290265#
    291266$kernelCfgC.add(<<EOS)
     
    302277
    303278#
    304 #  優å
    305 ˆåº¦å‰²ã‚Šå½“ておよびスタック設定に関する結果を標準出力へ表示
    306 #  その際,スタックサイズの指定値が実際の割当てサイズより大きいかを確認する.
     279#  優先度割り当ておよびスタック設定に関する結果を標準出力へ表示
     280#  その際,スタックサイズの指定値が実際の割当てサイズより大きいかを確認する.
    307281#
    308282if $defepr_success && $defstk_success
     
    324298
    325299#
    326 ã‚¿ã‚¤ãƒ ã‚¤ãƒ™ãƒ³ãƒˆç®¡ç†
     300タイムイベント管理
    327301#
    328302tnum_tmevt = $cfgData[:CRE_CYC].size + $cfgData[:CRE_ALM].size
     
    340314
    341315if tnum_tmevt > 0
    342   # オブジェクト初期化関数の追加
     316  # オブジェクト初期化関数の追加
    343317  $initializeFunctions.unshift("_kernel_initialize_time_event();")
    344318end
    345319
    346320#
    347 å„モジュールの初期化関数
     321各モジュールの初期化関数
    348322#
    349323$kernelCfgC.comment_header("Module Initialization Function")
     
    359333
    360334#
    361 åˆæœŸåŒ–ルーチン機能
     335初期化ルーチン機能
    362336#
    363337$kernelCfgC.comment_header("Initialization Routine")
    364338
    365 # エラーチェック
     339# エラーチェック
    366340$cfgData[:ATT_INI].each do |key, params|
    367   # iniatrが無効の場合(E_RSATR)
    368   #(TA_NULLでない場合)
     341  # iniatrが無効の場合(E_RSATR)
     342  #(TA_NULLでない場合)
    369343  if (params[:iniatr] != $TA_NULL)
    370344    error_illegal_sym("E_RSATR", params, :iniatr, :inirtn)
     
    372346end
    373347
    374 # 初期化ルーチンの実行関数の生成
     348# 初期化ルーチンの実行関数の生成
    375349$kernelCfgC.append(<<EOS)
    376350void
     
    385359
    386360#
    387 çµ‚了処理ルーチン機能
     361終了処理ルーチン機能
    388362#
    389363$kernelCfgC.comment_header("Termination Routine")
    390364
    391 # エラーチェック
     365# エラーチェック
    392366$cfgData[:ATT_TER].each do |key, params|
    393   # teratrが無効の場合(E_RSATR)
    394   #(TA_NULLでない場合)
     367  # teratrが無効の場合(E_RSATR)
     368  #(TA_NULLでない場合)
    395369  if (params[:teratr] != $TA_NULL)
    396370    error_illegal_sym("E_RSATR", params, :teratr, :terrtn)
     
    398372end
    399373
    400 # 終了処理ルーチンの実行関数の生成
     374# 終了処理ルーチンの実行関数の生成
    401375$kernelCfgC.append(<<EOS)
    402376void
     
    411385
    412386#
    413 #  kernel_cfg.hの末尾部分の生成
     387#  kernel_cfg.hの末尾部分の生成
    414388#
    415389$kernelCfgH.append(<<EOS)
  • rubycfg_ssp/trunk/kernel_api.def

    • Property svn:mime-type set to text/plain; charset=utf-8
  • rubycfg_ssp/trunk/kernel_check.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    1111#              Nagoya Municipal Industrial Research Institute, JAPAN
    1212
    13 #   ä¸Šè¨˜è‘—作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    15 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    16 #   å¤‰ãƒ»å†é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    20 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    21 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25 #       è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    28 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29 #       ç”¨ã§ããªã„形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31 #       ã¨ï¼Ž
    32 #     (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    36 #     (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39 #         å ±å‘Šã™ã‚‹ã“と.
    40 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    45 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47 #       å
    48 è²¬ã™ã‚‹ã“と.
     13#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18#       スコード中に含まれていること.
     19#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22#       の無保証規定を掲載すること.
     23#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25#       と.
     26#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     28#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29#         報告すること.
     30#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34#       免責すること.
    4935
    50 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    51 ãŠ
    52 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    54 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    55 #   ã®è²¬ä»»ã‚’負わない.
     36#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40#   の責任を負わない.
    5641#
    5742#   $Id: kernel_check.trb 662 2016-02-27 02:33:51Z ertl-hiro $
     
    5944
    6045#
    61 #               ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚¿ã®ãƒ‘ス3の生成スクリプト
     46#               コンフィギュレータのパス3の生成スクリプト
    6247#
    6348
    6449#
    65 ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ファイルの指定
     50タイムスタンプファイルの指定
    6651#
    6752$timeStampFileName = "check.timestamp"
    6853
    6954#
    70 ã‚¿ã‚¹ã‚¯ã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     55タスクに関するチェック
    7156#
    7257tinib_task = SYMBOL("_kernel_tinib_task")
     
    7459  task = PEEK(tinib_task, $sizeof_TASK)
    7560
    76   # タスクのå
    77 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
     61  # タスクの先頭番地のチェック
    7862  if (task & ($CHECK_FUNC_ALIGN - 1)) != 0
    7963    error_wrong_id("E_PAR", params, :task, :tskid, "not aligned")
     
    8771
    8872#
    89 å‘¨æœŸé€šçŸ¥ã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     73周期通知に関するチェック
    9074#
    9175cycinib_cychdr = SYMBOL("_kernel_cycinib_cychdr")
     
    9377  cychdr = PEEK(cycinib_cychdr, $sizeof_CYCHDR)
    9478
    95   # 周期ハンドラå
    96 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
     79  # 周期ハンドラ先頭番地のチェック
    9780  if (cychdr & ($CHECK_FUNC_ALIGN - 1)) != 0
    9881    error_wrong_id("E_PAR", params, :cychdr, :cycid, "not aligned")
     
    10689
    10790#
    108 ã‚¢ãƒ©ãƒ¼ãƒ é€šçŸ¥ã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     91アラーム通知に関するチェック
    10992#
    11093alminib_almhdr = SYMBOL("_kernel_alminib_almhdr")
     
    11295  almhdr = PEEK(alminib_almhdr, $sizeof_ALMHDR)
    11396
    114   # アラームハンドラå
    115 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
     97  # アラームハンドラ先頭番地のチェック
    11698  if (almhdr & ($CHECK_FUNC_ALIGN - 1)) != 0
    11799    error_wrong_id("E_PAR", params, :almhdr, :almid, "not aligned")
     
    125107
    126108#
    127 #  å
    128 ±æœ‰ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     109#  共有スタック領域に関するチェック
    129110#
    130111stkAddr = SYMBOL("_kernel_stk")
     
    132113  stk = PEEK(stkAddr, $sizeof_void_ptr)
    133114
    134   # å
    135 ±æœ‰ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸã®å
    136 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
     115  # 共有スタック領域の先頭番地のチェック
    137116  if (stk & ($CHECK_STACK_ALIGN - 1)) != 0
    138117    error_wrong("E_PAR", $cfgData[:DEF_STK][1], :stk, "not aligned")
  • rubycfg_ssp/trunk/kernel_sym.def

    • Property svn:mime-type set to text/plain; charset=utf-8
  • rubycfg_ssp/trunk/prc_check.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    11# -*- coding: utf-8 -*-
    22#
    3 #               ãƒ‘ス3の生成スクリプトのコア依存部(ARM用)
     3#               パス3の生成スクリプトのコア依存部(ARM用)
    44#
    55#  $Id: core_check.trb 730 2016-04-03 02:04:52Z ertl-hiro $
     
    77
    88#
    9 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆéžä¾å­˜éƒ¨ã®ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰
     9ターゲット非依存部のインクルード
    1010#
    1111IncludeTrb("kernel/kernel_check.trb")
    1212
    1313#
    14 å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ãƒ†ãƒ¼ãƒ–ルに関するチェック
     14割込みハンドラテーブルに関するチェック
    1515#
    16 # DEF_INHで登録した割込みハンドラのみチェックする.逆に言うと,コンフィ
    17 # ギュレータで生成した割込みハンドラや,default_int_handlerのチェックは
    18 # 行わない.
     16# DEF_INHで登録した割込みハンドラのみチェックする.逆に言うと,コンフィ
     17# ギュレータで生成した割込みハンドラや,default_int_handlerのチェックは
     18# 行わない.
    1919#
    2020inhinib_entry = SYMBOL("_kernel_inhinib_entry")
     
    2222  inthdr = PEEK(inhinib_entry, $sizeof_FP)
    2323
    24   #     å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ã®å
    25 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
     24  #     割込みハンドラの先頭番地のチェック
    2625  if (inthdr & ($CHECK_FUNC_ALIGN - 1)) != 0
    2726    error_wrong_id("E_PAR", params, :inthdr, :inhno, "not aligned")
     
    3534
    3635#
    37 #  CPU例外ハンドラテーブルに関するチェック
     36#  CPU例外ハンドラテーブルに関するチェック
    3837#
    39 # DEF_EXCで登録したCPU例外ハンドラのみチェックする.逆に言うと,
    40 # default_exc_handlerのチェックは行わない.
     38# DEF_EXCで登録したCPU例外ハンドラのみチェックする.逆に言うと,
     39# default_exc_handlerのチェックは行わない.
    4140#
    4241excinib_entry = SYMBOL("_kernel_excinib_entry")
     
    4443  exchdr = PEEK(excinib_entry, $sizeof_FP)
    4544
    46   # CPU例外ハンドラのå
    47 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
     45  # CPU例外ハンドラの先頭番地のチェック
    4846  if (exchdr & ($CHECK_FUNC_ALIGN - 1)) != 0
    4947    error_wrong_id("E_PAR", params, :exchdr, :excno, "not aligned")
  • rubycfg_ssp/trunk/prc_kernel.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    1212#
    1313#
    14 #   ä¸Šè¨˜è‘—作権è€
    15 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    16 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    17 #   å¤‰ãƒ»å†é
    18 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    19 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    20 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    21 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    22 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    23 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    24 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    25 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    26 #       è€
    27 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    28 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    29 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    30 #       ç”¨ã§ããªã„形で再é
    31 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    32 #       ã¨ï¼Ž
    33 #     (a) 再é
    34 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    35 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    36 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    37 #     (b) 再é
    38 å¸ƒã®å½¢æ
    39 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    40 #         å ±å‘Šã™ã‚‹ã“と.
    41 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    42 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトをå
    44 è²¬ã™ã‚‹ã“と.
    45 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    46 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    47 ãŠã‚ˆã³TOPPERSプロジェクトを
    48 #       å
    49 è²¬ã™ã‚‹ã“と.
     14#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     15#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     16#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     17#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     18#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     19#       スコード中に含まれていること.
     20#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     21#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     22#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     23#       の無保証規定を掲載すること.
     24#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     25#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     26#       と.
     27#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     28#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     29#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     30#         報告すること.
     31#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     32#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     33#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     34#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     35#       免責すること.
    5036#
    51 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    52 ãŠ
    53 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    54 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    55 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    56 #   ã®è²¬ä»»ã‚’負わない.
     37#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     38#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     39#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     40#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     41#   の責任を負わない.
    5742#
    5843#   $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $
     
    6045
    6146#
    62 #               ãƒ‘ス2の生成スクリプトのコア依存部(ARM用)
     47#               パス2の生成スクリプトのコア依存部(ARM用)
    6348#
    6449
    6550#
    66 æœ‰åŠ¹ãªå‰²è¾¼ã¿ç•ªå·ï¼Œå‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ç•ªå·
     51有効な割込み番号,割込みハンドラ番号
    6752#
    6853$INTNO_VALID = Array(15..$TMAX_INTNO)
     
    7055
    7156#
    72 æœ‰åŠ¹ãªCPU例外ハンドラ番号
     57有効なCPU例外ハンドラ番号
    7358#
    7459$EXCNO_VALID = [ 2, 3, 4, 5, 6, 11, 12, 14 ]
    7560
    7661#
    77 #  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
     62#  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
    7863#
    7964$INTNO_ATTISR_VALID = $INTNO_VALID
     
    8166
    8267#
    83 #  DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号
     68#  DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号
    8469#
    8570$INHNO_DEFINH_VALID = $INHNO_VALID
     
    8772
    8873#
    89 ãƒã‚§ãƒƒã‚¯æ–¹æ³•ã®æŒ‡å®š
     74チェック方法の指定
    9075#
    9176$CHECK_STKSZ_ALIGN = 8
    9277
    9378#
    94 #  CFG_INTで使用できる割込み番号と割込み優å
    95 ˆåº¦
     79#  CFG_INTで使用できる割込み番号と割込み優先度
    9680#
    9781$INTNO_CFGINT_VALID = $INTNO_VALID
     
    9983
    10084#
    101 å‰²è¾¼ã¿å±žæ€§ä¸­ã®ã‚¿ãƒ¼ã‚²ãƒƒãƒˆä¾å­˜ã«ç”¨ã„るビット
     85割込み属性中のターゲット依存に用いるビット
    10286#
    10387#$TARGET_INTATR =
    10488
    10589#
    106 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆéžä¾å­˜éƒ¨ã®ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰
     90ターゲット非依存部のインクルード
    10791#
    10892IncludeTrb("kernel/kernel.trb")
     
    11195
    11296#
    113 å‰²è¾¼ã¿ãƒ™ã‚¯ã‚¿ãƒ†ãƒ¼ãƒ–ル
     97割込みベクタテーブル
    11498#
    11599$kernelCfgC.comment_header("Interrupt Vector Table")
     
    144128
    145129#
    146 #  CPU例外ハンドラテーブル
     130#  CPU例外ハンドラテーブル
    147131#
    148132$kernelCfgC.comment_header("CPU Exception Handler Table")
     
    171155
    172156#
    173 #  _kernel_bitpat_cfgintの生成
     157#  _kernel_bitpat_cfgintの生成
    174158#
    175159
  • rubycfg_ssp/trunk/prc_sym.def

    • Property svn:mime-type set to text/plain; charset=utf-8
  • rubycfg_ssp/trunk/ssp_ruby.patch

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    44@@ -18,17 +18,17 @@ LIBS := $(LIBS)  -lgcc
    55 #
    6  #  カーネルに関する定義
     6 #  カーネルに関する定義
    77 #
    88-KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/$(PRC)_$(TOOL)
     
    1212 
    1313 #
    14  #  コンフィギュレータ関係の変数の定義
     14 #  コンフィギュレータ関係の変数の定義
    1515 #
    1616-CFG_TABS := $(CFG_TABS) --cfg1-def-table $(SRCDIR)/arch/$(PRC)_$(TOOL)/prc_def.csv
     
    1818 
    1919 #
    20  #  依存関係の定義
     20 #  依存関係の定義
    2121 #
    2222-cfg1_out.c: $(SRCDIR)/arch/$(PRC)_$(TOOL)/prc_def.csv
     
    4040+#              Nagoya Municipal Industrial Research Institute, JAPAN
    4141 #
    42  #  上記著作権è€
    43 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    44  #  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     42 #  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     43 #  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    4544@@ -108,7 +110,7 @@ TECSGEN = @(TECSGEN)
    4645 #
    47  #  オブジェクトファイル名の定義
     46 #  オブジェクトファイル名の定義
    4847 #
    4948-OBJNAME = asp
     
    8079 
    8180 #
    82 +#  拡張パッケージに関する定義
     81+#  拡張パッケージに関する定義
    8382+#
    8483+
     
    8786+
    8887+#
    89  #  ターゲットファイル
     88 #  ターゲットファイル
    9089 #
    9190 .PHONY: all
    9291@@ -219,17 +228,6 @@ endif
    93  ##### 以下は編集しないこと #####
    94  
    95  #
    96 -#  コンフィギュレータに関する定義
     92 ##### 以下は編集しないこと #####
     93 
     94 #
     95-#  コンフィギュレータに関する定義
    9796-#
    9897-CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     
    105104-
    106105-#
    107  #  カーネルに関する定義
    108  #
    109  #  KERNEL_ASMOBJS: カーネルライブラリに含める,ソースがアセンブリ言語の
     106 #  カーネルに関する定義
     107 #
     108 #  KERNEL_ASMOBJS: カーネルライブラリに含める,ソースがアセンブリ言語の
    110109@@ -244,7 +242,7 @@ CFG_CFLAGS := -DTOPPERS_CB_TYPE_ONLY $(C
    111110 KERNEL_DIRS := $(KERNEL_DIRS) $(SRCDIR)/kernel
     
    116115 
    117116 #
    118  #  カーネルのファイル構成の定義
     117 #  カーネルのファイル構成の定義
    119118@@ -277,12 +275,24 @@ ifndef TARGET_KERNEL_CFG
    120119 endif
    121120 
    122121 #
    123 +#  コンフィギュレータに関する定義
     122+#  コンフィギュレータに関する定義
    124123+#
    125124+CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     
    133132+
    134133+#
    135  #  ソースファイルのあるディレクトリに関する定義
     134 #  ソースファイルのあるディレクトリに関する定義
    136135 #
    137136-vpath %.c $(KERNEL_DIRS) $(SYSSVC_DIRS) $(APPL_DIRS)
     
    145144 
    146145 #
    147  #  コンパイルのための変数の定義
     146 #  コンパイルのための変数の定義
    148147@@ -330,7 +340,7 @@ $(TECSGEN_TIMESTAMP): $(APPL_CDL) $(TECS
    149148 #
     
    163162 
    164163 #
    165  #  オフセットファイル(offset.h)の生成規則
     164 #  オフセットファイル(offset.h)の生成規則
    166165 #
    167166 $(OFFSET_H): offset.timestamp ;
     
    197196@@ -1,6 +1,7 @@
    198197 #
    199  #              Makefile のターゲット依存部(CQ-FRM-FM3用)
     198 #              Makefile のターゲット依存部(CQ-FRM-FM3用)
    200199 #
    201200+OMIT_OFFSET_H = true
    202201 
    203202 #
    204  #  ボード名,プロセッサ名,開発環境名の定義
     203 #  ボード名,プロセッサ名,開発環境名の定義
    205204@@ -39,7 +40,7 @@ COPTS := $(COPTS) -mcpu=cortex-m3 -mthum
    206205 #
    207  #  カーネルに関する定義
     206 #  カーネルに関する定義
    208207 #
    209208-KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR)
     
    214213@@ -47,21 +48,21 @@ KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fno-s
    215214 #
    216  #  システムサービスに関する定義
     215 #  システムサービスに関する定義
    217216 #
    218217-SYSSVC_DIR := $(SYSSVC_DIR)
     
    222221 
    223222 #
    224  #  コンフィギュレータ関係の変数の定義
     223 #  コンフィギュレータ関係の変数の定義
    225224 #
    226225-CFG_TABS := $(CFG_TABS) --cfg1-def-table $(TARGETDIR)/target_def.csv
     
    228227 
    229228 #
    230  #  トレースログに関する設定
     229 #  トレースログに関する設定
    231230 #
    232231 ifeq ($(ENABLE_TRACE),true)
     
    248247 
    249248 #
    250  #  依存関係の定義
     249 #  依存関係の定義
    251250 #
    252251-cfg1_out.c: $(TARGETDIR)/target_def.csv
     
    257256 
    258257 #
    259  #  プロセッサ依存部のインクルード
     258 #  プロセッサ依存部のインクルード
  • rubycfg_ssp/trunk/syssvc_sym.def

    • Property svn:mime-type set to text/plain; charset=utf-8
  • rubycfg_ssp/trunk/target_check.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    11# -*- coding: utf-8 -*-
    22#
    3 #               ãƒ‘ス3の生成スクリプトのターゲット依存部
     3#               パス3の生成スクリプトのターゲット依存部
    44#
    55
  • rubycfg_ssp/trunk/target_kernel.cfg

    • Property svn:mime-type set to text/plain; charset=utf-8
  • rubycfg_ssp/trunk/target_kernel.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    11# -*- coding: utf-8 -*-
    22#
    3 #               ãƒ‘ス2の生成スクリプトのターゲット依存部
     3#               パス2の生成スクリプトのターゲット依存部
    44#
    55
  • rubycfg_ssp/trunk/task.trb

    • Property svn:mime-type set to text/plain; charset=utf-8
    r284 r285  
    1111#              Nagoya Municipal Industrial Research Institute, JAPAN
    1212#
    13 #   ä¸Šè¨˜è‘—作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    15 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    16 #   å¤‰ãƒ»å†é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    20 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    21 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25 #       è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    28 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29 #       ç”¨ã§ããªã„形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31 #       ã¨ï¼Ž
    32 #     (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    36 #     (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39 #         å ±å‘Šã™ã‚‹ã“と.
    40 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    45 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47 #       å
    48 è²¬ã™ã‚‹ã“と.
    49 #
    50 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    51 ãŠ
    52 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    54 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    55 #   ã®è²¬ä»»ã‚’負わない.
     13#   上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18#       スコード中に含まれていること.
     19#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22#       の無保証規定を掲載すること.
     23#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25#       と.
     26#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     28#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29#         報告すること.
     30#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34#       免責すること.
     35#
     36#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40#   の責任を負わない.
    5641#
    5742#   $Id: task.trb 668 2016-03-03 13:57:53Z ertl-hiro $
     
    5944
    6045#
    61 #               ã‚¿ã‚¹ã‚¯ç®¡ç†ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     46#               タスク管理モジュールの生成スクリプト
    6247#
    6348
     
    7358  end
    7459
    75   # オブジェクトのID番号のマクロ定義の生成
     60  # オブジェクトのID番号のマクロ定義の生成
    7661  def generateIdMacro()
    77     # タスクIDを起動優å
    78 ˆåº¦(atskpri)の高い順に reallocate_atskpri へ割り当てて定義を kernel_cfg.h へ出力
     62    # タスクIDを起動優先度(atskpri)の高い順に reallocate_atskpri へ割り当てて定義を kernel_cfg.h へ出力
    7963
    8064    ($cfgData[:CRE_TSK].sort_by {|e| e[1][:atskpri].val}).each.with_index(1) do |e, index|
     
    8367      $kernelCfgH.add("#define #{e[1][:tskid].str} #{index}")
    8468
    85       # DEF_EPR で定義されていないタスクの実行時優å
    86 ˆåº¦ã‚’起動優å
    87 ˆåº¦ã«è¨­å®šã™ã‚‹
     69      # DEF_EPR で定義されていないタスクの実行時優先度を起動優先度に設定する
    8870      epri = $cfgData[:DEF_EPR].find {|i| i[1][:tskid].val == e[1][:tskid].val}
    8971      if epri
     
    9880
    9981  #
    100   #  指定したタスクに対するスタック使用量の最大を計算
    101   #    引数:tskid:タスクID(å†
    102 éƒ¨è¡¨ç¾ï¼Žèµ·å‹•æ™‚優å
    103 ˆåº¦ã®å†
    104 éƒ¨è¡¨ç¾ã«ç­‰ã—い)
    105   #    返値:当該タスクに足しするスタック使用量の最大値.
    106   #          この値は,当該タスクの実行開始から終了までの間に
    107   #          そのタスクに対するプリエンプトを考æ
    108 ®ã—てスタック使用量を
    109   #          計算した場合に,可能性のある組み合わせの中で最大となる値を返す.
     82  #  指定したタスクに対するスタック使用量の最大を計算
     83  #    引数:tskid:タスクID(内部表現.起動時優先度の内部表現に等しい)
     84  #    返値:当該タスクに足しするスタック使用量の最大値.
     85  #          この値は,当該タスクの実行開始から終了までの間に
     86  #          そのタスクに対するプリエンプトを考慮してスタック使用量を
     87  #          計算した場合に,可能性のある組み合わせの中で最大となる値を返す.
    11088  #
    11189  def calc_stksz(tskid, nest_level=1)
     
    11896
    11997    if @stacksize_of_tasks[tskid]
    120       # 計算が既に完了している場合,計算をスキップする
     98      # 計算が既に完了している場合,計算をスキップする
    12199      $kernelCfgC.add(" * " + ("\t" * nest_level) + "SKIP(max_stksz[#{taskEntry[:tskid].str}] = #{@stacksize_of_tasks[tskid]})")
    122100      stksz = @stacksize_of_tasks[tskid]
    123101    else
    124       # 完了していない場合
     102      # 完了していない場合
    125103      $kernelCfgC.append(" * " + ("\t" * nest_level) + "Task list with higher priority than #{taskEntry[:tskid].str} = ")
    126104      @higher_pri_tsklist[tskid].each.with_index do |id, index|
     
    130108      $kernelCfgC.add()
    131109
    132       # 変数の初期化
     110      # 変数の初期化
    133111      higher_pri_maxstksz = 0
    134112
    135       # 当該タスクID の実行時優å
    136 ˆåº¦ã‚ˆã‚Šé«˜ã„起動優å
    137 ˆåº¦ã‚’持つタスクが存在する場合
     113      # 当該タスクID の実行時優先度より高い起動優先度を持つタスクが存在する場合
    138114      if @higher_pri_tsklist[tskid].size > 0
    139         # それぞれの高優å
    140 ˆåº¦ã‚¿ã‚¹ã‚¯ã«å¯¾ã—,スタック計算を実行する
     115        # それぞれの高優先度タスクに対し,スタック計算を実行する
    141116        @higher_pri_tsklist[tskid].each do |id|
    142117          calculated_stack_size = calc_stksz(id, nest_level+1)
    143           # 最もサイズが大きいものだけを覚えておく
     118          # 最もサイズが大きいものだけを覚えておく
    144119          if higher_pri_maxstksz < calculated_stack_size
    145120            higher_pri_maxstksz = calculated_stack_size
     
    150125      $kernelCfgC.add(" * " + ("\t" * nest_level) + "higher_pri_maxstksz[#{taskEntry[:tskid].str}] = #{higher_pri_maxstksz}")
    151126
    152       # 高優å
    153 ˆåº¦ã‚¿ã‚¹ã‚¯ã®ã‚¹ã‚¿ãƒƒã‚¯ä½¿ç”¨é‡ã«ï¼Œå½“該タスクの使用量を加算する
     127      # 高優先度タスクのスタック使用量に,当該タスクの使用量を加算する
    154128      stksz = higher_pri_maxstksz + taskEntry[:stksz]
    155129
    156       # 当該タスクIDに対して計算済みであることを記録
     130      # 当該タスクIDに対して計算済みであることを記録
    157131      @stacksize_of_tasks[tskid] = stksz
    158132      $kernelCfgC.add(" * " + ("\t" * nest_level) + "DONE(stksz[#{taskEntry[:tskid].str}] = #{stksz})")
    159133    end
    160134
    161     # 見積もりの最大を返す
     135    # 見積もりの最大を返す
    162136    return stksz
    163137  end
    164138
    165   # 事前のチェック
     139  # 事前のチェック
    166140  def prepare()
    167141
    168142    $cfgData[@api].sort.each do |key, params|
    169143
    170       # tskatrが無効(E_RSATR)
    171       #(TA_ACT,TA_RSTR,TA_NULL,TARGET_TSKATR以外のビットがセットされている場合)
     144      # tskatrが無効(E_RSATR)
     145      #(TA_ACT,TA_RSTR,TA_NULL,TARGET_TSKATR以外のビットがセットされている場合)
    172146      if (params[:tskatr] & ~($TA_ACT|$TA_RSTR|$TARGET_TSKATR)) != 0
    173147        error_illegal_id("E_RSATR", params, :tskatr, :tskid)
    174148      end
    175149
    176       # (TMIN_TPRI <= atskpri && atskpri <= TMAX_TPRI)でない場合
     150      # (TMIN_TPRI <= atskpri && atskpri <= TMAX_TPRI)でない場合
    177151      if !($TMIN_TPRI <= params[:atskpri] && params[:atskpri] <= $TMAX_TPRI)
    178152        error_illegal_id("E_PAR", params, :atskpri, :tskid)
    179153      end
    180154
    181       # atskpri が重複する場合 (E_PAR)
     155      # atskpri が重複する場合 (E_PAR)
    182156      @tsk_apri_list.each do |id|
    183157        if (params[:tskid].val != id) && (params[:atskpri] == $cfgData[@api][id][:atskpri])
     
    186160      end
    187161
    188       # 実行時優å
    189 ˆåº¦
     162      # 実行時優先度
    190163      if $cfgData[:DEF_EPR][params[:tskid].val]
    191         # exepri は TMIN_TPRI 以上 かつ TMAX_TPRI 以下(E_PAR)
     164        # exepri は TMIN_TPRI 以上 かつ TMAX_TPRI 以下(E_PAR)
    192165        exepri = $cfgData[:DEF_EPR][params[:tskid].val][:exepri]
    193166        if $TMIN_TPRI > exepri || $TMAX_TPRI < exepri
     
    196169        end
    197170
    198         # exepri は atskpri 以下の値をもつ(優å
    199 ˆåº¦ãŒé«˜ã„) (E_ILUSE)
     171        # exepri は atskpri 以下の値をもつ(優先度が高い) (E_ILUSE)
    200172        if exepri > params[:atskpri]
    201173          $defepr_success = false
     
    204176      end
    205177
    206       # stkszがターゲット定義の最小値(TARGET_MIN_STKSZ,未定義の場合は1)
    207       # よりも小さい場合
     178      # stkszがターゲット定義の最小値(TARGET_MIN_STKSZ,未定義の場合は1)
     179      # よりも小さい場合
    208180      if params[:stksz] < $TARGET_MIN_STKSZ
    209181        error_ercd("E_PAR", params, "stksz is too small.")
    210182      end
    211183
    212       # スタックのå
    213 ˆé ­ç•ªåœ°(stk)
    214       # å
    215 ¨ã¦ã®å‡¦ç†å˜ä½ã®ã‚¹ã‚¿ãƒƒã‚¯ã¯å
    216 ±æœ‰ã•ã‚Œã‚‹ï¼Ž
    217       # そのため,スタックサイズに関するチェックは
    218       # å
    219 ±æœ‰ã‚¹ã‚¿ãƒƒã‚¯è¨­å®šã®ã¨ã“ろでまとめて行う.
     184      # スタックの先頭番地(stk)
     185      # 全ての処理単位のスタックは共有される.
     186      # そのため,スタックサイズに関するチェックは
     187      # 共有スタック設定のところでまとめて行う.
    220188      if params[:stk] != "NULL"
    221189        error_ercd("E_PAR", params, "stk must be NULL.")
     
    224192  end
    225193
    226   # データ構造の生成
     194  # データ構造の生成
    227195  def generateData()
    228196
    229     # 事前準備(エラーチェック,メモリ領域の生成)
     197    # 事前準備(エラーチェック,メモリ領域の生成)
    230198    prepare()
    231199
    232200    #
    233     # オブジェクト初期化ブロックの生成
     201    # オブジェクト初期化ブロックの生成
    234202    #
    235203    init_rdypmap = 0
    236204
    237     # タスク属性(tskatr)
     205    # タスク属性(tskatr)
    238206    $kernelCfgC.append("const ATR\t_kernel_tinib_tskatr[TNUM_TSKID] = {")
    239207    @tsk_apri_list.each.with_index do |id, index|
     
    249217    $kernelCfgC.add("const uint_t\t_kernel_init_rdypmap = #{init_rdypmap}U;")
    250218
    251     # 拡張æƒ
    252 å ±(exinf)
     219    # 拡張情報(exinf)
    253220    $kernelCfgC.append("const intptr_t\t_kernel_tinib_exinf[TNUM_TSKID] = {")
    254221    @tsk_apri_list.each.with_index do |id, index|
     
    259226    $kernelCfgC.add("};")
    260227
    261     # 起動番地(task)
     228    # 起動番地(task)
    262229    $kernelCfgC.append("const TASK\t_kernel_tinib_task[TNUM_TSKID] = {")
    263230    @tsk_apri_list.each.with_index do |id, index|
     
    268235    $kernelCfgC.add("};")
    269236
    270     # 実行時優å
    271 ˆåº¦(etskpri)
     237    # 実行時優先度(etskpri)
    272238    $kernelCfgC.append("const uint_t\t_kernel_tinib_epriority[TNUM_TSKID] = {")
    273239    @tsk_apri_list.each.with_index do |id, index|
     
    290256
    291257    #
    292     # 優å
    293 ˆåº¦å‰²ã‚Šå½“て結果を出力
     258    # 優先度割り当て結果を出力
    294259    #
    295260    $kernelCfgC.add("/*")
     
    302267
    303268    #
    304     #  タスクの最大スタック使用量の計算
     269    #  タスクの最大スタック使用量の計算
    305270    #
    306271   
    307     # 木構造のデータ作成
     272    # 木構造のデータ作成
    308273    $root_apri = []
    309274    (@reallocate_atskpri.sort_by {|id| id[1]}).reverse_each do |id|
    310       # 各タスク毎に,その実行時優å
    311 ˆåº¦ã‚ˆã‚Šã‚‚高い起動時優å
    312 ˆåº¦ã‚’もつタスクのリストを作る
    313       # それはプリエンプトされる可能性のあるタスクのリストとなる.
     275      # 各タスク毎に,その実行時優先度よりも高い起動時優先度をもつタスクのリストを作る
     276      # それはプリエンプトされる可能性のあるタスクのリストとなる.
    314277      @higher_pri_tsklist[id[0]] = []
    315278      (@reallocate_atskpri.sort_by {|id| id[1]}).reverse_each do |id2|
     
    320283    end
    321284
    322     # プリエンプトする・される関係を示す木構造の根(root)となるタスクの探索
    323     #   å¯¾è±¡ã‚¿ã‚¹ã‚¯(id)の起動時優å
    324 ˆåº¦(reallocate_atskpri[id]より低い
    325     #   (値としては大きい)起動時優å
    326 ˆåº¦ã‚’もつタスクの higher_pri_tsklist に
    327     #   å¯¾è±¡ã‚¿ã‚¹ã‚¯(id)が含まれなければ,根となる
     285    # プリエンプトする・される関係を示す木構造の根(root)となるタスクの探索
     286    #   対象タスク(id)の起動時優先度(reallocate_atskpri[id]より低い
     287    #   (値としては大きい)起動時優先度をもつタスクの higher_pri_tsklist に
     288    #   対象タスク(id)が含まれなければ,根となる
    328289    (@reallocate_atskpri.sort_by {|id| id[1]}).reverse_each do |id|
    329290      $is_root = true
     
    341302
    342303    #
    343     #  出力開始
     304    #  出力開始
    344305    #
    345306    $kernelCfgC.add("/* \n * Task Stack Size Estimation:")
    346307
    347     # 根となるタスクに対し,その最大タスク使用量を計算し,リストへ追加する
     308    # 根となるタスクに対し,その最大タスク使用量を計算し,リストへ追加する
    348309    $tstksz = 0
    349310    $stksz_estimated = []
     
    352313    end
    353314
    354     # タスクのスタック使用量の最大値を決定
    355     # リスト中の要素の最大値がタスクの最大スタック使用量となる.
     315    # タスクのスタック使用量の最大値を決定
     316    # リスト中の要素の最大値がタスクの最大スタック使用量となる.
    356317    $tstksz = 0
    357318    $stksz_estimated.each do |size|
     
    361322    end
    362323
    363     # 確認
     324    # 確認
    364325    $kernelCfgC.add2(<<EOS)
    365326 * List of Estimated Total Stack Sizes of Tasks = #{$stksz_estimated}
     
    370331
    371332    #
    372     #  優å
    373 ˆåº¦å‰²ã‚Šå½“て結果を標準出力へ表示
     333    #  優先度割り当て結果を標準出力へ表示
    374334    #
    375335    puts <<~EOS
     
    387347
    388348#
    389 #  タスク管理に関するæƒ
    390 å ±ã®ç”Ÿæˆ
    391 #
    392 
    393 # 実行時優å
    394 ˆåº¦ã®ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã«æˆåŠŸã—たかどうか
     349#  タスク管理に関する情報の生成
     350#
     351
     352# 実行時優先度のコンフィギュレーションに成功したかどうか
    395353$defepr_success = true
    396354
Note: See TracChangeset for help on using the changeset viewer.