3 Replies Latest reply on Oct 2, 2014 4:13 PM by MichaelF_56

    NVRAM ID's in use above 0x6f

    MaMe_1509466

      Documentation like “How to Write WICED Smart Applications” indicate

      that the NVRAM ID range for Applications to use is from 0x10 to 0x6f.

      Yet VS_BLE_HOST_LIST used in examples like cycling_speed_cadence

      have a value of 0x70.


      Is this invalid application use of NVRAM or is something

      else happening when NVRAM is used in this range?

       

        • 1. Re: NVRAM ID's in use above 0x6f
          MichaelF_56

          Regarding EEPROM limitations, both of these threads contain alot of useful information:

           


          Note that the team has used larger 128KByte EEPROMs with the the BCM2073x, but only the lower 64KBytes will be used/accessed by the firmware.

           

          On the other hand, the EEPROM driver API provides low level access to write to any EEPROM location, so the application can still use the upper 64KBytes by specifying a different I2C slave address than the one used for the lower 64KBytes, which is usually 0xA0/0xA1.

           

          However, you cannot use this space to store app/patch code/configuration – only the apps own data using the raw EEPROM read/write API (note that none of the bleprofile_*NVRAM API will work with the upper 64K).

           

          Note that the 16b/64k limitation is an EEPROM architecture issue more than a firmware related one. EEEPROMs always use 16 bit addresses, which limits their size to 64KBytes. The way EEPROM vendors work around this is to use a different slave address for the higher 64KBytes (so the same 16 bit address space is mapped to a physically different slave).

          • 2. Re: NVRAM ID's in use above 0x6f
            MaMe_1509466

            Unfortunately, the answer to my question cannot be found in

            the references provided.

            • 3. Re: NVRAM ID's in use above 0x6f
              MichaelF_56

              Re: BCM20732S NVRAM Size

               

              You can use NVRAM IDs between 0x00 and 0x6F and each item is limited to 255 bytes.

               

              This post also discusses:

               

              DLConfigVSLength - length of this volatile section.

              ConfigDSLocation - location of the application code and data (also known as DS)

               

              And how to manually manipulate these regions provided they do not overlap.

               

              ArvindS_76 VictorZ_46