Nios II Classic Software Developer’s Handbook 2 Sw Development Guide
User Manual:
Open the PDF directly: View PDF
Page Count: 468 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- Nios II Classic Software Developer’s Handbook
- Contents
- 1. Overview of Nios II Embedded Development
- Prerequisites for Understanding the Nios II Embedded Design Suite
- Finding Nios II EDS Files
- Nios II Software Development Environment
- Nios II EDS Development Flows
- Nios II Programs
- Altera Software Packages for Embedded Systems
- Nios II Embedded Design Examples
- Third-Party Embedded Tools Support
- Additional Nios II Information
- Document Revision History for Overview of Nios II Embedded Development
- 2. Getting Started with the Graphical User Interface
- Getting Started with Nios II Software in Eclipse
- The Nios II SBT for Eclipse Workbench
- Creating a Project
- Navigating the Project
- Building the Project
- Configuring the FPGA
- Running the Project on Nios II Hardware
- Debugging the Project on Nios II Hardware
- Creating a Simple BSP
- Makefiles and the Nios II SBT for Eclipse
- Using the BSP Editor
- Run Configurations in the SBT for Eclipse
- Nios II Hardware v2 (beta)
- Optimizing Project Build Time
- Importing a Command-Line Project
- Packaging a Library for Reuse
- Creating a Software Package
- Programming Flash in Altera Embedded Systems
- Creating Memory Initialization Files
- Running a Nios II System with ModelSim
- Eclipse Usage Notes
- Configuring Application and Library Properties
- Configuring BSP Properties
- Exclude from Build Not Supported
- Selecting the Correct Launch Configuration Type
- Target Connection Options
- Renaming Nios II Projects
- Running Shell Scripts from the SBT for Eclipse
- Must Use Nios II Build Configuration
- CDT Limitations
- Enhancements for Build Configurations in SBT and SBT for Eclipse
- Document Revision History for Getting Started with the Graphical User Interface
- Getting Started with Nios II Software in Eclipse
- 3. Getting Started from the Command Line
- 4. Nios II Software Build Tools
- Road Map for the SBT
- Makefiles
- Nios II Embedded Software Projects
- Common BSP Tasks
- Details of BSP Creation
- Tcl Scripts for BSP Settings
- Revising Your BSP
- Specifying BSP Defaults
- Device Drivers and Software Packages
- Boot Configurations for Altera Embedded Software
- Altera-Provided Embedded Development Tools
- Restrictions
- Document Revision History for Nios II Software Build Tools
- 5. Overview of the Hardware Abstraction Layer
- 6. Developing Programs Using the Hardware Abstraction Layer
- HAL BSP Settings
- The Nios II Embedded Project Structure
- The system.h System Description File
- Data Widths and the HAL Type Definitions
- UNIX-Style Interface
- File System
- Using Character-Mode Devices
- Using File Subsystems
- Using Timer Devices
- Using Flash Devices
- Using DMA Devices
- Using Interrupt Controllers
- Reducing Code Footprint in Embedded Systems
- Boot Sequence and Entry Point
- Memory Usage
- Working with HAL Source Files
- Document Revision History for Developing Programs Using the Hardware Abstraction Layer
- 7. Developing Device Drivers for the Hardware Abstraction Layer
- Driver Integration in the HAL API
- The HAL Peripheral-Specific API
- Preparing for HAL Driver Development
- Development Flow for Creating Device Drivers
- Nios II Hardware Design Concepts
- Accessing Hardware
- Creating Embedded Drivers for HAL Device Classes
- Integrating a Device Driver in the HAL
- Overview
- Assumptions and Requirements
- The Nios II BSP Generator
- File Names and Locations
- Driver and Software Package Tcl Script Creation
- Creating a Custom Device Driver for the HAL
- Reducing Code Footprint in HAL Embedded Drivers
- HAL Namespace Allocation
- Overriding the HAL Default Device Drivers
- Document Revision History for Developing Device Drivers for the Hardware Abstraction Layer
- 8. Exception Handling
- Nios II Exception Handling Overview
- Nios II Interrupt Service Routines
- Improving Nios II ISR Performance
- Software Performance Improvements
- Execute Time-Intensive Algorithms in the Application Context
- Implement Time-Intensive Algorithms in Hardware
- Increase Buffer Size
- Use Double Buffering
- Keep Interrupts Enabled
- Use Fast Memory
- Use a Separate Exception Stack
- Use Nested Hardware Interrupts
- Locate ISR Body in Vector Table
- Use Compiler Optimization
- Hardware Performance Improvements
- Software Performance Improvements
- Debugging Nios II ISRs
- HAL Exception Handling System Implementation
- The Nios II Instruction-Related Exception Handler
- Document Revision History for Exception Handling
- 9. Cache and Tightly-Coupled Memory
- Nios II Cache Implementation
- HAL API Functions for Managing Cache
- Initializing the Nios II Cache after Reset
- Nios II Device Driver Cache Considerations
- Cache Considerations for Writing Program Loaders
- Managing Cache in Multi-Master and Multi-Processor Systems
- Nios II Tightly-Coupled Memory
- Document Revision History for Cache and Tightly-Coupled Memory
- 10. MicroC/OS-II Real-Time Operating System
- 11. Ethernet and the NicheStack TCP/IP Stack - Nios II Edition
- Prerequisites for Understanding the NicheStack TCP/IP Stack
- Introduction to the NicheStack TCP/IP Stack - Nios II Edition
- Other TCP/IP Stack Providers for the Nios II Processor
- Using the NicheStack TCP/IP Stack - Nios II Edition
- Configuring the NicheStack TCP/IP Stack in a Nios II Program
- Further Information
- Known Limitations
- Document Revision History for Ethernet and the NicheStack TCP/IP Stack - Nios II Edition
- 12. Read-Only Zip File System
- 13. Publishing Component Information to Embedded Software
- 14. HAL API Reference
- HAL API Functions
- _exit()
- _rename()
- alt_dcache_flush()
- alt_dcache_flush_all()
- alt_dcache_flush_no_writeback()
- alt_uncached_malloc()
- alt_uncached_free()
- alt_remap_uncached()
- alt_remap_cached()
- alt_icache_flush_all()
- alt_icache_flush()
- alt_alarm_start()
- alt_alarm_stop()
- alt_dma_rxchan_depth()
- alt_dma_rxchan_close()
- alt_dev_reg()
- alt_dma_rxchan_open()
- alt_dma_rxchan_prepare()
- alt_dma_rxchan_reg()
- alt_dma_txchan_close()
- alt_dma_txchan_ioctl()
- alt_dma_txchan_open()
- alt_dma_txchan_reg()
- alt_flash_close_dev()
- alt_exception_cause_generated_bad_addr()
- alt_erase_flash_block()
- alt_dma_rxchan_ioctl()
- alt_dma_txchan_space()
- alt_dma_txchan_send()
- alt_flash_open_dev()
- alt_fs_reg()
- alt_get_flash_info()
- alt_ic_irq_disable()
- alt_ic_irq_enabled()
- alt_ic_isr_register()
- alt_ic_irq_enable()
- alt_instruction_exception_register()
- alt_irq_disable()
- alt_irq_cpu_enable_interrupts ()
- alt_irq_disable_all()
- alt_irq_enable()
- alt_irq_enable_all()
- alt_irq_enabled()
- alt_irq_init()
- alt_irq_pending ()
- alt_irq_register()
- alt_llist_insert()
- alt_llist_remove()
- alt_load_section()
- alt_nticks()
- alt_read_flash()
- alt_tick()
- alt_ticks_per_second()
- alt_timestamp()
- alt_timestamp_freq()
- alt_timestamp_start()
- alt_write_flash()
- alt_write_flash_block()
- close()
- fstat()
- fork()
- fcntl()
- execve()
- getpid()
- kill()
- stat()
- settimeofday()
- wait()
- unlink()
- sbrk()
- link()
- lseek()
- alt_sysclk_init()
- open()
- times()
- read()
- write()
- usleep()
- alt_lock_flash()
- gettimeofday()
- ioctl()
- isatty()
- HAL Standard Types
- Document Revision History for HAL API Reference
- HAL API Functions
- 15. Nios II Software Build Tools Reference
- Nios II Software Build Tools Utilities
- Logging Levels
- Setting Values
- Utility and Script Summary
- nios2-app-generate-makefile
- nios2-bsp-create-settings
- nios2-bsp-generate-files
- nios2-bsp-query-settings
- nios2-bsp-update-settings
- nios2-lib-generate-makefile
- nios2-bsp-editor
- nios2-app-update-makefile
- nios2-lib-update-makefile
- nios2-swexample-create
- nios2-elf-insert
- nios2-elf-query
- nios2-flash-programmer-generate
- nios2-bsp
- nios2-bsp-console
- alt-file-convert
- Nios II Design Example Scripts
- Settings Managed by the Software Build Tools
- Application and User Library Makefile Variables
- Software Build Tools Tcl Commands
- Tcl Command Environments
- Tcl Commands for BSP Settings
- add_memory_device
- add_memory_region
- add_section_mapping
- are_same_resource
- delete_memory_region
- delete_section_mapping
- disable_sw_package
- enable_sw_package
- get_addr_span
- get_assignment
- get_available_drivers
- get_available_sw_packages
- get_base_addr
- get_break_offset
- get_break_slave_desc
- get_cpu_name
- get_current_memory_regions
- get_current_section_mappings
- get_default_memory_regions
- get_driver
- get_enabled_sw_packages
- get_exception_offset
- get_exception_slave_desc
- get_fast_tlb_miss_exception_offset
- get_fast_tlb_miss_exception_slave_desc
- get_interrupt_controller_id
- get_irq_interrupt_controller_id
- get_irq_number
- get_memory_region
- get_module_class_name
- get_module_name
- get_reset_offset
- get_reset_slave_desc
- get_section_mapping
- get_setting
- get_setting_desc
- get_slave_descs
- is_char_device
- is_connected_interrupt_controller_device
- is_connected_to_data_master
- is_connected_to_instruction_master
- is_ethernet_mac_device
- is_flash
- is_memory_device
- is_non_volatile_storage
- is_timer_device
- log_debug
- log_default
- log_error
- log_verbose
- set_driver
- set_ignore_file
- set_setting
- update_memory_region
- update_section_mapping
- add_default_memory_regions
- create_bsp
- generate_bsp
- get_available_bsp_type_versions
- get_available_bsp_types
- get_available_cpu_architectures
- get_available_cpu_names
- get_available_software
- get_available_software_setting_properties
- get_available_software_settings
- get_bsp_version
- get_cpu_architecture
- get_nios2_dpx_thread_num
- get_sopcinfo_file
- get_supported_bsp_types
- is_bsp_hal_extension
- is_bsp_lwhal_extension
- open_bsp
- save_bsp
- set_bsp_version
- set_logging_mode
- Tcl Commands for BSP Generation Callbacks
- add_class_sw_setting
- add_class_systemh_line
- add_module_sw_property
- add_module_sw_setting
- add_module_systemh_line
- add_systemh_line
- get_class_peripheral
- get_module_assignment
- get_module_name
- get_module_peripheral
- get_module_sw_setting_value
- get_peripheral_property
- remove_class_systemh_line
- remove_module_systemh_line
- set_class_sw_setting_property
- set_module_sw_setting_property
- Tcl Commands for Drivers and Packages
- Software Build Tools Path Names
- Document Revision History for Nios II Software Build Tools Reference
- Nios II Software Build Tools Utilities