TOP Contributors

  1. MIKROE (2658 codes)
  2. Alcides Ramos (355 codes)
  3. Shawon Shahryiar (307 codes)
  4. jm_palomino (112 codes)
  5. Chisanga Mumba (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 (136932 times)
  2. FAT32 Library (70052 times)
  3. Network Ethernet Library (56013 times)
  4. USB Device Library (46327 times)
  5. Network WiFi Library (41936 times)
  6. FT800 Library (41249 times)
  7. GSM click (29039 times)
  8. mikroSDK (26436 times)
  9. PID Library (26435 times)
  10. microSD click (25391 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: 36 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.
- Limiations 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

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]

Expectations

0

This is a small library with testing functions, inspired by Jasmine testing framework. It supports several datatypes for writing tests, like String, Integer, DWord, Boolean and raw data. There is also a counterpart library for desktop applications. The provided examples test the DynArrays library.

[Learn More]

PIC32 Memory Statistics

16

The purpose of this tool is to display a chart containing the memory allocation in a PIC32 project.

[Learn More]