インテルのみ表示可能 — GUID: erx1642817738407
Ixiasoft
1. Nios® V エンベデッド・プロセッサー開発の概要
2. グラフィカル・ユーザー・インターフェイスのガイドライン
3. コマンドラインでの操作方法
4. Nios® V プロセッサー・ソフトウェアの開発と実装
5. Nios® V プロセッサーのボード・サポート・パッケージ・エディター
6. ハードウェア・アブストラクション・レイヤー (HAL) の概要
7. ハードウェア・アブストラクション・レイヤー (HAL) を使用した開発
8. ハードウェア・アブストラクション・レイヤーに向けたデバイスドライバーの開発
9. 例外処理
10. キャッシュおよび密結合メモリー
11. MicroC/OS-II リアルタイム・オペレーティング・システム
12. MicroC/TCP-IP プロトコルスタック
13. FreeRTOS* リアルタイム・オペレーティング・システム
14. 読み取り専用 zip ファイルシステム
15. エンベデッド・ソフトウェアへのコンポーネント情報の公開
16. Nios® V プロセッサー — 付録
A. Nios® V プロセッサー・ソフトウェア開発者ハンドブックのアーカイブ
17. Nios® V プロセッサー・ソフトウェア開発者ハンドブックの改訂履歴
7.1. HAL BSP の設定
7.2. Nios® V プロセッサーエンベデッド・プロジェクトの構造
7.3. system.hシステム記述ファイル
7.4. データ幅と HAL タイプの定義
7.5. UNIX スタイルのインターフェイス
7.6. キャラクター・モード・デバイスの使用
7.7. タイマーデバイスの使用
7.8. フラッシュデバイスの使用
7.9. DMA デバイスの使用
7.10. 割り込みコントローラー
7.11. エンベデッド・システムのコード・フットプリントの削減
7.12. ブートシーケンスとエントリーポイント
7.13. メモリー使用量
7.14. HAL ソースファイルの操作方法
8.1. HAL API でのドライバーの統合
8.2. HAL ペリフェラル固有の API
8.3. HAL ドライバー開発の準備
8.4. デバイスドライバー作成の開発フロー
8.5. Nios® V プロセッサーのハードウェアにおけるデザイン概念
8.6. ハードウェアへのアクセス
8.7. HAL デバイスクラスに向けたエンベデッド・ドライバーの作成
8.8. HAL へのデバイスドライバーの統合
8.9. HAL 用のカスタム・デバイスドライバーの作成
8.10. HAL エンベデッド・ドライバーのコード・フットプリントの削減
8.11. HAL における名前空間の割り当て
8.12. HAL デフォルト・デバイスドライバーのオーバーライド
16.1.1.1. _exit()
16.1.1.2. _rename()
16.1.1.3. alt_dcache_flush()
16.1.1.4. alt_dcache_flush_all()
16.1.1.5. alt_icache_flush_all()
16.1.1.6. alt_dcache_flush_no_writeback()
16.1.1.7. alt_icache_flush_all()
16.1.1.8. alt_icache_flush()
16.1.1.9. alt_alarm_start()
16.1.1.10. alt_alarm_stop()
16.1.1.11. alt_dma_rxchan_depth()
16.1.1.12. alt_dma_rxchan_close()
16.1.1.13. alt_dev_reg()
16.1.1.14. alt_dma_rxchan_open()
16.1.1.15. alt_dma_rxchan_prepare()
16.1.1.16. alt_dma_rxchan_reg()
16.1.1.17. alt_dma_txchan_close()
16.1.1.18. alt_dma_txchan_ioctl()
16.1.1.19. alt_dma_txchan_open()
16.1.1.20. alt_dma_txchan_reg()
16.1.1.21. alt_flash_close_dev()
16.1.1.22. alt_exception_cause_generated_bad_addr()
16.1.1.23. alt_erase_flash_block()
16.1.1.24. alt_dma_rxchan_ioctl()
16.1.1.25. alt_dma_txchan_space()
16.1.1.26. alt_dma_txchan_send()
16.1.1.27. alt_flash_open_dev()
16.1.1.28. alt_fs_reg()
16.1.1.29. alt_get_flash_info()
16.1.1.30. alt_ic_irq_disable()
16.1.1.31. alt_ic_irq_enable()
16.1.1.32. alt_ic_isr_register()
16.1.1.33. alt_ic_irq_enable()
16.1.1.34. alt_instruction_exception_register()
16.1.1.35. alt_irq_cpu_enable_interrupts ()
16.1.1.36. alt_irq_disable_all()
16.1.1.37. alt_irq_enable_all()
16.1.1.38. alt_irq_enabled()
16.1.1.39. alt_irq_init()
16.1.1.40. alt_irq_pending ()
16.1.1.41. alt_llist_insert()
16.1.1.42. alt_llist_remove()
16.1.1.43. alt_load_section()
16.1.1.44. alt_nticks()
16.1.1.45. alt_read_flash()
16.1.1.46. alt_tick()
16.1.1.47. alt_ticks_per_second()
16.1.1.48. alt_timestamp()
16.1.1.49. alt_timestamp_freq()
16.1.1.50. alt_timestamp_start()
16.1.1.51. alt_write_flash()
16.1.1.52. alt_write_flash_block()
16.1.1.53. close()
16.1.1.54. fstat()
16.1.1.55. fork()
16.1.1.56. fcntl()
16.1.1.57. execve()
16.1.1.58. getpid()
16.1.1.59. kill()
16.1.1.60. stat()
16.1.1.61. settimeofday()
16.1.1.62. wait()
16.1.1.63. unlink()
16.1.1.64. sbrk()
16.1.1.65. link()
16.1.1.66. lseek()
16.1.1.67. open()
16.1.1.68. alt_sysclk_init()
16.1.1.69. times()
16.1.1.70. read()
16.1.1.71. write()
16.1.1.72. usleep()
16.1.1.73. alt_lock_flash()
16.1.1.74. gettimeofday()
16.1.1.75. ioctl()
16.1.1.76. isatty()
16.1.1.77. alt_niosv_enable_msw_interrupt()
16.1.1.78. alt_niosv_disable_msw_interrupt()
16.1.1.79. alt_niosv_is_msw_interrupt_enabled()
16.1.1.80. alt_niosv_trigger_msw_interrupt()
16.1.1.81. alt_niosv_clear_msw_interrupt()
16.1.1.82. alt_niosv_register_msw_interrupt_handler()
16.5.2.1. add_memory_device
16.5.2.2. add_memory_region
16.5.2.3. add_section_mapping
16.5.2.4. are_same_resource
16.5.2.5. delete_memory_region
16.5.2.6. delete_section_mapping
16.5.2.7. disable_sw_package
16.5.2.8. enable_sw_package
16.5.2.9. get_addr_span
16.5.2.10. get_assignment
16.5.2.11. get_available_drivers
16.5.2.12. get_available_sw_packages
16.5.2.13. get_base_addr
16.5.2.14. get_break_offset
16.5.2.15. get_break_slave_desc
16.5.2.16. get_cpu_name
16.5.2.17. get_current_memory_regions
16.5.2.18. get_current_section_mappings
16.5.2.19. get_default_memory_regions
16.5.2.20. get_driver
16.5.2.21. get_enabled_sw_packages
16.5.2.22. get_exception_offset
16.5.2.23. get_exception_slave_desc
16.5.2.24. get_fast_tlb_miss_exception_offset
16.5.2.25. get_fast_tlb_miss_exception_slave_desc
16.5.2.26. get_interrupt_controller_id
16.5.2.27. get_irq_interrupt_controller_id
16.5.2.28. get_irq_number
16.5.2.29. get_memory_region
16.5.2.30. get_module_class_name
16.5.2.31. get_module_name
16.5.2.32. get_reset_offset
16.5.2.33. get_reset_slave_desc
16.5.2.34. get_section_mapping
16.5.2.35. get_setting
16.5.2.36. get_setting_desc
16.5.2.37. get_slave_descs
16.5.2.38. is_char_device
16.5.2.39. is_connected_interrupt_controller_device
16.5.2.40. is_connected_to_data_master
16.5.2.41. is_connected_to_instruction_master
16.5.2.42. is_ethernet_mac_device
16.5.2.43. is_flash
16.5.2.44. is_memory_device
16.5.2.45. is_non_volatile_storage
16.5.2.46. is_timer_device
16.5.2.47. log_debug
16.5.2.48. log_default
16.5.2.49. log_error
16.5.2.50. log_verbose
16.5.2.51. set_driver
16.5.2.52. set_ignore_file
16.5.2.53. set_setting
16.5.2.54. update_memory_region
16.5.2.55. update_section_mapping
16.5.2.56. add_default_memory_regions
16.5.2.57. create_bsp
16.5.2.58. generate_bsp
16.5.2.59. get_available_bsp_type_versions
16.5.2.60. get_available_bsp_types
16.5.2.61. get_available_cpu_architectures
16.5.2.62. get_available_cpu_names
16.5.2.63. get_available_software
16.5.2.64. get_available_software_setting_properties
16.5.2.65. get_available_software_settings
16.5.2.66. get_bsp_version
16.5.2.67. get_cpu_architecture
16.5.2.68. get_sopcinfo_file
16.5.2.69. get_supported_bsp_types
16.5.2.70. is_bsp_hal_extension
16.5.2.71. open_bsp
16.5.2.72. save_bsp
16.5.2.73. set_bsp_version
16.5.2.74. set_logging_mode
16.5.3.1. add_class_sw_setting
16.5.3.2. add_class_systemh_line
16.5.3.3. add_module_sw_property
16.5.3.4. add_module_sw_setting
16.5.3.5. add_module_systemh_line
16.5.3.6. add_systemh_line
16.5.3.7. get_class_peripheral
16.5.3.8. get_module_assignment
16.5.3.9. get_module_name
16.5.3.10. get_module_peripheral
16.5.3.11. get_module_sw_setting_value
16.5.3.12. get_peripheral_property
16.5.3.13. remove_class_systemh_line
16.5.3.14. remove_module_systemh_line
16.5.3.15. set_class_sw_setting_property
16.5.3.16. set_module_sw_setting_property
インテルのみ表示可能 — GUID: erx1642817738407
Ixiasoft
9.1.1. 例外処理の用語
次の HAL 用語のリストは、基本的な例外処理の概念の概要を示しています。
- アプリケーション・コンテクスト — 例外ファネルおよびハンドラーの外での、通常のプログラム実行中の Nios® V プロセッサーおよび HAL のステータス。
- コンテクスト・スイッチ — 例外または割り込み時に Nios® V プロセッサーのレジスターを保存し、例外処理ルーチンまたは ISR からの戻り時にそれらを復元するプロセス。
- 例外 — プロセッサーの内部または外部のイベントが原因で、プログラムの通常の実行フローから制御が移されることで、すぐに対処する必要があります。例外には、ソフトウェア例外とハードウェア割り込みが含まれます。
- 例外コンテキスト — ファネルコード、ソフトウェア例外ハンドラー、または ISR が実行されている際における、ソフトウェア例外またはハードウェア割り込み後の Nios® V プロセッサーおよび HAL のステータス。
- 例外処理システム — ハードウェア割り込みを含むすべての例外を処理し、必要に応じてソフトウェア例外ハンドラーと ISR に制御を渡すソフトウェア・ルーチンの完全なシステム。
- 例外 (または割り込み) レイテンシー — 例外 (未実装の命令または割り込み要求など) を引き起こすイベントと、例外 (または割り込みベクトル) アドレスでの最初の命令の実行との間に経過した時間。
- 例外 (または割り込み) 応答時間 — 例外の原因となったイベントからハンドラーの実行までに経過した時間。
- 例外オーバーヘッド — ソフトウェア例外またはハードウェア割り込みを処理するために必要な追加処理。該当する場合は、HAL 固有の処理と RTOS 固有の処理が含まれます。
- ファネルコード — ISR などの例外固有のハンドラー用に正しいプロセッサー環境をセットアップする HAL によって提供されるコード。
- ハンドラー — 例外タイプに固有のコード。ハンドラーコードは、一般的な例外オーバーヘッド・タスクを処理するファネル コードとは異なります。
- 実装に依存する命令 — Nios® V コアのすべての実装ではサポートされていない Nios® V プロセッサー命令。たとえば、mul 命令は Nios® V/m コアではサポートされていないため、実装に依存します。
- 割り込み — ハードウェア割り込み。
- 割り込みコントローラー — Nios® V プロセッサーが制御を ISR に転送することで割り込みに応答できるようにするハードウェア。
- 割り込み要求 (IRQ) — ハードウェア割り込み。
- 割り込みサービス・ルーチン (ISR) — 個々のハードウェア割り込みを処理するソフトウェア・ルーチン。
- 無効命令 — Nios® V プロセッサーのどの実装に対しても定義されていない命令。
- マスク可能な例外 — mtatus.mie フラグで無効にできる例外には、内部ハードウェア割り込み、マスク可能な外部ハードウェア割り込み、ソフトウェア例外が含まれますが、マスク不可能な外部割り込みは含まれません。
- 最大無効時間 — システムがマスク可能な例外を無効にして費やす最大連続時間。
- 最大マスク時間 — システムが 1 つの割り込みをマスクして費やす最大連続時間。
- その他の例外 — 未実装の命令でも、ebreak または ecall 命令でもないソフトウェア例外。
- ネストされた割り込み — 優先度の低い ISR が既に実行されている場合、優先度の高い割り込みが制御を取得するプロセス。
- ソフトウェア例外 — ソフトウェアの状態によって引き起こされる例外。つまり、ハードウェア割り込み以外の例外です。これには、実装されていない命令と ebreak または ecall 命令が含まれます。
- 未実装の命令 — システム内の特定の Nios® V プロセッサー・コア実装ではサポートされていない実装依存の命令。たとえば、mul 命令は Nios® V/m プロセッサー・コアでは実装されていません。
- 最悪の例外 (または割り込み) レイテンシー — 最大無効時間または最大マスク時間を含む、例外 (または割り込み) レイテンシーの値。無効化またはマスクされた最大時間を含めることは、マスクまたは無効化された時間の開始時に例外 (または割り込み) が発生した場合を考慮したものです。