• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Microcontrollers » Stellaris® ARM® Microcontrollers » Stellaris® ARM® LM3S Microcontrollers Forum » Doubt regarding Boot Loader
Share
Stellaris® ARM® Microcontrollers
  • Forum
Options
  • Subscribe via RSS
Helpful Stellaris® LM4F Series Links
  • LM4F Series
  • Stellaris PinMux Utility
  • Stellaris® LM4F120 LaunchPad
  • LM4F MCU Applications
  • LM4F MCU Video
  • ARM Cortex-M4F Whitepaper
  • Stellaris MCU Brochure
  • LM4F232 Eval Kit
  • Doubt regarding Boot Loader

    Doubt regarding Boot Loader

    This question is not answered
    Indranil
    Posted by Indranil
    on Apr 12 2012 02:22 AM
    Prodigy130 points
    Hi, I am using my custom-built LM3S9B92 board for my project. I have programmed the serial bootloader(boot_serial.bin) available in C:/StellarisWare/boards/dk-lm3s9b96 folder after compiling it.... at program offset 0x0 using LM Flash programmer ( interface used is JTAG) . Moreover I am using one GPIO pin to pass control to the bootloader or application program after reset. Then I tried to program some example programs into the flash using LM flash programmer such as usb_host_msc (interface used is UART now). The programming happened succesfully using boot loader. But my doubt is the APP_BASE as referred in bl_config.h file is 0x1800 which means while programming through LM flash programmer do I have to specify the program address offset to 0x1800. But the program offset what I have entered is 0x00...so without doing this also the flash has been succesfully programmed using serial bootloader which shouldn't happened as per my understanding. So my question is if my boot loader is already sitting in flash at position 0x00, after programming through UART where will my application program will sit because I am giving same offset address in both cases ? Will it be going to position 0x1800 automatically(will be taken care by bootloader)? Moreover in usb_host_msc_ccs.cmd file ..or whatever sample programs I am trying out, everywhere the application base APP_BASE (flash starting address ) is defined as 0x00000000 which is contradicting application starting point mentioned in bl_config.h file. Am I doing it correctly or am I missing some point ? Please help me. With regards, Indranil

    Indranil

    boot loader serial_boot
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Stellaris John
      Posted by Stellaris John
      on Apr 12 2012 14:40 PM
      Intellectual2130 points

      Indranil,

      If you set the program address for your application to 0x0 in LMFLASH when you use the serial bootloader, then the bootloader will overwrite itself with the program. You should specify the offset in LMFLASH at 0x1800.

      If you want to have CCS not overwrite the bootloader when you use CCS to program the application into the flash, you will need to change the .cmd file to have an APP_BASE of 0x00001800 as well. The .cmd files in the boot_demo examples in Stellarisware should show you how an application can be run from the bootloader.

      Remember to reduce the length of the flash in the .cmd file when you increase the program's starting address so you don't try to write past the flash area.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Indranil
      Posted by Indranil
      on Apr 12 2012 23:29 PM
      Prodigy130 points

      Hi John,

      Thanks for your reply.

                   Actually I have misunderstood this whole bootloader concept. But now after playing with bootloader and going through the TI documents and example programs, now I understood how actually bootloader is working. Previously I thought my serial_boot program is actually programming my flash everytime ...so I get confused. But now I came to know that its actually the ROM bootloader that is taking control when I use one of my GPIO pin to decide whether I want to go to ROM bootloader or application part.

                  Moreover now I get the idea about the APP_BASE. When I am using ROM bootloader I shouldn't change the .cmd file to other address other than 0x00. It should need to be change only if I use the example serial_boot program ..am I right ?  

      With regards,

      Indranil

      Indranil

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Stellaris John
      Posted by Stellaris John
      on Apr 13 2012 09:49 AM
      Intellectual2130 points

      Indranil,

      Yes you are right. If you are using the ROM bootloader, your apps should start at 0x00. This is why the examples in Stellarisware except for boot_demo start from 0x00.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    TI E2E™ Community
    • Support Forums
    • Blogs
    • Videos
    • Groups
    • Site Support & Feedback
    • Settings
    TI E2E™ Community Groups
    • TI University Program
    • Make the Switch
    • Microcontroller Projects
    • Motor Drive & Control
    Other Communities
    • Deyisupport
    • Designsomething.org
    • beagleboard.org
    • TI on Element 14
    • TI on TechXchangeSM
    Other Technical & Support Resources
    • WEBENCH® Design Center
    • Product Information Centers
    • Technical Documents
    • TI Design Network
    • TI Technical Articles
    • TI Training

    All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

    Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

    Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
    TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

    TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
    embedded processors, along with software, tools and the industry’s largest sales/support staff.

    © Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
    Trademarks | Privacy Policy | Terms of Use