Difference between revisions of "Flasher/FAQ"

From SEGGER Wiki
Jump to: navigation, search
(Created page with "This gives answers to the most Frequently Asked Questions. <div class="toclimit-2"> __TOC__ </div> Aurix")
 
Line 5: Line 5:
 
</div>
 
</div>
   
  +
= FAQ: Frequently Asked Questions =
  +
== I can not find my device in J-FLash / U-Flash, but the website states it is supported ==
  +
For historical reasons, most processors with ARM, some PowerPC, RX and some more exotic core architectures are only supported by J-Flash (<code>JFlash.exe</code>).
   
  +
Projects with other devices listed as "supported" must be created in U-Flash (<code>UniversalFlasher.exe</code>).
[[Aurix]]
 
  +
  +
== When programming my device, areas are programmed with some value although no data are available for them ==
  +
This behavior is normally only noticed by the user on MCUs with some kind of flash integrity check such as ECC when attempting to program a block of data within or adjacent to an already programmed sector.
  +
  +
It is caused by the fact that the areas defined in the data files are always padded with the "empty value" to such an extent that a flash sector is completely filled. This is then programmed into the MCU in this way.
  +
  +
{|
  +
|| [[File:Sector_padding_src_file1.png|top]] | [[File:Sector_padding_result.png|top]] | [[File:Sector_padding_expected_output.png]]
  +
|}
  +
In this example the data file contains data for 0x801FFF10..0x801FFF2F, 0x0x801FFF80..0x801FFF83 and 0x801FFFC0..0x801FFFC3 (left picture). The sector size is for this example set to 0x800 i.e. 2KByte. Due to padding all areas marked red are also written (middle picture). To prevent this, a suitable smaller sector size has to to be chosen, e.g. 0x20. The result with those changed settings are shown in the right picture.
  +
  +
For MCUs with flash integrity check, the check value (ECC) is formed and written following the writing of a "page". Normally, this cannot be changed in subsequent reprogramming attempts. If the page is to be changed, the entire sector must be erased, as any attempt at reprogramming will result in an invalid integrity check value or an exception thrown by the MCU's flash controller.
  +
  +
The flasher currently does not distinguish between an "erase" sector size and a "write" page size.
  +
For devices supported by U-Flash, the sector can be adjusted in the device definition files. [[Flasher/FAQ/reduce write sector size|How to]] do this, is described in [[Flasher/FAQ/reduce write sector size|reduce write sector size]]. Please note that this is usually accompanied by a reduction in programming speed

Revision as of 20:53, 28 April 2023

This gives answers to the most Frequently Asked Questions.

FAQ: Frequently Asked Questions

I can not find my device in J-FLash / U-Flash, but the website states it is supported

For historical reasons, most processors with ARM, some PowerPC, RX and some more exotic core architectures are only supported by J-Flash (JFlash.exe).

Projects with other devices listed as "supported" must be created in U-Flash (UniversalFlasher.exe).

When programming my device, areas are programmed with some value although no data are available for them

This behavior is normally only noticed by the user on MCUs with some kind of flash integrity check such as ECC when attempting to program a block of data within or adjacent to an already programmed sector.

It is caused by the fact that the areas defined in the data files are always padded with the "empty value" to such an extent that a flash sector is completely filled. This is then programmed into the MCU in this way.

Sector padding src file1.png | Sector padding result.png | Sector padding expected output.png

In this example the data file contains data for 0x801FFF10..0x801FFF2F, 0x0x801FFF80..0x801FFF83 and 0x801FFFC0..0x801FFFC3 (left picture). The sector size is for this example set to 0x800 i.e. 2KByte. Due to padding all areas marked red are also written (middle picture). To prevent this, a suitable smaller sector size has to to be chosen, e.g. 0x20. The result with those changed settings are shown in the right picture.

For MCUs with flash integrity check, the check value (ECC) is formed and written following the writing of a "page". Normally, this cannot be changed in subsequent reprogramming attempts. If the page is to be changed, the entire sector must be erased, as any attempt at reprogramming will result in an invalid integrity check value or an exception thrown by the MCU's flash controller.

The flasher currently does not distinguish between an "erase" sector size and a "write" page size. For devices supported by U-Flash, the sector can be adjusted in the device definition files. How to do this, is described in reduce write sector size. Please note that this is usually accompanied by a reduction in programming speed