Visible to Intel only — GUID: yhw1678076220082
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
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
hal.enable_instruction_related_exceptions_api
hal.max_file_descriptors
hal.sys_clk_timer
hal.timestamp_timer
hal.linker.allow_code_at_reset
hal.linker.enable_alt_load
hal.linker.enable_alt_load_copy_exceptions
hal.linker.enable_alt_load_copy_rodata
hal.linker.enable_alt_load_copy_rwdata
hal.linker.enable_exception_stack
hal.linker.exception_stack_memory_region_name
hal.linker.use_picolibc
hal.linker.exception_stack_size
hal.toolchain.ar
hal.toolchain.as
hal.make.arflags
hal.make.asflags
hal.make.cflags_debug
hal.make.cflags_defined_symbols
hal.make.cflags_optimization
hal.make.cflags_undefined_symbols
hal.make.cflags_user_flags
hal.make.cflags_warnings
hal.make.cxx_flags
hal.toolchain.cc
hal.toolchain.cxx
hal.make.enable_cflag_fstack_protector_strong
hal.make.enable_cflag_wformat_security
hal.toolchain.prefix
hal.toolchain.enable_executable_overrides
hal.enable_c_plus_plus
hal.enable_clean_exit
hal.enable_exit
hal.enable_reduced_device_drivers
hal.enable_runtime_stack_checking
hal.enable_sim_optimize
hal.log_port
hal.log_flags
hal.stderr
hal.stdin
hal.stdout
13.4.3.2. Micrium MicroC/OS-II BSP
13.4.3.3. FreeRTOS BSP
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: yhw1678076220082
Ixiasoft
13.4.3.1. Intel HAL BSP
hal.enable_instruction_related_exceptions_api
- Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
- Type: Boolean definition
- Default Value: false
- Destination File: system.h
- Description: Enables application program interface (API) for registering handlers to service instruction-related exceptions. These exception types can be generated if various processor options are enabled, such as the memory management unit (MMU), memory protection unit (MPU), or other advanced exception types. Enabling this setting increases the size of the exception entry code.
- Restrictions: none
hal.max_file_descriptors
- Identifier: ALT_MAX_FD
- Type: Decimal number
- Default Value: 32
- Destination File: system.h
- Description: Determines the number of file descriptors statically allocated.
- Restriction: If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. This setting defines the value of ALT_MAX_FD in system.h.
hal.sys_clk_timer
- Identifier: ALT_SYS_CLK
- Type: Unquoted string
- Default Value: none
- Destination File: system.h
- Description: Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
- Restriction: none
hal.timestamp_timer
- Identifier: ALT_TIMESTAMP_CLK
- Type: Unquoted string
- Default Value: none
- Destination File: system.h
- Description: Slave descriptor of timestamp timer device. This device is used by Intel HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
- Restriction: none
hal.linker.allow_code_at_reset
- Identifier: none
- Type: Boolean assignment
- Default Value: 0
- Destination File: none
- Description: Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
- Restriction: This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
hal.linker.enable_alt_load
- Identifier: none
- Type: Boolean assignment
- Default Value: 1
- Destination File: none
- Description: Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA (virtual memory address/low memory address) of sections in linker.x to allow them to be loaded into the .text memory.
- Restriction: This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
hal.linker.enable_alt_load_copy_exceptions
- Identifier: none
- Type: Boolean assignment
- Default Value: 0
- Destination File: none
- Description: Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
- Restriction: none
hal.linker.enable_alt_load_copy_rodata
- Identifier: none
- Type: Boolean assignment
- Default Value: 0
- Destination File: none
- Description: Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
- Restriction: none
hal.linker.enable_alt_load_copy_rwdata
- Identifier: none
- Type: Boolean assignment
- Default Value: 0
- Destination File: none
- Description: Causes the initialization code to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
- Restriction: none
hal.linker.enable_exception_stack
- Identifier: none
- Type: Boolean assignment
- Default Value: 0
- Destination File: none
- Description: Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
- Restriction: The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if an EIC is not implemented.
hal.linker.exception_stack_memory_region_name
- Identifier: none
- Type: Unquoted string
- Default Value: none
- Destination File: none
- Description: Name of the existing memory region to be divided up to create the exception_stack memory region. The selected region name is adjusted automatically when the BSP is generated to create the exception_stack memory region.
- Restriction: Only used if hal.linker.enable_exception_stack is true.
hal.linker.use_picolibc
- Identifier: none
- Type: Boolean assignment
- Default Value: false
- Destination File: none
- Description: Use Picolibc in place of Newlib to provide C library support.
- Restriction: none
hal.linker.exception_stack_size
- Identifier: none
- Type: Decimal number
- Default Value: 1024
- Destination File: none
- Description: Size of the exception stack in bytes.
- Restriction: Only used if hal.linker.enable_exception_stack is true. none
hal.toolchain.ar
- Identifier: AR
- Type: Unquoted string
- Default Value: riscv32-unknown-elf-ar
- Destination File: toolchain.cmake
- Description: Archiver command. Creates library files.
- Restriction: none
hal.toolchain.as
- Identifier: none
- Type: Unquoted string
- Default Value: riscv32-unknown-elf-as
- Destination File: toolchain.cmake
- Description: Assembler command. Note that CC is used for Nios® V processor assembly language source files (.S).
- Restriction: none
hal.make.arflags
- Identifier: ARFLAGS
- Type: Unquoted string
- Default Value: -src
- Destination File: toolchain.cmake
- Description: Custom flags only passed to the archiver. The content of this variable is directly passed to the archiver rather than the more standard ARFLAGS. The reason for this is that GNU Make assumes some default content in ARFLAGS.This setting defines the value of ARFLAGS in Makefile.
- Restriction: none
hal.make.asflags
- Identifier: ASFLAGS
- Type: Unquoted string
- Default Value: -Wa,-gdwarf2
- Destination File: toolchain.cmake
- Description: Custom flags only passed to the assembler. This setting defines the value of ASFLAGS in toolchain.cmake.
- Restriction: none
hal.make.cflags_debug
- Identifier: CFLAGS_DEBUG
- Type: Unquoted string
- Default Value: -g
- Destination File: toolchain.cmake
- Description: C/C++ compiler debug level. -g provides the default set of debug symbols typically required to debug a typical application. Omitting -g removes debug symbols from the .elf file. This setting defines the value of BSP_CFLAGS_DEBUG in toolchain.cmake.
- Restriction: none
hal.make.cflags_defined_symbols
- Identifier: CFLAGS_DEFINED_SYMBOLS
- Type: Unquoted string
- Default Value: none
- Destination File: toolchain.cmake
- Description: Preprocessor macros to define. A macro definition in this setting has the same effect as a #define in source code. Adding -DALT_DEBUG to this setting has the same effect as #define ALT_DEBUG in a source file. Adding -DFOO=1 to this setting is equivalent to the macro #define FOO 1 in a source file. Macros defined with this setting are applied to all . S , C source ( .c ), and C++ files in the BSP. This setting defines the value of CFLAGS_DEFINED_SYMBOLS in the toolchain.cmake.
- Restriction: none
hal.make.cflags_optimization
- Identifier: CFLAGS_OPTIMIZATION
- Type: Unquoted string
- Default Value: -O0
- Destination File: toolchain.cmake
- Description: C/C++ compiler optimization level. -O0 = no optimization, -O2 = normal optimization, etc. -O0 is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of CFLAGS_OPTIMIZATION in toolchain.cmake.
- Restriction: none
hal.make.cflags_undefined_symbols
- Identifier: CFLAGS_UNDEFINED_SYMBOLS
- Type: Unquoted string
- Default Value: none
- Destination File: toolchain.cmake
- Description: Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the #undef directive in source code. To undefine the macro FOO use the syntax -u FOO in this setting. This is equivalent to #undef FOO in a source file. Note: the syntax differs from macro definition (there is a space, i.e. -u FOO versus -DFOO). Macros defined with this setting are applied to all . S , . c , and C++ files in the BSP. This setting defines the value of CFLAGS_UNDEFINED_SYMBOLS in the toolchain.cmake.
- Restriction: none
hal.make.cflags_user_flags
- Identifier: CFLAGS_USER_FLAGS
- Type: Unquoted string
- Default Value: none
- Destination File: toolchain.cmake
- Description: Custom flags passed to the compiler when compiling C, C++, and . S files . This setting defines the value of CFLAGS_USER_FLAGS in toolchain.cmake.
- Restriction: none
hal.make.cflags_warnings
- Identifier: CFLAGS_WARNINGS
- Type: Unquoted string
- Default Value: -Wall
- Destination File: toolchain.cmake
- Description: C/C++ compiler warning level. -Wall is commonly used. This setting defines the value of CFLAGS_WARNINGS in toolchain.cmake.
- Restriction: none
hal.make.cxx_flags
- Identifier: CXXFLAGS
- Type: Unquoted string
- Default Value: none
- Destination File: toolchain.cmake
- Description: Custom flags only passed to the C++ compiler. This setting defines the value of CXXFLAGS in toolchain.cmake.
- Restriction: none
hal.toolchain.cc
- Identifier: CC
- Type: Unquoted string
- Default Value: riscv32-unknown-elf-gcc
- Destination File: toolchain.cmake
- Description: C compiler command
- Restriction: none
hal.toolchain.cxx
- Identifier: CXX
- Type: Unquoted string
- Default Value: riscv32-unknown-elf-g++
- Destination File: toolchain.cmake
- Description: C++ compiler command
- Restriction: none
hal.make.enable_cflag_fstack_protector_strong
- Identifier: none
- Type: Boolean assignment
- Default Value: 0
- Destination File: toolchain.cmake
- Description: Enable the fstack-protector-strong compiler flag in toolchain.cmake. If true: ALT_CFLAGS += -fstack-protector-strong.
- Restriction: none
hal.make.enable_cflag_wformat_security
- Identifier: none
- Type: Boolean assignment
- Default Value: 0
- Destination File: toolchain.cmake
- Description: Enable the Wformat and Wformat-security compiler flags in toolchain.cmake to warn against security problems when using format functions. If true: ALT_CFLAGS += -Wformat -Wformat-security.
- Restriction: none
hal.toolchain.prefix
- Identifier: none
- Type: Unquoted string
- Default Value: riscv32-unknown-elf-
- Description: Prefix to be used for toolchain executables. The value affects the individual values of the archiver, assembler, compiler, and linker. Specifically, it affects the settings.
- hal.toolchain.ar
- hal.toolchain.as
- hal.toolchain.cc
- hal.toolchain.cxx
- hal.toolchain.objdump
However, if the override setting hal.toolchain.enable_executable_overrides is enabled, the individual settings hal.toolchain.ar, hal.toolchain.as, hal.toolchain.cc, hal.toolchain.cxx, and hal.toolchain.objdump may be set to custom values and are not derived from this setting's value.
The riscv32-unknown-elf toolchain is available with the Ashling* RiscFree* IDE for Intel FPGAs. You must install the Ashling* RiscFree* IDE for Intel FPGAs to use this toolchain.
- Restriction: none
hal.toolchain.enable_executable_overrides
- Identifier: none
- Type: Boolean assignment
- Default value: false
- Description: Enable custom values to be set for the toolchain executables. You can set the settings for hal.toolchain.ar, hal.toolchain.as, hal.toolchain.cc, hal.toolchain.cxx, and hal.toolchain.objdump to custom values.
- Restriction: none
hal.enable_c_plus_plus
- Identifier: ALT_NO_C_PLUS_PLUS
- Type: Boolean assignment
- Default Value: 1
- Destination File: toolchain.cmake
- Description: Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in toolchain.cmake, and reduces code footprint.
- Restriction: none
hal.enable_clean_exit
- Identifier: ALT_NO_CLEAN_EXIT
- Type: Boolean assignment
- Default Value: 1
- Destination File: toolchain.cmake
- Description: When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl, --defsym, exit=_exit to ALT_LDFLAGS in toolchain.cmake.
- Restriction: none
hal.enable_exit
- Identifier: ALT_NO_EXIT
- Type: Boolean assignment
- Default Value: 1
- Destination File: toolchain.cmake
- Description: Add exit() support. This option increases code footprint if your main() routine returns or calls exit(). If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in toolchain.cmake, and reduces footprint.
- Restriction: none
hal.enable_reduced_device_drivers
- Identifier: ALT_USE_SMALL_DRIVERS
- Type: Boolean assignment
- Default Value: 0
- Destination File: toolchain.cmake
- Description: Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in toolchain.cmake. Typically, drivers support this setting with a polled mode. For example, the altera_avalon_uart and altera_avalon_jtag_uart reduced drivers operate in polled mode.
- Restriction: none
hal.enable_runtime_stack_checking
- Identifier: ALT_STACK_CHECK
- Type: Boolean assignment
- Default Value: 0
- Destination File: toolchain.cmake
- Description: Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -fstack-check to ALT_CPPFLAGS in toolchain.cmake.
- Restriction: none
hal.enable_sim_optimize
- Identifier: ALT_SIM_OPTIMIZE
- Type: Boolean assignment
- Default Value: 0
- Destination File: toolchain.cmake
- Description: The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in toolchain.cmake.
- Restriction: When this setting is true, the BSP cannot run on hardware.
hal.log_port
- Identifier: ALT_LOG_PORT
- Type: Unquoted string
- Default Value: none
- Destination File: system.h
- Description: Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the Intel FPGA logging functions.
hal.log_flags
- Identifier: ALT_LOG_FLAGS
- Type: Decimal Number
- Default Value: 0
- Destination File: toolchain.cmake
- Description: The value is assigned to ALT_LOG_FLAGS in the generated toolchain.cmake. Refer to hal.log_port for further details. The valid range of this setting is -1 through 3.
hal.stderr
- Identifier: ALT_STDERR
- Type: Unquoted string
- Default Value: none
- Destination File: system.h
- Description: Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
hal.stdin
- Identifier:ALT_STDIN
- Type: Unquoted string
- Default Value: none
- Destination File: system.h
- Description: Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
hal.stdout
- Identifier: ALT_STDOUT
- Type: Unquoted string
- Default Value: none
- Destination File: system.h
- Description: Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.