TOP Contributors

  1. MIKROE (2752 codes)
  2. Alcides Ramos (372 codes)
  3. Shawon Shahryiar (307 codes)
  4. jm_palomino (118 codes)
  5. Bugz Bensce (90 codes)
  6. S P (73 codes)
  7. dany (71 codes)
  8. MikroBUS.NET Team (35 codes)
  9. NART SCHINACKOW (34 codes)
  10. Armstrong Subero (27 codes)

Most Downloaded

  1. Timer Calculator (139070 times)
  2. FAT32 Library (71594 times)
  3. Network Ethernet Library (56989 times)
  4. USB Device Library (47330 times)
  5. Network WiFi Library (43006 times)
  6. FT800 Library (42297 times)
  7. GSM click (29777 times)
  8. mikroSDK (27874 times)
  9. PID Library (26859 times)
  10. microSD click (26129 times)
Libstock prefers package manager

Package Manager

We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]

< Back
Project

Memory Statistics

Rating:

0

Author: VCC

Last Updated: 2023-10-10

Package Version: 1.0.0.3

Category: Other Codes

Downloaded: 70 times

Not followed.

License: MIT license  

This is a remake of "PIC32 Memory Statistics". In addition to displaying the memory allocation and comparing multiple hex files, this tool provides a simulated memory, which accepts Erase/Write commands, coming from a physical MCU. It is used to avoid overwriting the physical memory and instead, display what would happen to it.

No Abuse Reported

Do you want to subscribe in order to receive notifications regarding "Memory Statistics" changes.

Do you want to unsubscribe in order to stop receiving notifications regarding "Memory Statistics" changes.

Do you want to report abuse regarding "Memory Statistics".

  • Information
  • Comments (2)

Project Blog

This is a remake of "PIC32 Memory Statistics". https://libstock.mikroe.com/projects/view/777/pic32-memory-statistics

It provides a simulated memory, which accepts Erase/Write commands, coming from a physical MCU, through UART. This is useful on debugging bootloaders which erase/overwrite themselves. Instead of overwriting the bootloader code, the MCU application can use the provided flash library (MCUFlashLib.mpas), which sends the Erase/Write commands to the Memory Statistics tool (on PC), via UART. The effects of Erase/Write commands are displayed on the compare window. Thus the physical memory is not overwritten, leaving the bootloader intact.

Features:
- If the Defs folder is not found, a local fallback file is used (Defs.ini).
- User configurable memory sections (users can add EBIROM and SQIROM).
- Partial support for memory ranges (e.g. PIC32MZ and PIC32MK have three BootROM ranges).
- Colors are highly configurable (chart, tables, compare, compare minimap).
- "Simulated Memory" support (with hardware connection via COM port).

Limitations:
- Can't compute free words (as in PIC32 Memory Statistics).
- The simulated memory does not reproduce the physical flash memory limitations of writing "0"s only.

What is new/different, compared to PIC32 Memory Statistics:
- User configurable memory sections (they are not hardcoded anymore).
- Compare window has only one table. This is optimized for speed and memory usage.
- Less dependent on PIC32 features (like KSEG0,1,2,3 hardcoded sections).
- A local fallback file is used when a definition file is not found.
- Limitations in displaying statistics (see Statistics tab), as this requires more metadata about KSEG partitioning.
- A "Simulated Memory" allows displaying what would happen to a physical memory on a PIC32 when Erase/Write "commands" are applied to it.
- Many bug fixes.

Known issues:
- for a full list of known issues, see source code (main .pas) on GitHub (link at the end of the blog)

Misc:
- For Linux, the application requires libgtk2.0-0 package (libgtk2.0-0:i386 for 32-bit)
- seting permissions to COM ports:
  sudo usermod -a -G dialout $USER
  then re-login

Main window

Main window

In addition to PIC32 Memory Statistics, the chart provides a local zoom window.

View full image
Opening the Simulated Memory window

Opening the Simulated Memory window

The Simulated Memory window can be displayed from the compare window.

View full image
Simulated Memory window

Simulated Memory window

Erase/Write commands, received from MCU, are kept in a list of commands. Some or all of them can be sent to the simulated memory (which is a slot on compare window). These commands are applied to the loaded hex file, which is compared against an initial v

View full image
Chart and tables - color settings

Chart and tables - color settings

Every memory section can have its own colors, both in chart and in tables.

View full image
IDE tool settings

IDE tool settings

The IDE requires a dummy argument.

View full image
BootStartProgVector

BootStartProgVector

Comparing BootStartProgVector between bootloader and simulated read-back content. Selecting commands in SimMem window, selects entries in compare window.

View full image
BootFlashResetVector

BootFlashResetVector

Comparing BootFlashResetVector between bootloader and simulated read-back content. Selecting commands in SimMem window, selects entries in compare window.

View full image
BootVT

BootVT

Comparing BootVT between bootloader and simulated read-back content. Selecting commands in SimMem window, selects entries in compare window.

View full image

ALSO FROM THIS AUTHOR

Click Analyzer UI

1

This is a simple UI for the Click Analyzer board. It features LED setting, Logic scope, Digital voltmeter and manual commands.

[Learn More]

Resolver connected to AD2S1200 decoder with CmodA7 board

0

ResolverAD2S1200DecA7 is a hardware + software project, which uses AD2S1200 chip, to interface with a resolver, for motor control applications. To talk to the AD2S1200 chip, the Digilent's CmodA7 board is used.

[Learn More]

DynTFT

10

DynTFT is a set of visual components, inspired by Delphi's VCL. These components are compilable by mikroPascal, Delphi and FreePascal, allowing faster designing and debugging of the UI part of an application. The API features a runtime component registration, to make sure that users won't have to deal with internal handling of mouse/touch events.

[Learn More]