Catalog RTOS Apps April 13, 2015

Slides:



Advertisements
Similar presentations
1 Course Number Presentation_ID © 2001, Cisco Systems, Inc. All rights reserved. Cisco 7500 High Availability.
Advertisements

ARM 2007 Chapter 13 Memory Protection Unit (MPU) Optimization Technique in Embedded System (ARM) 2008 April.
KeyStone Training More About Cache. XMC – External Memory Controller The XMC is responsible for the following: 1.Address extension/translation 2.Memory.
Memory Management Unit
StreamBlade SOE TM Initial StreamBlade TM Stream Offload Engine (SOE) Single Board Computer SOE-4-PCI Rev 1.2.
Products Training -- DGUS LCM
U-Boot and Linux Kernel Debug using CCSv5
The Museum Project The Museum Project Yoav Gvili & Asaf Stein Supervisor : Alexander Arlievsky.
EPOCH 1000 File Management Data Logging and Reporting
Infineon for Arduino XMC – 32-bit Industrial Microcontrollers
NS Training Hardware. Memory Interface Support for SDRAM, asynchronous SRAM, ROM, asynchronous flash and Micron synchronous flash Support for 8,
Capturing Computer Evidence Extracting Information.
1 © 2002, Cisco Systems, Inc. All rights reserved. Router boot procedure.
NET+OS Bootloader Overview Requirements How to Build How to Customize Changes to Applications Configuration Settings.
Shell and Flashing Images Commands and upgrades. RS-232 Driver chip – ST3232C Driver chip is ST3232C Provides electrical interface between UART port and.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
NET+OS 6.1 Training. BSP NET+OS 6.1 BSP Initialization Memory map New features Debugging Porting Issues.
U-Boot Debug using CCSv5 In this session we will cover fundamentals necessary to use CCSv5 and a JTAG to debug a TI SDK-based U-Boot on an EVM platform.
328eForth for Arduino Uno C. H. Ting February 16, 2012 SVFIG.
AT91SAM9261-EK WinCE 6.0 DEMO ATMEL AT91 Application & Support Group
NetBurner MOD 5282 Network Development Kit MCF 5282 Integrated ColdFire 32 bit Microcontoller 2 DB-9 connectors for serial I/O supports: RS-232, RS-485,
NET+OS 6 BSP How and why it was restructured Changes to memory map New features How to port to custom hardware.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 3 v3.0 Module 6 Switch Configuration.
Enabling the ARM Learning in INDIA ARM DEVELOPMENT TOOL SETUP.
High Speed Data Converter University
1 Introduction to ARM A15 Linux DSP Platform Software Apps Team 04/19/2013 1TI Confidential - NDA Restrictions.
Lab 11 Department of Computer Science and Information Engineering National Taiwan University Lab11 - Porting 2014/12/9/ 26 1.
University of Management & Technology 1 Operating Systems & Utility Programs.
AT91SAM9261-EK WinCE 5.0 DEMO ATMEL AT91 Application & Support Group Version 1.O February 2007.
Beagle Board Fast Boot Hui Chen Keji Ren Dec 10 th, 2009 EE382N-4 Project.
NETOS5.1 Training NS7520 Overview NETOS5.1 Overview BSP Changes BSP & Board Configurations Build File Changes for GHS Makefile Changes for GNU Linker Files.
Chapter 18 – Miscellaneous Topics. Multiple File Programs u Makes possible to accommodate many programmers working on same project u More efficient to.
Improving JFFS2 RAM usage and performance ELC Europe 2007 Alexey Korolev.
1 Version 3.0 Module 6 Switch Configuration. 2 Version 3.0 Switches Contain: –CPU –RAM –Operating System.
January 10, Kits Workshop 1 Washington WASHINGTON UNIVERSITY IN ST LOUIS A Smart Port Card Tutorial --- Software John DeHart Washington University.
SAM9260-EK WinCE DEMO AT91 SAM9 Product Group. Version 1.0 October 2006.
AT91 Memory Interface. 2 Features –Up to 8 programmable chip select lines –Remap Command allows dynamic exception vectors –Glue-less for both 8-bit and.
This material exempt per Department of Commerce license exception TSU Address Management.
SAM9260-EK WinCE DEMO AT91 SAM9 Product Group. Version 1.0 October 2006.
>> PHP: Insert Query & Form Processing. Insert Query Step 1: Define Form Variables Step 2: Make DB Connection Step 3: Error Handling Step 4: Define the.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 3 v3.1 Module 6 Switch Configuration.
System Software Design Review.  MCU: NXP LPC2378 ARM7 32-bit  512 KB Flash, 8KB EEPROM and SRAM  Bus Frequency: 20 MHz  Approximate Memory requirements:
CSC190 Introduction to Computing Operating Systems and Utility Programs.
AT91Bootstrap. Introduction Device initialization such as clock speed configuration, PIO settings, etc. Peripheral drivers such as PIO, PMC, SDRAMC, etc.
Implementation of Embedded OS Lab3 Porting μC/OS-II.
Basic Memory Management Chapter 3 C6000 Integration Workshop Copyright © 2005 Texas Instruments. All rights reserved. Technical Training Organization T.
Copyright © 2007 Heathkit Company, Inc. All Rights Reserved PC Fundamentals Presentation 29 – The ROM/BIOS.
LESSON 6 CREATING PUBLICATIONS WITH MULTIPLE PAGES PUBLISHER.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course demonstrates the Project Generator function.
Linux Boot Process on the Raspberry Pi 2 1 David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis,
졸업 프로젝트 발표 1/74 Trinity Snapshot Boot 날 짜: 팀 명: Trinity
ARM 7 & ARM 9 MICROCONTROLLERS AT91 1 ARM920T Processor.
Chap. 4 ARM Boot Loader Internals. 2 S3C2500 ARM940T Core module ARM9TDMI CoreIC.
By Ganesan Alagu Ganesh Feb 26, 2008
CCNA 2 v3.1 Module 2 Introduction to Routers
Introduction to the ARM mbed Platform– A Hands-on Course
Over the Air Download Peripheral Device Central Device Slave Master
By Ganesan Alagu Ganesh Feb 21, 2008
Router Startup and Setup
Improvement of startup time using Software Suspend - Project Update -
QuickPath interconnect GB/s GB/s total To I/O
CCNA 3 v3.1 Module 6 Switch Configuration
PRU-ICSS Programming with CCS
The blob bootloader Thomas Petazzoni Free Electrons
AT91 Memory Interface This training module describes the External Bus Interface (EBI), which generatesthe signals that control the access to the external.
Oracle Memory Configuration on Windows Server
Router Startup and Setup
Computer System Laboratory
ARM920T Processor This training module provides an introduction to the ARM920T processor embedded in the AT91RM9200 microcontroller.We’ll identify the.
Presentation transcript:

