1. Overview of Nios® V Embedded Processor Development
2. Getting Started with the Graphical User Interface
3. Getting Started from the Command Line
4. Nios® V Processor Software Development and Implementation
5. Nios® V Processor Board Support Package Editor
6. Overview of the Hardware Abstraction Layer
7. Developing Programs Using the Hardware Abstraction Layer
8. Developing Device Drivers for the Hardware Abstraction Layer
9. Trap Handling
10. Cache and Tightly-Coupled Memory
11. MicroC/OS-II Real-Time Operating System
12. MicroC/TCP-IP Protocol Stack
13. FreeRTOS* Real-Time Operating System
14. Read-Only Zip File System
15. Publishing Component Information to Embedded Software
16. Nios® V Processor Appendix
17. Nios® V Processor Software Developer Handbook Archives
18. Revision History for the Nios® V Processor Software Developer Handbook
4.3.2.1. Selecting the Operating System
4.3.2.2. Intel HAL Configuration Tips
4.3.2.3. Micrium MicroC/OS-II Configuration tips
4.3.2.4. Configuring FreeRTOS*
4.3.2.5. Adding Software Package
4.3.2.6. Using Tcl Script with BSP Editor
4.3.2.7. Exporting Tcl Scripts with BSP Editor
4.3.2.8. Importing Tcl Script to Create a New BSP
7.1. HAL BSP Settings
7.2. The Nios® V Processor Embedded Project Structure
7.3. The system.h System Description File
7.4. Data Widths and the HAL Type Definitions
7.5. UNIX-Style Interface
7.6. File System
7.7. Using Character-Mode Devices
7.8. Using File System
7.9. Using Timer Devices
7.10. Using Flash Devices
7.11. Using DMA Devices
7.12. Reducing Code Footprint in Embedded Systems
7.13. Interrupt Controllers
7.14. Boot Sequence and Entry Point
7.15. Memory Usage
7.16. Working with HAL Source Files
7.12.1. Apply Compiler Flags
7.12.2. Use Small Variant Device Drivers
7.12.3. Reduce the File Descriptor Pool
7.12.4. Use /dev/null
7.12.5. Use a Smaller File I/O Library
7.12.6. Use the Minimal Character-Mode API
7.12.7. Eliminate Unused Device Drivers
7.12.8. Use the Picolibc Library
7.12.9. Eliminate Unused alt_load()
7.12.10. Eliminate Unneeded Exit Code
8.1. Driver Integration in the HAL API
8.2. The HAL Peripheral-Specific API
8.3. Preparing for HAL Driver Development
8.4. Development Flow for Creating Device Drivers
8.5. Nios® V Processor Hardware Design Concepts
8.6. Accessing Hardware
8.7. Creating Embedded Drivers for HAL Device Classes
8.8. Integrating a Device Driver in the HAL
8.9. Creating a Custom Device Driver for the HAL
8.10. Reducing Code Footprint in HAL Embedded Drivers
8.11. HAL Namespace Allocation
8.12. Overriding the HAL Default Device Drivers
8.8.5.2.1. Creating and Naming the Driver or Package
8.8.5.2.2. Identifying the Hardware Component Class
8.8.5.2.3. Setting the BSP Type
8.8.5.2.4. Specifying an Operating System
8.8.5.2.5. Specifying Source Files
8.8.5.2.6. Specifying a Subdirectory
8.8.5.2.7. Enabling Software Initialization
8.8.5.2.8. Adding Include Paths
8.8.5.2.9. Version Compatibility
9.5.1.1. Execute Time-Intensive Algorithms in the Application Context
9.5.1.2. Implement Time-Intensive Algorithms in Hardware
9.5.1.3. Increase Buffer Size
9.5.1.4. Use Double Buffering
9.5.1.5. Keep Interrupts Enabled
9.5.1.6. Use Fast Memory
9.5.1.7. Use a Separate Exception Stack
9.5.1.8. Use Nested Interrupts
9.5.1.9. Use Compiler Optimization
12.1. Overview of the MicroC/TCP-IP Protocol Stack
12.2. Support and Licensing
12.3. Prerequisites for Understanding the MicroC/TCP-IP Protocol Stack
12.4. Introduction to the MicroC/TCP-IP Protocol Stack - Nios® V Processor Edition
12.5. The MicroC/TCP-IP Protocol Stack Files and Directories
12.6. Enabling MicroC/TCP-IP Protocol Stack
12.7. Using the MicroC/TCP-IP Protocol Stack
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_enabled()
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
16.5.4.7. set_sw_property
Usage
set_sw_property <property> <value>Options
- <property>: Type of software property being set.
- <value>: Value assigned to the property.
Description
Sets the specified value to the specified property. The properties this command supports can only hold a single value. This command overwrites the existing (or default) contents of a particular property with the specified value. This command applies to device drivers and software packages.
This command supports the following properties:
- hw_class_name—The name of the hardware class which your device driver supports. The hardware class name is also the Component Name shown in the Component Editor. Example: altera_avalon_uart. This property is only available for device drivers. This property is required for all drivers.
- version—The version number of this package. set_sw_property uses version numbers to determine compatibility between hardware (peripherals) and their software (drivers), as well as to choose the most recent software or driver if multiple compatible versions are available. A version can be any alphanumeric string, but is usually a major and one or more minor revision integers. The dot (.) character separates major and minor revision numbers. Examples: 9.0, 5.0sp1, 3.2.11. This property is optional, but recommended. If you do not specify a version, the newest version of the package is used.
- min_compatible_hw_version—Specifies that the device driver supports the specified hardware version, or all greater versions. This property is only available for device drivers. If your device driver supports only one or more specific versions of a hardware class, use the add_sw_property specific_compatible_hw_version command instead. See the version property documentation for information about version strings. This property is optional. This property is only available for device drivers.
-
auto_initialize—Boolean value that specifies alt_sys_init.c needs to initialize your package. If enabled, you must provide a header file containing INSTANCE and INIT macros.
This property is optional; if unspecified, alt_sys_init.c does not contain references to your driver or software. This property is only available for device drivers and software packages.
- bsp_subdirectory—Specifies the top-level directory where niosv-bsp copies all source files for this package. This property is a path relative to the top-level BSP directory. This property is optional; if unspecified, niosv-bsp copies the driver or software package into the drivers subdirectory of any BSP including this software.
- alt_sys_init_priority—This property assigns a priority to the software package or device driver. The value of this property must be a positive integer. Use this property to customize the order of macro calls in the BSP alt_sys_init.c file. Specifying the priority is useful if your software or driver must be initialized before or after other software in the system. For example, your driver might depend on another driver already being initialized. This property is optional. The default priority is 1000. This property is only available for device drivers and software packages.
- display_name—This property is used for user interfaces and other tools that wish to show a human-readable name to identify the software being described in the .tcl script. display_name is set to a few words of text (in quotes) that name your software. For example: Intel FPGA Nios V driver. This property is optional. If not set, tools that attempt to use the display name use the package name created with the appropriate create_ command.
- extends_bsp_type—This property specifies which BSP type that an operating system (created with the create_os command) extends (if any). Currently, only the Intel FPGA HAL (HAL) is supported. This command is required for all operating systems that wish to use HAL-compatible generators in the Nios® V processor BSP tools. It is also required for operating systems that require the Intel HAL, device driver, or software package source files that are HAL compatible in BSPs created with that operating system. An operating system that extends HAL is presumed to be compatible with device drivers that support HAL. This command is only available for operating systems.
- callback_source_file—This property specifies a Tcl source file containing callback functions.
- initialization_callback—This property specifies the name of a Tcl callback function which is intended to run in the following environment:
- Run time: initialization
- Scope: component instance
- Function argument(s): component instance name
- validation_callback—This property specifies the name of a Tcl callback function which is intended to run in the following environment:
- Run time: validation
- Scope: component instance
- Function argument(s): component instance name
- generation_callback—This property specifies the name of a callback function which is intended to run in the following environment:
- Run time: generation
- Scope: component instance
- Function argument(s): component instance name, BSP generate target directory, driver BSP subdirectory
- class_initialization_callback—This property specifies the name of a callback function which is intended to run in the following environment:
- Run time: initialization
- Scope: component instance
- Function argument(s): driver class name
- class_validation_callback—This property specifies the name of a callback function which is intended to run in the following environment:
- Run time: validation
- Scope: component instance
- Function argument(s): driver class name
- class_generation_callback—This property specifies the name of a callback function which is intended to run in the following environment:
- Run time: generation
- Scope: component instance
- Function argument(s): driver class name, BSP generate target directory, driver BSP subdirectory
- supported_interrupt_apis—Specifies the interrupt API that the device driver supports. Specify enhanced_interrupt_api only because the Nios® V processor supports the Enhanced HAL Interrupt API only.
Note: This property is only available for device drivers.
- isr_preemption_supported—Specify true if your device driver ISR can be preempted by a higher priority ISR. If you do not specify whether ISR preemption is supported, the Nios® V processor tools assumes that your device driver does not support preemption. If your driver does not have an ISR, but the associated device has an interrupt port, you can set this property to true.
Note: This property is valid for operating systems and device drivers.