Dave,
Just a little more info for updating LST View.
It calculates the Total RAM by taking (RAM_END - RAM_START + 1)
As an example this is from a 16F877 ...
Code:
00000020 00012 RAM_START EQU 00020h
000001EF 00013 RAM_END EQU 001EFh
00000004 00014 RAM_BANKS EQU 00004h
00000020 00015 BANK0_START EQU 00020h
0000007F 00016 BANK0_END EQU 0007Fh
000000A0 00017 BANK1_START EQU 000A0h
000000EF 00018 BANK1_END EQU 000EFh
00000110 00019 BANK2_START EQU 00110h
0000016F 00020 BANK2_END EQU 0016Fh
00000190 00021 BANK3_START EQU 00190h
000001EF 00022 BANK3_END EQU 001EFh
(RAM_END - RAM_START + 1) = 1EFh - 20h + 1 = 464 bytes
But the 16F877 only has 368 bytes.
The extra count is from the SFR's that are at the top of each bank.
GP RAM in each bank doesn't start at the same place on every 16F, so I think you'll need to find the amount in each bank and add them together to get the total RAM.
Code:
(BANK0_END - BANK0_START + 1) + (BANK1_END - BANK1_START + 1) + (BANK2_END - BANK2_START + 1) + (BANK3_END - BANK3_START + 1)
( 0007Fh - 00020h + 1) + ( 000EFh - 000A0h + 1) + ( 0016Fh - 00110h + 1) + ( 001EFh - 00190h + 1)
( 60h ) + ( 50h ) + ( 60h ) + ( 60h )
= 170h = 368
Then it's the same for the Used RAM. You need to subtract the SFR space from the variables address, or somehow reference it to the BANKx_START of the bank that it's in to find out how much has been used.
hth,
Bookmarks