Catalog RTOS Apps April 13, 2015 AM437x DDRless Changes for building Applications on QSPI XIP and/or L3 PRELIMINARY*** Catalog RTOS Apps April 13, 2015

Setup AM437X IDK EVM (http://www.ti.com/tool/tmdxidk437x) Software ARM Cortex-A9 MPU, up to 1000 MHz 32KB L1 Instruction cache and 32KB L1 data cache 256KB L2 cache or L3 RAM, 256KB OCMC RAM 32-bit DDR interface. QSPI interface to 64MB NOR. Up to 48MHz Software Sysbios Industrial SDK 2.1.1.2 XDC 3.31.1.33_core TI-RTOS 6.41.4.54 GNU v4.8.4 (Linaro) Application EtherCAT slave (Full Feature) + Motor control

EtherCAT slave + Motor setup Test setup information For steps on how to connect the board to the motor, and how to configure TwinCAT please refer to: http://processors.wiki.ti.com/index.php/SYSBIOS_Industrial_SDK_02.01.01_User_Guide#EtherCAT Building EtherCAT full feature: http://processors.wiki.ti.com/index.php/SYSBIOS_Industrial_SDK_02.01.01_User_Guide#Building_Full_Feature_EtherCAT_Application TwinCAT was used as EtherCAT master

Test Environment AM437x: A9 @ 600MHz DDR @ 400MHz QSPI @ 48MHz Motor Control and TwinCAT3 setup as guided at http://processors.wiki.ti.com/index.php/PRU_ICSS_EtherCAT Build Options: Complier flags: -mcpu=cortex-a9 -mtune=cortex-a9 -marm -mfloat-abi=hard -mfpu=neon -Dam4379 -DAM43XX_FAMILY_BUILD -DNO_UART_MSG_APP -O2 -g -gstrict-dwarf –Wall Linker flags: -mfloat-abi=hard -Dam4379 -DAM43XX_FAMILY_BUILD -DNO_UART_MSG_APP -O2 -g -gstrict-dwarf -Wall -Wl,-Map,"ecat_appl.map" -nostartfiles -static -Wl,--gc-sections -Wl,--defsym,STACKSIZE=0x18000 -Wl,--defsym,HEAPSIZE=0x400

Application EtherCAT slave + Motor control

DDRless build - Platform definition QSPI L3

DDR build - Platform definition

CCS configuration file changes for building Application on DDR or L3 or QSPI DDR build test Cache.configureL2Sram = false; Program.linkTemplate = java.lang.System.getenv("IA_SDK_HOME") + "/protocols/ethercat_slave/ecat_appl/ecat_appl.xdt"; Program.sectMap[".c_int00"].loadAddress = 0x80000000; L3 build test Cache.configureL2Sram = true; Program.sectMap[".c_int00"].loadAddress = 0x40500000; QSPI build test Program.linkTemplate = java.lang.System.getenv("IA_SDK_HOME") + "/protocols/ethercat_slave/ecat_appl/backup_xdt/ecat_appl_modif_QSPI_XIP.xdt“ Program.sectMap[".c_int00"].loadAddress = 0x30080000;

EtherCAT slave application changes for QSPI build NOR memory MMU attributes changed to Bufferable File: ecat_app_cnfg.h {(void *)0x30000000, SYS_MMU_CACHEABLE | SYS_MMU_BUFFERABLE}, //NOR - Cacheable - bufferable {(void *)0x30100000, SYS_MMU_CACHEABLE | SYS_MMU_BUFFERABLE}, //NOR - Cacheable - bufferable {(void *)0x30200000, SYS_MMU_CACHEABLE | SYS_MMU_BUFFERABLE}, //NOR - Cacheable - bufferable {(void *)0x30300000, SYS_MMU_CACHEABLE | SYS_MMU_BUFFERABLE}, //NOR - Cacheable - bufferable Board init change: File: tiescutils.c #ifndef XIP_QSPI board_init(BOARD_LED_DIGOUT | BOARD_TRICOLOR0_GREEN | BOARD_TRICOLOR1_RED | BOARD_HVS_DIGIN | BOARD_FLASH_MEMORY); #else BOARD_HVS_DIGIN); #endif Moving critical .text sections from NOR (REGION_TEXT) to OCMC (REGION_DATA)) in .xdt file Background info: http://processors.wiki.ti.com/index.php/SYS/BIOS_FAQs#3_Placing_SYS.2 text : { ...*(EXCLUDE_FILE(knl_*.o) .text.ti_sysbios_knl*) *(EXCLUDE_FILE(*Hwi*.o) .text.ti_sysbios*_Hwi*) ..... } > REGION_TEXT .data : {…. *(.text.ti_sysbios_knl*) *(.text.ti_sysbios*_Hwi*) …..} > REGION_DATA AT> REGION_TEXT

Example of automatic created Linker.cmd for QSPI XIP build - Memory regions allocation for QSPI build MEMORY { OCMCRAM (RWX) : org = 0x40300000, len = 0x20000 L2SRAM (RWX) : org = 0x40500000, len = 0x40000 NOR_MEM (RWX) : org = 0x30080000, len = 0x3f7ffff } REGION_ALIAS("REGION_BSS", OCMCRAM); REGION_ALIAS("REGION_TEXT", NOR_MEM); REGION_ALIAS("REGION_DATA", OCMCRAM); REGION_ALIAS("REGION_STACK", OCMCRAM); REGION_ALIAS("REGION_HEAP", OCMCRAM); REGION_ALIAS("REGION_ARM_EXTAB", OCMCRAM); REGION_ALIAS("REGION_ARM_EXIDX", OCMCRAM); Application binary size: 231KB

Bootloader changes QSPI build L3 build Fixing point of entrance to NOR. Note: Avoiding image copy, then we won’t need to add TI’s binary header when converting .out to .bin. File: sbl_qspi.c #ifdef XIP_QSPI         *pEntryPoint = 0x30080000;  //Fixed QSPI XIP          CONSOLEUtilsPrintf("\nChanging entry point to %x\n",pEntryPoint);  #else          status = SblQspiImageCopy(pEntryPoint);  #endif L3 build Enabling L2 as SRAM File: sbl_am43xx_platform.c HW_WR_REG32((0x44E10654), 4); HW_WR_REG32((0x44E101E0), 0x10000);

Optional Steps: If flashing QSPI using SD card Copy sysbios_ind_sdk_prebuilt_02_01_01_02\bootloaders\AM437X_IDK\mmcsd_release\MLO to SD card Copy C:\TI\sysbios_ind_sdk_2.1.1.2\sdk\starterware\binary\qspi_app_flash_writer\bin\am43xx- evm\gcc\qspi_app_flash_writer_a9host_release_ti.bin and renamed as app Copy previously modified bootloader from C:\TI\sysbios_ind_sdk_2.1.1.2\sdk\starterware\binary\bootloader\bin\am43xx-evm\ccs \bootloader_boot_qspi_a9host_release.bin and renamed as boot Convert .out in a .bin using below command: arm-none-eabi-objcopy.exe -O binary -R .ARM.exidx -R .debug_aranges -R .debug_info -R .debug_abbrev -R .debug_line -R .debug_frame -R .debug_str -R .debug_loc -R .debug_ranges ecat_appl.out ecat_appl.bin Note: arm-none-eabi-objcopy.exe can be found at C:\TI\ccsv6\tools\compiler\gcc-arm-none-eabi-4_8-2014q3\bin Copy C:\TI\sysbios_ind_sdk_2.1.1.2\sdk\protocols\ethercat_slave\ecat_appl\am437x_release\ ecat_appl.bin and renamed as image Created a text file with name config (without file extension) and added contents boot 0x0 image 0x80000 Insert SD card and turn on the board. Wait few seconds or check UART messages for “Flashing completed” Removed the SD card and boot the board. Wait for ~20 seconds and ECAT application should start!. LEDs turn on.