Skip to content

Commit 57efb61

Browse files
committed
pbsys/program_load: Reserve space for user data.
A popular feature request is to be able to store some runtime data on the hub, such as the last-used speed of a train. This commit reserves some space for this purpose so we can avoid breaking user programs stored on (external) flash when we add a user API later. See pybricks/support#85
1 parent 4637a84 commit 57efb61

File tree

7 files changed

+10
-0
lines changed

7 files changed

+10
-0
lines changed

lib/pbio/include/pbsys/program_load.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ typedef struct _pbsys_program_load_data_header_t {
4141
*/
4242
volatile uint32_t checksum_complement;
4343
#endif
44+
/**
45+
* End-user read-write accessible data.
46+
*/
47+
uint8_t user_data[PBSYS_CONFIG_PROGRAM_LOAD_USER_DATA_SIZE];
4448
/**
4549
* Size of the application program (size of code only).
4650
*/

lib/pbio/platform/city_hub/pbsysconfig.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
#define PBSYS_CONFIG_PROGRAM_LOAD_OVERLAPS_BOOTLOADER_CHECKSUM (1)
1212
#define PBSYS_CONFIG_PROGRAM_LOAD_RAM_SIZE (20 * 1024)
1313
#define PBSYS_CONFIG_PROGRAM_LOAD_ROM_SIZE (PBDRV_CONFIG_BLOCK_DEVICE_FLASH_STM32_SIZE)
14+
#define PBSYS_CONFIG_PROGRAM_LOAD_USER_DATA_SIZE (128)
1415
#define PBSYS_CONFIG_STATUS_LIGHT (1)
1516
#define PBSYS_CONFIG_STATUS_LIGHT_BATTERY (0)

lib/pbio/platform/debug/pbsysconfig.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
#define PBSYS_CONFIG_PROGRAM_LOAD_RAM_SIZE (64 * 1024)
1010
#define PBSYS_CONFIG_PROGRAM_LOAD_ROM_SIZE (0)
1111
#define PBSYS_CONFIG_PROGRAM_LOAD_OVERLAPS_BOOTLOADER_CHECKSUM (0)
12+
#define PBSYS_CONFIG_PROGRAM_LOAD_USER_DATA_SIZE (512)
1213
#define PBSYS_CONFIG_STATUS_LIGHT (1)
1314
#define PBSYS_CONFIG_STATUS_LIGHT_BATTERY (0)

lib/pbio/platform/essential_hub/pbsysconfig.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
#define PBSYS_CONFIG_PROGRAM_LOAD_RAM_SIZE (258 * 1024)
1010
#define PBSYS_CONFIG_PROGRAM_LOAD_ROM_SIZE (PBDRV_CONFIG_BLOCK_DEVICE_W25QXX_STM32_SIZE)
1111
#define PBSYS_CONFIG_PROGRAM_LOAD_OVERLAPS_BOOTLOADER_CHECKSUM (0)
12+
#define PBSYS_CONFIG_PROGRAM_LOAD_USER_DATA_SIZE (512)
1213
#define PBSYS_CONFIG_STATUS_LIGHT (1)
1314
#define PBSYS_CONFIG_STATUS_LIGHT_BATTERY (1)

lib/pbio/platform/move_hub/pbsysconfig.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
#define PBSYS_CONFIG_PROGRAM_LOAD_OVERLAPS_BOOTLOADER_CHECKSUM (1)
1212
#define PBSYS_CONFIG_PROGRAM_LOAD_RAM_SIZE (7 * 1024)
1313
#define PBSYS_CONFIG_PROGRAM_LOAD_ROM_SIZE (PBDRV_CONFIG_BLOCK_DEVICE_FLASH_STM32_SIZE)
14+
#define PBSYS_CONFIG_PROGRAM_LOAD_USER_DATA_SIZE (128)
1415
#define PBSYS_CONFIG_STATUS_LIGHT (1)
1516
#define PBSYS_CONFIG_STATUS_LIGHT_BATTERY (0)

lib/pbio/platform/prime_hub/pbsysconfig.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
#define PBSYS_CONFIG_PROGRAM_LOAD_RAM_SIZE (258 * 1024)
1010
#define PBSYS_CONFIG_PROGRAM_LOAD_ROM_SIZE (PBDRV_CONFIG_BLOCK_DEVICE_W25QXX_STM32_SIZE)
1111
#define PBSYS_CONFIG_PROGRAM_LOAD_OVERLAPS_BOOTLOADER_CHECKSUM (0)
12+
#define PBSYS_CONFIG_PROGRAM_LOAD_USER_DATA_SIZE (512)
1213
#define PBSYS_CONFIG_STATUS_LIGHT (1)
1314
#define PBSYS_CONFIG_STATUS_LIGHT_BATTERY (1)

lib/pbio/platform/technic_hub/pbsysconfig.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
#define PBSYS_CONFIG_PROGRAM_LOAD_OVERLAPS_BOOTLOADER_CHECKSUM (1)
1212
#define PBSYS_CONFIG_PROGRAM_LOAD_RAM_SIZE (32 * 1024)
1313
#define PBSYS_CONFIG_PROGRAM_LOAD_ROM_SIZE (PBDRV_CONFIG_BLOCK_DEVICE_FLASH_STM32_SIZE)
14+
#define PBSYS_CONFIG_PROGRAM_LOAD_USER_DATA_SIZE (128)
1415
#define PBSYS_CONFIG_STATUS_LIGHT (1)
1516
#define PBSYS_CONFIG_STATUS_LIGHT_BATTERY (0)

0 commit comments

Comments
 (0)