Visible to Intel only — GUID: iax1678076364200
Ixiasoft
1. Overview of Nios® V Embedded Processor Development
2. Getting Started from the Command Line
3. Nios® V Processor Software Development and Implementation
4. Nios® V Processor Board Support Package Editor
5. Overview of the Hardware Abstraction Layer
6. Developing Programs Using the Hardware Abstraction Layer
7. Developing Device Drivers for the Hardware Abstraction Layer
8. Exception Handling
9. MicroC/OS-II Real-Time Operating System
10. MicroC/TCP-IP Protocol Stack
11. FreeRTOS* Real-Time Operating System
12. Publishing Component Information to Embedded Software
13. Nios® V Processor Appendix
A. Nios® V Processor Software Developer Handbook Archives
14. Revision History for Nios® V Processor Software Developer Handbook
3.3.2.1. Selecting the Operating System
3.3.2.2. Intel HAL Configuration Tips
3.3.2.3. Micrium MicroC/OS-II Configuration tips
3.3.2.4. Configuring FreeRTOS*
3.3.2.5. Adding Software Package
3.3.2.6. Using Tcl Script with BSP Editor
3.3.2.7. Exporting Tcl Scripts with BSP Editor
3.3.2.8. Importing Tcl Script to Create a New BSP
6.1. HAL BSP Settings
6.2. The Nios® V Processor Embedded Project Structure
6.3. The system.h System Description File
6.4. Data Widths and the HAL Type Definitions
6.5. UNIX-Style Interface
6.6. Using Character-Mode Devices
6.7. Using Timer Devices
6.8. Using Flash Devices
6.9. Using DMA Devices
6.10. Interrupt Controllers
6.11. Reducing Code Footprint in Embedded Systems
6.12. Boot Sequence and Entry Point
6.13. Memory Usage
6.14. Working with HAL Source Files
6.11.1. Apply Compiler Flags
6.11.2. Use Small Variant Device Drivers
6.11.3. Reduce the File Descriptor Pool
6.11.4. Use /dev/null
6.11.5. Use a Smaller File I/O Library
6.11.6. Use the Minimal Character-Mode API
6.11.7. Eliminate Unused Device Drivers
6.11.8. Use the Picolibc Library
6.11.9. Eliminate Unused alt_load()
6.11.10. Eliminate Unneeded Exit Code
7.1. Driver Integration in the HAL API
7.2. The HAL Peripheral-Specific API
7.3. Preparing for HAL Driver Development
7.4. Development Flow for Creating Device Drivers
7.5. Nios® V Processor Hardware Design Concepts
7.6. Accessing Hardware
7.7. Creating Embedded Drivers for HAL Device Classes
7.8. Integrating a Device Driver in the HAL
7.9. Creating a Custom Device Driver for the HAL
7.10. Reducing Code Footprint in HAL Embedded Drivers
7.11. HAL Namespace Allocation
7.12. Overriding the HAL Default Device Drivers
7.8.5.2.1. Creating and Naming the Driver or Package
7.8.5.2.2. Identifying the Hardware Component Class
7.8.5.2.3. Setting the BSP Type
7.8.5.2.4. Specifying an Operating System
7.8.5.2.5. Specifying Source Files
7.8.5.2.6. Specifying a Subdirectory
7.8.5.2.7. Enabling Software Initialization
7.8.5.2.8. Adding Include Paths
7.8.5.2.9. Version Compatibility
8.1. Nios® V Processor Exception Handling Overview
8.2. Nios® V Processor Hardware Interrupt Service Routines
8.3. Nios® V Processor Software Interrupt Service Routines
8.4. Improving Nios® V Processor ISR Performance
8.5. Debugging Nios® V Processor ISRs
8.6. HAL Exception Handling System Implementation
8.7. Nios® V Processor Instruction-Related Exception Handler
8.4.1.1. Execute Time-Intensive Algorithms in the Application Context
8.4.1.2. Implement Time-Intensive Algorithms in Hardware
8.4.1.3. Increase Buffer Size
8.4.1.4. Use Double Buffering
8.4.1.5. Keep Interrupts Enabled
8.4.1.6. Use Fast Memory
8.4.1.7. Use a Separate Exception Stack
8.4.1.8. Use Nested Hardware Interrupts
8.4.1.9. Use Compiler Optimization
10.1. Overview of the MicroC/TCP-IP Protocol Stack
10.2. Support and Licensing
10.3. Prerequisites for Understanding the MicroC/TCP-IP Protocol Stack
10.4. Introduction to the MicroC/TCP-IP Protocol Stack - Nios® V Processor Edition
10.5. The MicroC/TCP-IP Protocol Stack Files and Directories
10.6. Enabling MicroC/TCP-IP Protocol Stack
10.7. Using the MicroC/TCP-IP Protocol Stack
13.1.1.1. _exit()
13.1.1.2. _rename()
13.1.1.3. alt_dcache_flush()
13.1.1.4. alt_dcache_flush_all()
13.1.1.5. alt_icache_flush_all()
13.1.1.6. alt_dcache_flush_no_writeback()
13.1.1.7. alt_uncached_malloc()
13.1.1.8. alt_uncached_free()
13.1.1.9. alt_remap_uncached()
13.1.1.10. alt_remap_cached()
13.1.1.11. alt_icache_flush_all()
13.1.1.12. alt_icache_flush()
13.1.1.13. alt_alarm_start()
13.1.1.14. alt_alarm_stop()
13.1.1.15. alt_dma_rxchan_depth()
13.1.1.16. alt_dma_rxchan_close()
13.1.1.17. alt_dev_reg()
13.1.1.18. alt_dma_rxchan_open()
13.1.1.19. alt_dma_rxchan_prepare()
13.1.1.20. alt_dma_rxchan_reg()
13.1.1.21. alt_dma_txchan_close()
13.1.1.22. alt_dma_txchan_ioctl()
13.1.1.23. alt_dma_txchan_open()
13.1.1.24. alt_dma_txchan_reg()
13.1.1.25. alt_flash_close_dev()
13.1.1.26. alt_exception_cause_generated_bad_addr()
13.1.1.27. alt_erase_flash_block()
13.1.1.28. alt_dma_rxchan_ioctl()
13.1.1.29. alt_dma_txchan_space()
13.1.1.30. alt_dma_txchan_send()
13.1.1.31. alt_flash_open_dev()
13.1.1.32. alt_fs_reg()
13.1.1.33. alt_get_flash_info()
13.1.1.34. alt_ic_irq_disable()
13.1.1.35. alt_ic_irq_enabled()
13.1.1.36. alt_ic_isr_register()
13.1.1.37. alt_ic_irq_enable()
13.1.1.38. alt_instruction_exception_register()
13.1.1.39. alt_irq_cpu_enable_interrupts ()
13.1.1.40. alt_irq_disable_all()
13.1.1.41. alt_irq_enable_all()
13.1.1.42. alt_irq_enabled()
13.1.1.43. alt_irq_init()
13.1.1.44. alt_irq_pending ()
13.1.1.45. alt_llist_insert()
13.1.1.46. alt_llist_remove()
13.1.1.47. alt_load_section()
13.1.1.48. alt_nticks()
13.1.1.49. alt_read_flash()
13.1.1.50. alt_tick()
13.1.1.51. alt_ticks_per_second()
13.1.1.52. alt_timestamp()
13.1.1.53. alt_timestamp_freq()
13.1.1.54. alt_timestamp_start()
13.1.1.55. alt_write_flash()
13.1.1.56. alt_write_flash_block()
13.1.1.57. close()
13.1.1.58. fstat()
13.1.1.59. fork()
13.1.1.60. fcntl()
13.1.1.61. execve()
13.1.1.62. getpid()
13.1.1.63. kill()
13.1.1.64. stat()
13.1.1.65. settimeofday()
13.1.1.66. wait()
13.1.1.67. unlink()
13.1.1.68. sbrk()
13.1.1.69. link()
13.1.1.70. lseek()
13.1.1.71. open()
13.1.1.72. alt_sysclk_init()
13.1.1.73. times()
13.1.1.74. read()
13.1.1.75. write()
13.1.1.76. usleep()
13.1.1.77. alt_lock_flash()
13.1.1.78. gettimeofday()
13.1.1.79. ioctl()
13.1.1.80. isatty()
13.1.1.81. alt_niosv_enable_msw_interrupt()
13.1.1.82. alt_niosv_disable_msw_interrupt()
13.1.1.83. alt_niosv_is_msw_interrupt_enabled()
13.1.1.84. alt_niosv_trigger_msw_interrupt()
13.1.1.85. alt_niosv_clear_msw_interrupt()
13.1.1.86. alt_niosv_register_msw_interrupt_handler()
13.4.3.1. Intel HAL BSP
13.4.3.2. Micrium MicroC/OS-II BSP
13.4.3.3. FreeRTOS BSP
freertos.heap_method
freertos.os_port_has_mtime
freertos.os_thread_safe_newlib
freertos.os_use_preemption
freertos.os_use_16_bit_ticks
freertos.os_max_priorities
freertos.os_min_stack_size
freertos.task.os_task_priority_set_en
freertos.task.os_task_priority_get_en
freertos.task.os_task_delete_en
freertos.task.os_task_clean_up_resources_en
freertos.task.os_task_suspend_en
freertos.task.os_task_delay_until_en
freertos.task.os_task_delay_en
freertos.task.os_task_get_state_en
freertos.task.os_task_abort_delay_en
freertos.task.os_task_get_handle_en
freertos.task.os_use_idle_hook
freertos.task.os_max_task_name_len
freertos.task.os_tls_bytes
freertos.task.os_use_timers
freertos.task.os_timer_pend_function_call_en
freertos.task.os_use_tick_hook
freertos.task.os_timer_queue_len
freertos.task.os_timer_task_depth
freertos.mutex.os_mutex_en
freertos.mutex.os_recursive_mutex_en
freertos.semaphore.os_counting_sem_en
freertos.semaphore.os_semaphore_get_mutex_holder_en
freertos.queue.os_use_q_sets
freertos.queue.os_q_reg_size
freertos.memory.os_memory_dynamic_allocation_en
freertos.memory.os_malloc_failed_hook_en
freertos.memory.os_total_heap_size
freertos.miscellaneous.os_use_trace_facility
freertos.miscellaneous.os_check_stack_overflow
freertos.miscellaneous.os_idle_should_yield
13.4.3.4. Device Drivers BSP
13.5.2.1. add_memory_device
13.5.2.2. add_memory_region
13.5.2.3. add_section_mapping
13.5.2.4. are_same_resource
13.5.2.5. delete_memory_region
13.5.2.6. delete_section_mapping
13.5.2.7. disable_sw_package
13.5.2.8. enable_sw_package
13.5.2.9. get_addr_span
13.5.2.10. get_assignment
13.5.2.11. get_available_drivers
13.5.2.12. get_available_sw_packages
13.5.2.13. get_base_addr
13.5.2.14. get_break_offset
13.5.2.15. get_break_slave_desc
13.5.2.16. get_cpu_name
13.5.2.17. get_current_memory_regions
13.5.2.18. get_current_section_mappings
13.5.2.19. get_default_memory_regions
13.5.2.20. get_driver
13.5.2.21. get_enabled_sw_packages
13.5.2.22. get_exception_offset
13.5.2.23. get_exception_slave_desc
13.5.2.24. get_fast_tlb_miss_exception_offset
13.5.2.25. get_fast_tlb_miss_exception_slave_desc
13.5.2.26. get_interrupt_controller_id
13.5.2.27. get_irq_interrupt_controller_id
13.5.2.28. get_irq_number
13.5.2.29. get_memory_region
13.5.2.30. get_module_class_name
13.5.2.31. get_module_name
13.5.2.32. get_reset_offset
13.5.2.33. get_reset_slave_desc
13.5.2.34. get_section_mapping
13.5.2.35. get_setting
13.5.2.36. get_setting_desc
13.5.2.37. get_slave_descs
13.5.2.38. is_char_device
13.5.2.39. is_connected_interrupt_controller_device
13.5.2.40. is_connected_to_data_master
13.5.2.41. is_connected_to_instruction_master
13.5.2.42. is_ethernet_mac_device
13.5.2.43. is_flash
13.5.2.44. is_memory_device
13.5.2.45. is_non_volatile_storage
13.5.2.46. is_timer_device
13.5.2.47. log_debug
13.5.2.48. log_default
13.5.2.49. log_error
13.5.2.50. log_verbose
13.5.2.51. set_driver
13.5.2.52. set_ignore_file
13.5.2.53. set_setting
13.5.2.54. update_memory_region
13.5.2.55. update_section_mapping
13.5.2.56. add_default_memory_regions
13.5.2.57. create_bsp
13.5.2.58. generate_bsp
13.5.2.59. get_available_bsp_type_versions
13.5.2.60. get_available_bsp_types
13.5.2.61. get_available_cpu_architectures
13.5.2.62. get_available_cpu_names
13.5.2.63. get_available_software
13.5.2.64. get_available_software_setting_properties
13.5.2.65. get_available_software_settings
13.5.2.66. get_bsp_version
13.5.2.67. get_cpu_architecture
13.5.2.68. get_sopcinfo_file
13.5.2.69. get_supported_bsp_types
13.5.2.70. is_bsp_hal_extension
13.5.2.71. open_bsp
13.5.2.72. save_bsp
13.5.2.73. set_bsp_version
13.5.2.74. set_logging_mode
13.5.3.1. add_class_sw_setting
13.5.3.2. add_class_systemh_line
13.5.3.3. add_module_sw_property
13.5.3.4. add_module_sw_setting
13.5.3.5. add_module_systemh_line
13.5.3.6. add_systemh_line
13.5.3.7. get_class_peripheral
13.5.3.8. get_module_assignment
13.5.3.9. get_module_name
13.5.3.10. get_module_peripheral
13.5.3.11. get_module_sw_setting_value
13.5.3.12. get_peripheral_property
13.5.3.13. remove_class_systemh_line
13.5.3.14. remove_module_systemh_line
13.5.3.15. set_class_sw_setting_property
13.5.3.16. set_module_sw_setting_property
Visible to Intel only — GUID: iax1678076364200
Ixiasoft
13.4.3.3. FreeRTOS BSP
freertos.heap_method
- Identifier: HEAP_METHOD
- Type: Decimal number
- Default Value: 4
- Destination File: system.h
- Description: Choose and implement one of the following heap_x.c source files:
- heap_1.c – Simplest and does not permit memory to be freed.
- heap_2.c – Permits memory to be freed, but does not coalescence adjacent free blocks.
- heap_3.c – Wraps the standard malloc() and free() for thread safety.
- heap_4.c – Coalescences adjacent free blocks to avoid fragmentation, and includes absolute address placement option.
- heap_5.c – As per heap_4.c, in addition to span heap across multiple non-adjacent memory areas.
- Restriction: Valid inputs as 1,2,3,4, and 5 only
freertos.os_port_has_mtime
- Identifier: OS_PORT_HAS_MTIME
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: OS port has Machine Timer driver.
- Restriction: none
freertos.os_thread_safe_newlib
- Identifier: OS_THREAD_SAFE_C_LIBRARY
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable thread-safe C library.
- Restriction: none
freertos.os_use_preemption
- Identifier: OS_USE_PREEMPTION
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable OS preemption.
- Restriction: none
freertos.os_use_16_bit_ticks
- Identifier: OS_USE_16_BIT_TICKS
- Type: Boolean definition
- Default Value: false
- Destination File: system.h
- Description: Configure tick type. Select true for 16-bits, or false for 32-bits.
- Restriction: none
freertos.os_max_priorities
- Identifier: OS_MAX_PRIORITIES
- Type: Decimal number
- Default Value: 7
- Destination File: system.h
- Description: Maximum number of priorities supported.
- Restriction: none
freertos.os_min_stack_size
- Identifier: OS_MIN_STACK_SIZE
- Type: Decimal number
- Default Value: 300
- Destination File: system.h
- Description: OS minimum stack size.
- Restriction: none
freertos.task.os_task_priority_set_en
- Identifier: OS_TASK_PRIORITY_SET_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable vTaskPrioritySet().
- Restriction: none
freertos.task.os_task_priority_get_en
- Identifier: OS_TASK_PRIORITY_GET_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable uxTaskPriorityGet().
- Restriction: none
freertos.task.os_task_delete_en
- Identifier: OS_TASK_DELETE_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable vTaskDelete().
- Restriction: none
freertos.task.os_task_clean_up_resources_en
- Identifier: OS_TASK_CLEAN_UP_RESOURCES_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable vTaskCleanUpResources().
- Restriction: none
freertos.task.os_task_suspend_en
- Identifier: OS_TASK_SUSPEND_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable vTaskSuspend().
- Restriction: none
freertos.task.os_task_delay_until_en
- Identifier: OS_TASK_DELAY_UNTIL_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable vTaskDelayUntil().
- Restriction: none
freertos.task.os_task_delay_en
- Identifier: OS_TASK_DELAY_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable vTaskDelay().
- Restriction: none
freertos.task.os_task_get_state_en
- Identifier:OS_TASK_GET_STATE_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable eTaskGetState().
- Restriction: none
freertos.task.os_task_abort_delay_en
- Identifier: OS_TASK_ABORT_DELAY_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable xTaskAbortDelay().
- Restriction: none
freertos.task.os_task_get_handle_en
- Identifier: OS_TASK_GET_HANDLE_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable xTaskGetHandle().
- Restriction: none
freertos.task.os_use_idle_hook
- Identifier: OS_USE_IDLE_HOOK
- Type: Boolean definition
- Default Value: false
- Destination File: system.h
- Description: Include OS idle hook – vApplicationIdleHook().
- Restriction: none
freertos.task.os_max_task_name_len
- Identifier: OS_MAX_TASK_NAME_LEN
- Type: Decimal number
- Default Value: 16
- Destination File: system.h
- Description: Maximum task name length.
- Restriction: none
freertos.task.os_tls_bytes
- Identifier: OS_TLS_BYTES_PER_TASK
- Type: Decimal number
- Default Value: 256
- Destination File: system.h
- Description: Number of bytes for thread local support variables which map to the .tdata and .tbss program sections. The value can be determined by referring to the _tls_size linker symbol.
- Restriction: none
freertos.task.os_use_timers
- Identifier: OS_USE_TIMERS
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Use OS timers.
- Restriction: none
freertos.task.os_timer_pend_function_call_en
- Identifier: OS_TIMER_PEND_FUNCTION_CALL_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable xTimerPendFunctionCall().
- Restriction: none
freertos.task.os_use_tick_hook
- Identifier: OS_USE_TICK_HOOK
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Include OS tick hook – vApplicationTickHook().
- Restriction: none
freertos.task.os_timer_queue_len
- Identifier: OS_TIMER_QUEUE_LEN
- Type: Decimal number
- Default Value: 8
- Destination File: system.h
- Description: Timer queue length.
- Restriction: none
freertos.task.os_timer_task_depth
- Identifier: OS_TIMER_TASK_DEPTH
- Type: Decimal number
- Default Value: 160
- Destination File: system.h
- Description: OS timer task depth.
- Restriction: none
freertos.mutex.os_mutex_en
- Identifier: OS_MUTEX_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable mutex semaphores.
- Restriction: none
freertos.mutex.os_recursive_mutex_en
- Identifier:
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable recursive mutex.
- Restriction: none
freertos.semaphore.os_counting_sem_en
- Identifier: OS_COUNTING_SEM_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable counting semaphores.
- Restriction: none
freertos.semaphore.os_semaphore_get_mutex_holder_en
- Identifier: OS_SEMAPHORE_GET_MUTEX_HOLDER_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable xSemaphoreGetMutexHolder().
- Restriction: none
freertos.queue.os_use_q_sets
- Identifier: OS_USE_QUEUE_SETS
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Use OS queue sets.
- Restriction: none
freertos.queue.os_q_reg_size
- Identifier: OS_Q_REG_SIZE
- Type: Decimal number
- Default Value: 8
- Destination File: system.h
- Description: OS queue registry size.
- Restriction: none
freertos.memory.os_memory_dynamic_allocation_en
- Identifier: OS_MEMORY_DYNAMIC_ALLOCATION_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable memory dynamic allocation.
- Restriction: none
freertos.memory.os_malloc_failed_hook_en
- Identifier: OS_MALLOC_FAILED_HOOK_EN
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Enable malloc failed hook.
- Restriction: none
freertos.memory.os_total_heap_size
- Identifier: OS_TOTAL_HEAP_SIZE
- Type: Decimal number
- Default Value: 80000
- Destination File: system.h
- Description: OS total heap size.
- Restriction: none
freertos.miscellaneous.os_use_trace_facility
- Identifier: OS_USE_TRACE_FACILITY
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Use OS trace facility.
- Restriction: none
freertos.miscellaneous.os_check_stack_overflow
- Identifier: OS_CHECK_STACK_OVERFLOW
- Type: Boolean definition
- Default Value: true
- Destination File: system.h
- Description: Include OS stack overflow checking – vApplicationStackOverflowHook().
- Restriction: none
freertos.miscellaneous.os_idle_should_yield
- Identifier: OS_IDLE_SHOULD_YIELD
- Type: Boolean definition
- Default Value: false
- Destination File: system.h
- Description: Control the behavior of tasks at the idle priority.
- Restriction: none