1 / 20

NET+OS 6.1 Training

NET+OS 6.1 Training. BSP. NET+OS 6.1 BSP. Initialization Memory map New features Debugging Porting Issues. Overall view of the BSP. Identify and process Reset types: hardware reset, power-up reset, software reset, software restart, wakeup reset from sleep mode

gunda
Download Presentation

NET+OS 6.1 Training

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NET+OS 6.1 Training

  2. BSP

  3. NET+OS 6.1 BSP • Initialization • Memory map • New features • Debugging • Porting Issues

  4. Overall view of the BSP • Identify and process Reset types: • hardware reset, • power-up reset, • software reset, • software restart, • wakeup reset from sleep mode • Perform Memory test. • Load LED and Simple Serial driver for debugging before the kernel and other device drivers are loaded. • Set C library startup from GreenHills and GNU. • Load the device drivers; Ethernet, DMA, PCI, I2C, USB, LCD).

  5. BSP Source Code • Initialization code is in NETOS\src\bsp\arm9init directory. • Platform code is in NETOS\src\bsp\platforms\ns9750_a. • Common code is in NETOS\src\bsp\common (shared with different platforms). • Device drivers are in NETOS\src\bsp\devices directory. • Bootloader code is in NETOS\src\bsp\bootloader directory. • Profiler code is in NETOS\src\bsp\profiler directory. • Include files are in NETOS\h\arm9, NETOS\src\bsp\h, NETOS\h, and NETOS\src\bsp\platforms\ns9750_a directories. • Register definitions are in NETOS\h\arm9 directory. • Configurable parameters are defined in netos\src\ \bsp\platforms\ns9750_a \bsp.h.

  6. Linker Script Directives • Linker scripts determine memory layout • image.ldr, rom.ldr (GNU) image.lx rom.lx (GHS) • customize.lx and customize.ldr (in platforms directory), adjust values for your application • Sections added for ttb table and non-cache region • NON_CACHE_MALLOC_SIZE

  7. Building the BSP • Build from netos/src/bsp directory • In GNU platform specified in command line to make file • make PLATFORM=platform • In GNU Warnings are now treated as errors and stricter warning checking is enabled (-Wall) • In GHS platform open netCentral.bld, select standard_bsp.bld

  8. Reminder to …. • Modify defines in bsp.h to enable drivers • We now have four serial ports, two are UART and one is SPI and one is not connected. • The boards default to support USB host • Only big endian is supported • There is no EEPROM support for NVRAM

  9. Initialization and Start up • Hardware initialization • Software initialization • Memory map • Device driver initialization • Exception and interrupt handler setup • Interfacing with higher level modules: RTOS, TCP/IP, ACE, and Application Code

  10. Initialization Flow Start tx_kernel_enter Reset.s tx_application_ define Init.s ncc_init.c netosStartup root.c [applicationStart()] main() Your application code

  11. Hardware Initialization • Reset_Handler: First routine to be executed • Identify and process reset types (hardware reset, power-up reset, software reset, software restart, and wakeup reset from sleep mode). • Initializes SDRAM on CS4 using the values from settings.s (RAS/CAS) • USB configuration and Bbus rest • Calls nccInit using a small stack on CS4 • Jumps to C library Reset_Handler.doc

  12. Initialization: nccInit • Check to see if we are in the debugger or if a software restart occurred. • Call setupSimpleSerial • Call customizeSetupGPIO • Call customizeReadPowerOnButtons • Call customizeMemoryTest • Programs chip selects (Base and Mask)

  13. Initialization: (cont) • nccInit: Check to see if the application will fit into RAM (linker directives) ncc_init.doc

  14. Memory Map

  15. Memory map continued

  16. SDRAM Memory settings • Settings.s contains the memory controller register settings for SDRAM. (not in debugger) • If you use different memory parts you must modify this file (PC133). • RAS and CAS Delay Registers • Dynamic memory configuration registers

  17. SRAM (flash) • Table defined in bsp.c defines the register settings for SRAM parts • SRAM memory configuration registers, specifies 16 bit or 32-bit. • Static memory Read Delay registers

  18. Initialization : Main() • execute POST • SetupVector Table • Enable MMU (data cache) • DDI First Level Initialization • Start threadX main.doc

  19. Initialization: Loading RTOS • Set up FIQ and IRQ stack. • Create threadx (system) timer thread (stack size 1024, priority is 0). • Call BSP routine to set up system timer clock and timer 2 and to create root thread (stack size and priority are configurable in appconf.h file) and start it. • Start RTOS scheduler. threadx_init.doc

  20. Root Thread: netosStartup() • Load device drivers • Read parameters from NVRAM and configure dialog. • Call netosstartTCP() to initialize and start TCP/IP stack and ACE. • Set up real time source and install time zone. • Start up application. root_thread.doc

More Related