NET+OS 6.1 Training
Introduction
What is Net+Os? In Circuit Emulator (Raven) Ethernet Dev.-Driver GPIO PHY Ser. DD. OS (ThreadX) IP, ICMP, IGMP, PPP, … TCPUDP Higher Level Networking Protocols MEM DMA. DD. Application Target 2 Serial DMAMAC IP, ICMP UDP BootP, DHCP,TFTP NVMEM NVMEM Driver Bootloader POST Zip Unzip Rem. Update Dev. Tools binutils 2.12 gcc newlib libstdc gdb 5.3 GHS Multi2000
The Operating System - ThreadX ThreadX is the underlying RTOS in NET+OS Scalable, high performance, real-time kernel Developed by Express Logic ( Included in NET+OS as a library /netos/lib/32b/tx.a Only objects used are linked to the image ANSI C compliant Source code optionally available
The TCP/IP Stack Stack is based on the >>Fusion<< TCP/IP Stack (former Pacific Softworks) Protocols: PPP, ARP/RARP, ICMP, IGMP, IP, UDP, TCP, DHCP Berkeley BSD compliant Socket Interface Included in NET+OS as a library /netos/lib/32b/tcpip.a Only objects used are linked to the image ANSI C compliant
Guide to Protocols inside NET+OS 10 Base-T100 Base-T 10 Base-F100 Base-F HPNA IEEE CSMA/CD ARP IP ICMPIGMP V.24 V.21V.22 DHCPBootP PPP CSLIP SLIP to IP from SLIP CSLIP from PPP to IP PAP CHAP TCPUDP DNS TFTPNTPFTPTelnetSMTPHTTPSNMPSNMPv2 Layer 2 Data Link Ethertype Layer 3 Network Layer 4 Transport Layer 5 Session Layer 7 Application V.90 RARP 8035 …
Higher Level Networking Protocols Easy to use APIs for –POP3 / SMTP –FTP client and server –HTTP –Telnet –SNMP, SNMPv2 –DNS –NTP Fast IP Fast UDP void applicationStart (void) { unsigned long rc; unsigned long handle; char to[] = //char to[] = char from[] = char subject[] = "Hi there"; char msg[] = "Howdy."; handle = MCCreate(POP3, 110, " ", \ 25, " "); rc = MCSendSimpl (handle, from, to, subject, msg, strlen(msg)); printf("MCSendSimpl returned %d\n", rc); rc = MCClose(handle); tx_thread_suspend(tx_thread_identify()); } void applicationStart (void) { unsigned long rc; unsigned long handle; char to[] = //char to[] = char from[] = char subject[] = "Hi there"; char msg[] = "Howdy."; handle = MCCreate(POP3, 110, " ", \ 25, " "); rc = MCSendSimpl (handle, from, to, subject, msg, strlen(msg)); printf("MCSendSimpl returned %d\n", rc); rc = MCClose(handle); tx_thread_suspend(tx_thread_identify()); }
Low Level Code Board Support Package (BSP) completely available in source, including device drivers for: –Network Interface, Loop Back Device –Serial: UART, SPI, HDLC –DMA –I2C, LCD –USB: Host, Device –Power Save
GHS - Multi 2000
GHS – Multi 2000 Green Hills Multi 2000, includes –Project Builder –C/C++ Compiler, Linker, Source Level Debugger –Performance Profiler –Run-time Error Checking –Graphical Function Browser –Version Control System includes Interface to ClearCase as well –Event Analyzer
The GNU Development Tools … run in a UNIX shell emulation called Cygwin / home tuttle usr local x-arm x-m68k … opt NetOS Cygwin bash
Covering the Tools w/ graphical FEs Dev. Tools binutils 2.10 gcc newlib libstdc gdb 5.0 Insight/gdbtk
GDBTK - Insight – A graphical FE for GDB
The Boot Up Procedure Bootloader Image Application Image Boot Loader - rom.bin First Sector of Flash – 64K Application Image – image.bin Nvram – Last Sector of flash – 64K
Boot loader Does the same BSP Initialization POST Reset Error- message Valid Image in FLASH? fail yes unzip code to RAM DHCP- request boot, using DHCP & TFTP transfer control to downloaded / unziped code in RAM zip code to FLASH no pass wait for reply no reply TFTP download reply no reply after 5 retries Error - message valid update? no yes failure