Elektroda.pl
Elektroda.pl
X
CControls
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PIC12F1501/XC8 - Linear memory, jak się do niej dostać?

szox2 30 Mar 2015 23:17 1614 5
  • #1 30 Mar 2015 23:17
    szox2
    Poziom 9  

    Witam,
    W Datasheecie procesora PIC12F1501 w sekcji 3.5.2 LINEAR DATA MEMORY jest wzmianka o dodatkowej pamięci do wykorzystania:

    PIC12F1501/XC8 - Linear memory, jak się do niej dostać?

    Próbując wielu rozwiązań nie jestem w stanie używać tej pamięci jako RAM. MapFile zwraca w części UNUSED ADDRESS RANGES coś takiego:

    Code:
            Name                Unused          Largest block    Delta
    
            BANK0            00047-0004F               9           1
            BIGRAM           02000-0202F              30           1
            CODE             00003-00003               1           2
                             00290-002FF              70
                             0032F-003FF              D1
            COMMON           0007A-0007D               4           1
            CONST            00003-00003               1           2
                             00290-002FF              70
                             0032F-003FF              D1
            ENTRY            00003-00003               1           2
                             00290-002FF              70
                             0032F-003FF              D1




            IDLOC            08000-08003               4           2
            RAM              00047-0004F               9           1
            SFR0             00000-0001F              20           1
            SFR1             00080-000EF              70           1
            SFR10            00500-0056F              70           1
            SFR11            00580-005EF              70           1
            SFR12            00600-0066F              70           1
            SFR13            00680-006EF              70           1
            SFR14            00700-0076F              70           1
            SFR15            00780-007EF              70           1
            SFR16            00800-0086F              70           1
            SFR17            00880-008EF              70           1
            SFR18            00900-0096F              70           1
            SFR19            00980-009EF              70           1
            SFR2             00100-0016F              70           1
            SFR20            00A00-00A6F              70           1
            SFR21            00A80-00AEF              70           1
            SFR22            00B00-00B6F              70           1
            SFR23            00B80-00BEF              70           1
            SFR24            00C00-00C6F              70           1
            SFR25            00C80-00CEF              70           1
            SFR26            00D00-00D6F              70           1
            SFR27            00D80-00DEF              70           1
            SFR28            00E00-00E6F              70           1
            SFR29            00E80-00EEF              70           1
            SFR3             00180-001EF              70           1
            SFR30            00F00-00F6F              70           1
            SFR31            00F80-00FEF              70           1
            SFR4             00200-0026F              70           1
            SFR5             00280-002EF              70           1
            SFR6             00300-0036F              70           1
            SFR7             00380-003EF              70           1
            SFR8             00400-0046F              70           1
            SFR9             00480-004EF              70           1
            STACK            02027-0202F               9           1
            STRCODE          00003-00003               1           2
                             00290-002FF              70
                             0032F-003FF              D1
            STRING           00003-00003               1           2
                             00290-002FF              70
                             0032F-003FF              D1

    Czy ktoś wie jak z poziomu XC8 v1.33 wykorzystać Linear memory jako ram? Po mojemu wychodzi na to, że kompilator sam z siebie nie jest w stanie gospodarować tą częścią pamięci.

    Link do DS:
    PIC12(L)F1501 8-Pin Flash, 8-Bit Microcontrollers Data Sheet (04/02/2014)
    Z góry dziękuję za pomoc

    0 5
  • CControls
  • #2 31 Mar 2015 07:21
    94075
    Użytkownik usunął konto  
  • CControls
  • #3 31 Mar 2015 07:31
    szox2
    Poziom 9  

    Dziękuje za odpowiedz i dodatkowe pytanie. Czemu w takim razie kompilator widzi ją jako nieużywaną? No i czemu nie jest ona zawarta w podsumowaniu generowanym przez kompilator?

    Code:
    Memory Summary:
    
        Program space        used   25Ah (   602) of   400h words   ( 58.8%)
        Data space           used    1Dh (    29) of    40h bytes   ( 45.3%)
        EEPROM space         None available
        Data stack space     used     0h (     0) of    1Eh bytes   (  0.0%)
        Configuration bits   used     2h (     2) of     2h words   (100.0%)
        ID Location space    used     0h (     0) of     4h bytes   (  0.0%)

    0
  • #4 31 Mar 2015 07:58
    94075
    Użytkownik usunął konto  
  • #5 31 Mar 2015 08:13
    szwagros
    Poziom 30  

    szox2 napisał:
    Czemu w takim razie kompilator widzi ją jako nieużywaną? No i czemu nie jest ona zawarta w podsumowaniu generowanym przez kompilator?

    To po prostu pamięć RAM (porównaj adresy). W podsumowaniu jest to widoczne jako 'Data space'.

    1
  • #6 31 Mar 2015 16:04
    szox2
    Poziom 9  

    albertb napisał:

    Gdzie ją widzi? W mojej ocenie tylko Ty ją gdzieś widzisz.
    Jak ma być zawarta w czymkolwiek skoro jej nie ma?
    Jeszcze raz: Linear Memory to inny sposób dostępu do tej samej pamięci.

    Jak masz staw z rybami, to niezależnie od tego, czy łowisz wędką (banked memory), siecią (linear memory) , czy jeszcze inaczej nie wyciągniesz więcej ryb niż tam jest.
    Albert


    To wszystko jest jasne, niemniej zastanawiał mnie fakt czemu kompilator te wszystkie SFRy pakuje w sekcji UNUSED MEMORY mapfile.

    Dzięki Panowie za pomoc i wyjaśnienie :D
    Pozdrawiam

    0