Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "NET+OS 6.1 Training. BSP NET+OS 6.1 BSP Initialization Memory map New features Debugging Porting Issues."— 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 Reset.s Init.s ncc_init.c main() tx_kernel_enter tx_application_ define netosStartup root.c [applicationStart()] 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 Address RangeSizeSystem Functions 0x0000 0000 – 0x0FFF FFFF256 MBSystem Memory Chip Select 4 Dynamic Memory 0x1000 0000 – 0x1FFF FFFF256 MBSystem Memory Chip Select 5 Dynamic Memory 0x2000 0000 – 0x2FFF FFFF256 MBSystem Memory Chip Select 6 Dynamic Memory 0x3000 0000 – 0x3FFF FFFF256 MBSystem Memory Chip Select 7 Dynamic Memory 0x4000 0000 – 0x4FFF FFFF256 MBSystem Memory Chip Select 0 Static Memory 0x5000 0000 – 0x5FFF FFFF256 MBSystem Memory Chip Select 1 Static Memory 0x6000 0000 – 0x6FFF FFFF256 MBSystem Memory Chip Select 2 Static Memory 0x7000 0000 – 0x7FFF FFFF256 MBSystem Memory Chip Select 3 Static Memory

15 Memory map continued 0x8000 0000 – 0x8FFF FFFF256 MBPCI Memory 0x9000 0000 – 0x9FFF FFFF256 MBB-Bus Memory 0xA000 0000 – 0xA00F FFFF1 MBPCI IO 0xA010 0000 – 0xA01F FFFF1 MBPCI CONFIG_ADDR 0xA020 0000 – 0xA02F FFFF1 MBPCI CONFIG_DATA 0xA030 0000 – 0xA03F FFFF1 MBPCI Arbiter 0xA040 0000 – 0xA04F FFFF1 MBBBUS-to-AHB Bridge 0xA050 0000 – 0xA05F FFFF1 MBJBIG 0xA060 0000 – 0xA06F FFFF1 MBEthernet Communication Module 0xA070 0000 – 0xA07F FFFF1 MBMemory Controller 0xA080 0000 – 0xA08F FFFF1 MBLCD Controller 0xA090 0000 – 0xA09F FFFF1 MBSystem Control Module 0xA0A0 0000 – 0xFFFF FFFF1526 MBReserved

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


Download ppt "NET+OS 6.1 Training. BSP NET+OS 6.1 BSP Initialization Memory map New features Debugging Porting Issues."

Similar presentations


Ads by Google