tsb:home

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tsb:home [2019/04/08 14:48] Pedro Ramilotsb:home [2019/10/24 12:23] (current) – [Configurable Timeout, Password, Magic Bytes] Pedro Ramilo
Line 16: Line 16:
   * Capable of individually initiating a bootloader session (for firmware update, for example) with multiple devices connected in a daisy chain (each device needs a unique password, for individual activation)   * Capable of individually initiating a bootloader session (for firmware update, for example) with multiple devices connected in a daisy chain (each device needs a unique password, for individual activation)
  
-===== Improvements and New Features =====+===== Improvements and New Features by Seed Robotics =====
  
 All our improvements and new features are published open source in the Github repository above. All our improvements and new features are published open source in the Github repository above.
  
 So far we have: So far we have:
-  * Written a new PC side software in Mono (compatible with Windows/Linux/Mac OS) which improves speed and brings new capabilities+  * Written a new PC side software in Mono (compatible with Windows/Linux/Mac OS) which improves device programming speed and brings new capabilities such as multiple operations in one single session
   * Written a GUI (Windows, C#) to to offer a Graphical Interface for the command line options   * Written a GUI (Windows, C#) to to offer a Graphical Interface for the command line options
   * Fixed a bug in the password checking that impaired operation when multiple devices are daisy chained (backwards compatible fix)   * Fixed a bug in the password checking that impaired operation when multiple devices are daisy chained (backwards compatible fix)
-  * Added Configurable "Magic Bytes" where you can program 2 bytes (identify different models, batch numbers, ...). This is stored separately from the program Flash and EEPROM areas for protection.+  * Added Configurable "Magic Bytes" where you can program 2 bytes (identify different models, batch numbers, ...). This is stored in the same area as the configurable password and timeout, separately from the program Flash and EEPROM areas for protection.
  
  
Line 45: Line 45:
 The Timeout, Password and Magic bytes are stored in the Last Page of the Program area (just below the bootloader). The Timeout, Password and Magic bytes are stored in the Last Page of the Program area (just below the bootloader).
  
-This is a safe way to ensure configuration does not take up EEPROM space and that it won'typically be overwritten inadvertently.+Because this Last Page is within the program area, it can be re-written using commands to write FLASH contents.\\ 
 +Since only the bootloader can write program pages, storing this data in a program page is a safe way to ensure configuration won't be overwritten inadvertently. Furthermore it won't take up any EEPROM space.\\
  
-Because the last page is within the program area, it can be re-written using commands to write FLASH contents.\\ +The TSB binary on the device ensures the last page isn't overwritten when loading a new user program into Flash
-Furthermore, programmers can access this configuration data from their own application by using the GNU C compiler's ''pgm_read_data'' and pointing at the last page.+ 
 +Programmers can read this configuration data (for example the 'Magic Bytes'from their own user application by using the GNU C compiler's ''pgm_read_data'' and pointing at the last page, before the bootloader area begins.
  
 **Configuration Data** is stored in the **Last Page** of Program space, in the following manner: **Configuration Data** is stored in the **Last Page** of Program space, in the following manner:
Line 64: Line 66:
 [1] Password byte 1 [1] Password byte 1
 [0] TIMEOUT (byte) [0] TIMEOUT (byte)
-BOTTOM OF LAST PAGE+START OF LAST PAGE
 </code> </code>
  
 ''IMPORTANT:''\\ ''IMPORTANT:''\\
-The **Magic Bytes** and **0x00 fix** at the top of Last page are only possible when using Seed Robotics' PC side loader tool; the old/original loader tool can only set Timeout and Password.\\ +The **Magic Bytes** and **0x00 fix** at the top of Last page are only possible when **using Seed Robotics' PC side loader tool**; the old/original loader tool can only set Timeout and Password. In fact, if you configure these parameters with the Seed RObotics loader tool and later reconfigure them with the old/original loader tool, they will be erased.\\ 
-These features are compatible with any version of the TSB bootloader.+These features are compatible with all firmware versions of the TSB bootloader (even older versions before the Seed Robotics contributions), as long as you use the Seed Robotics' PC side loader tool.
  
-In reality, if you refer to the source code of our loader tool, you will see the bootloader gives you a command to write whatever you want to the remaining space after the Timeout and Password sections.\\ +In reality, if you refer to the source code of our loader tool, you will see the TSB binary on the ATMEL device gives you a command to write whatever you want to the remaining space in Last Page, after the Timeout and Password are written.\\ 
-For us, at Seed Robotics, we felt it could be leveraged by adding a storage space for 2 magic bytes. Nevertheless the posibilities are endless as you are given access to write the full page contents.+For us, at Seed Robotics, we felt it could be leveraged by adding a storage space for 2 magic bytes. Nevertheless the possibilities are endless as the bootloader on the device side gives you access to write the full page contents.
  

Copyright © 2015-2023 Seed Robotics Ltd

  • tsb/home.1554734921.txt.gz
  • Last modified: 2019/04/08 14:48
  • by Pedro Ramilo