2 Memory Usage for PIC16F

Program and data memory consumption for the diagnostic modules for PIC16F devices.

This memory usage is captured with the below toolchain versions and device:

  • MPLAB X IDE: v6.20
  • XC8 Compiler: v2.49
  • Device: PIC16F18875
No. Module Name Module Version Configurations Optimization Level

(-Os / -O0)

Program Memory (Bytes) Data Memory (Bytes)
1. SW_CPU_REGISTER_RESET_STATE_CHECK_01 1.0.3 N/A -Os 144 5
-O0 203 7
2. SW_CPU_REGISTER_TEST_01 2.0.2 N/A -Os 285 6
-O0 410 8
3. SW_CPU_SELF_TEST_LIB_01 1.0.1 All Subsets -Os 549 16
All Subsets -O0 664 21
Subset 1 -Os 347 14
Subset 1 -O0 439 19
Subset 2 -Os 204 10
Subset 2 -O0 255 15
Subset 3 -Os 248 10
Subset 3 -O0 302 15
4. SW_FLASH_MEMORY_CHECKSUM_CRC_TEST_01 2.0.2 CRC16 Direct -Os 870 112
CRC16 Direct -O0 1118 114
CRC16 Lookup -Os 1377 112
CRC16 Lookup -O0 1620 114
CRC32 Direct -Os 1013 116
CRC32 Direct -O0 1309 120
CRC32 Lookup -Os 2014 116
CRC32 Lookup -O0 2293 120
5. SW_EEPROM_MEMORY_CHECKSUM_CRC_TEST_01 2.0.1 CRC16 Direct -Os 564 37
CRC16 Direct -O0 716 39
CRC16 Lookup -Os 1068 43
CRC16 Lookup -O0 1213 45
CRC32 Direct -Os 733 57
CRC32 Direct -O0 978 59
CRC32 Lookup -Os 1742 60
CRC32 Lookup -O0 1967 60
6. SW_SRAM_MARCH_TEST_01 3.0.2 N/A -Os 867 117
-O0 1 N/A 1 N/A
7. SW_WATCHDOG_SIMPLE_TIMER_STARTUP_TEST_01 2.1.0 N/A -Os 240 11
-O0 312 14
8. SW_WATCHDOG_WINDOWED_TIMER_STARTUP_TEST_01 2.0.1 N/A -Os 339 15
-O0 489 19
9. SW_CLOCK_PERIODIC_MONITOR_01 2.1.0 N/A -Os 588 68
-O0 756 71
10. SW_CLOCK_PERIODIC_MONITOR_02 2.0.1 N/A -Os 579 112
-O0 813 120
11. SW_INTERRUPT_FREQUENCY_TEST_01 2.0.1 N/A -Os 564 55
-O0 771 59

Note: The values in the above table also include the memory consumption for the dependent peripheral drivers and system modules necessary for the expected functionality of each diagnostic module.

  1. SW_SRAM_MARCH_TEST_01 requires the compiler optimization level set to 's'.