Xvisor Raspberry Pi 3

Pinout

../_images/raspberry-pi-pinout.png

Limitations

  • No floating point support.

  • Subset of libc because newlib in the toolchain seems to make unaligned memory accesses. At least it does not work.

    How to rebuild the toolchain with -mstrict-align (and possible more)?

Toolchain

Download Linaro GCC 7.2.1 with newlib and Linaro GCC 7.2.1 for Linux unpack them in SIMBA_ROOT/...

Default system features

The default configuration includes those major features. They are all initialized by sys_start() at the startup of the application.

Library Reference

Read more about board specific functionality in the Xvisor Raspberry Pi 3 module documentation in the Library Reference.

Memory usage

Below is the memory usage of two applications:

  • The minimal-configuration application is configured to only include the bare minimum of functionality for the low level kernel to run. That is, the thread scheduler and system tick.
  • The default-configuration application is built with the default configuration, including a lot more functionality. See the list of Default system features above for a summary.
Application Flash RAM
minimal-configuration 10280 3776
default-configuration 85832 38400

Default configuration

Default Standard Library configuration.

Name Value
CONFIG_ADC 0
CONFIG_ALIGNMENT 8
CONFIG_ANALOG_INPUT_PIN 0
CONFIG_ANALOG_OUTPUT_PIN 0
CONFIG_ASSERT 1
CONFIG_ASSERT_FORCE_FATAL 1
CONFIG_ASSERT_FORCE_PANIC 0
CONFIG_BMP280 1
CONFIG_BMP280_COVERTION_TIMEOUT_MS 50
CONFIG_BMP280_DEBUG_LOG_MASK -1
CONFIG_CAN 0
CONFIG_CAN_FRAME_TIMESTAMP 1
CONFIG_CHIPID 0
CONFIG_CRC_TABLE_LOOKUP 1
CONFIG_DAC 0
CONFIG_DEBUG 1
CONFIG_DHT 0
CONFIG_DS18B20 1
CONFIG_DS18B20_FS_COMMAND_LIST 1
CONFIG_DS3231 1
CONFIG_EEPROM_I2C 1
CONFIG_EEPROM_I2C_NUMBER_OF_ATTEMPTS 100
CONFIG_EEPROM_SOFT 1
CONFIG_EEPROM_SOFT_CRC CONFIG_EEPROM_SOFT_CRC_32
CONFIG_EEPROM_SOFT_CRC_32 0
CONFIG_EEPROM_SOFT_CRC_CCITT 1
CONFIG_EEPROM_SOFT_SEMAPHORE 1
CONFIG_EMACS_COLUMNS_MAX 80
CONFIG_EMACS_HEAP_SIZE 32768
CONFIG_EMACS_ROWS_MAX 24
CONFIG_ESP_WIFI 0
CONFIG_ESP_WIFI_FS_COMMAND_STATUS 0
CONFIG_EXTERNAL_OSCILLATOR_FREQUENCY_HZ 16000000
CONFIG_EXTI 0
CONFIG_FAT16 1
CONFIG_FATAL_ASSERT 1
CONFIG_FILESYSTEM_GENERIC 1
CONFIG_FLASH 1
CONFIG_FLASH_DEVICE_SEMAPHORE 1
CONFIG_FLOAT 0
CONFIG_FS_FS_COMMAND_APPEND 1
CONFIG_FS_FS_COMMAND_COUNTERS_LIST 1
CONFIG_FS_FS_COMMAND_COUNTERS_RESET 1
CONFIG_FS_FS_COMMAND_FILESYSTEMS_LIST 1
CONFIG_FS_FS_COMMAND_FORMAT 1
CONFIG_FS_FS_COMMAND_LIST 1
CONFIG_FS_FS_COMMAND_PARAMETERS_LIST 1
CONFIG_FS_FS_COMMAND_READ 1
CONFIG_FS_FS_COMMAND_REMOVE 1
CONFIG_FS_FS_COMMAND_WRITE 1
CONFIG_FS_PATH_MAX 64
CONFIG_GNSS 1
CONFIG_GNSS_DEBUG_LOG_MASK -1
CONFIG_HARNESS_BACKTRACE_DEPTH_MAX 8
CONFIG_HARNESS_DEBUG 0
CONFIG_HARNESS_EARLY_EXIT 1
CONFIG_HARNESS_EXPECT_BUFFER_SIZE 512
CONFIG_HARNESS_MOCK_ENTRIES_MAX 1024
CONFIG_HARNESS_SLEEP_MS 300
CONFIG_HARNESS_WRITE_BACKTRACE_DEPTH_MAX 0
CONFIG_HTTP_SERVER_REQUEST_BUFFER_SIZE 128
CONFIG_HTTP_SERVER_SSL 0
CONFIG_HX711 1
CONFIG_I2C 1
CONFIG_I2C_FS_COMMAND_READ 1
CONFIG_I2C_FS_COMMAND_SCAN 1
CONFIG_I2C_FS_COMMAND_WRITE 1
CONFIG_I2C_SOFT 1
CONFIG_JTAG_SOFT 1
CONFIG_LED_7SEG_HT16K33 0
CONFIG_LINUX_SOCKET_DEVICE 0
CONFIG_LOG_FS_COMMANDS 1
CONFIG_MCP2515 0
CONFIG_MODULE_INIT_ADC 0
CONFIG_MODULE_INIT_ANALOG_INPUT_PIN 0
CONFIG_MODULE_INIT_ANALOG_OUTPUT_PIN 0
CONFIG_MODULE_INIT_BUS 1
CONFIG_MODULE_INIT_CAN 0
CONFIG_MODULE_INIT_CHAN 1
CONFIG_MODULE_INIT_CHIPID 0
CONFIG_MODULE_INIT_DAC 0
CONFIG_MODULE_INIT_DHT 0
CONFIG_MODULE_INIT_DS18B20 1
CONFIG_MODULE_INIT_DS3231 1
CONFIG_MODULE_INIT_ESP_WIFI 0
CONFIG_MODULE_INIT_EXTI 0
CONFIG_MODULE_INIT_FLASH 1
CONFIG_MODULE_INIT_FS 1
CONFIG_MODULE_INIT_I2C 1
CONFIG_MODULE_INIT_I2C_SOFT 1
CONFIG_MODULE_INIT_INET 0
CONFIG_MODULE_INIT_LOG 1
CONFIG_MODULE_INIT_MCP2515 0
CONFIG_MODULE_INIT_NETWORK_INTERFACE 0
CONFIG_MODULE_INIT_NRF24L01 0
CONFIG_MODULE_INIT_OWI 1
CONFIG_MODULE_INIT_PIN 1
CONFIG_MODULE_INIT_PING 0
CONFIG_MODULE_INIT_POWER 0
CONFIG_MODULE_INIT_PWM 0
CONFIG_MODULE_INIT_PWM_SOFT 0
CONFIG_MODULE_INIT_RANDOM 0
CONFIG_MODULE_INIT_RE 1
CONFIG_MODULE_INIT_RWLOCK 1
CONFIG_MODULE_INIT_SD 0
CONFIG_MODULE_INIT_SEM 1
CONFIG_MODULE_INIT_SETTINGS 1
CONFIG_MODULE_INIT_SOCKET 0
CONFIG_MODULE_INIT_SPI 0
CONFIG_MODULE_INIT_SSL 0
CONFIG_MODULE_INIT_STD 1
CONFIG_MODULE_INIT_THRD 1
CONFIG_MODULE_INIT_TIMER 1
CONFIG_MODULE_INIT_UART 1
CONFIG_MODULE_INIT_UART_SOFT 0
CONFIG_MODULE_INIT_UPGRADE 0
CONFIG_MODULE_INIT_USB 0
CONFIG_MODULE_INIT_USB_DEVICE 0
CONFIG_MODULE_INIT_USB_HOST 0
CONFIG_MODULE_INIT_WATCHDOG 0
CONFIG_MONITOR_THREAD 1
CONFIG_MONITOR_THREAD_PERIOD_US 2000000
CONFIG_NETWORK_INTERFACE_FS_COMMAND_LIST 0
CONFIG_NRF24L01 0
CONFIG_NVM_EEPROM_SOFT 1
CONFIG_NVM_EEPROM_SOFT_BLOCK_0_SIZE 16384
CONFIG_NVM_EEPROM_SOFT_BLOCK_1_SIZE 16384
CONFIG_NVM_EEPROM_SOFT_CHUNK_SIZE (CONFIG_NVM_SIZE + 8)
CONFIG_NVM_EEPROM_SOFT_FLASH_DEVICE_INDEX 0
CONFIG_NVM_FS_COMMAND_READ 1
CONFIG_NVM_FS_COMMAND_WRITE 1
CONFIG_NVM_SIZE 2040
CONFIG_OWI 1
CONFIG_PANIC_ASSERT 1
CONFIG_PANIC_ASSERT_FILE_LINE 1
CONFIG_PCINT 0
CONFIG_PIN 1
CONFIG_PING_FS_COMMAND_PING 1
CONFIG_PIN_FS_COMMAND_READ 1
CONFIG_PIN_FS_COMMAND_SET_MODE 1
CONFIG_PIN_FS_COMMAND_WRITE 1
CONFIG_POWER 0
CONFIG_PREEMPTIVE_SCHEDULER 0
CONFIG_PROFILE_STACK 1
CONFIG_PWM 0
CONFIG_PWM_SOFT 0
CONFIG_RANDOM 0
CONFIG_RE_DEBUG_LOG_MASK -1
CONFIG_SD 0
CONFIG_SERVICE_FS_COMMAND_LIST 1
CONFIG_SERVICE_FS_COMMAND_START 1
CONFIG_SERVICE_FS_COMMAND_STOP 1
CONFIG_SETTINGS_AREA_SIZE 256
CONFIG_SETTINGS_BLOB 1
CONFIG_SETTINGS_FS_COMMAND_LIST 1
CONFIG_SETTINGS_FS_COMMAND_READ 1
CONFIG_SETTINGS_FS_COMMAND_RESET 1
CONFIG_SETTINGS_FS_COMMAND_WRITE 1
CONFIG_SHELL_COMMAND_MAX 64
CONFIG_SHELL_HISTORY_SIZE 768
CONFIG_SHELL_MINIMAL 0
CONFIG_SHELL_PROMPT “$ “
CONFIG_SHT3XD 1
CONFIG_SOAM_EMBEDDED_DATABASE 0
CONFIG_SOCKET_RAW 1
CONFIG_SOFTWARE_I2C 1
CONFIG_SPC5_BOOT_ENTRY_RCHW 1
CONFIG_SPC5_RAM_CLEAR_ALL 1
CONFIG_SPC5_RELOCATE_INIT 1
CONFIG_SPC5_WATCHDOG_DISABLE 1
CONFIG_SPI 0
CONFIG_SPIFFS 0
CONFIG_START_CONSOLE CONFIG_START_CONSOLE_UART
CONFIG_START_CONSOLE_DEVICE_INDEX 0
CONFIG_START_CONSOLE_UART_BAUDRATE 38400
CONFIG_START_CONSOLE_UART_RX_BUFFER_SIZE 32
CONFIG_START_CONSOLE_USB_CDC_CONTROL_INTERFACE 0
CONFIG_START_CONSOLE_USB_CDC_ENDPOINT_IN 2
CONFIG_START_CONSOLE_USB_CDC_ENDPOINT_OUT 3
CONFIG_START_CONSOLE_USB_CDC_WAIT_FOR_CONNETION 1
CONFIG_START_FILESYSTEM 0
CONFIG_START_FILESYSTEM_ADDRESS 0
CONFIG_START_FILESYSTEM_FAT16 0
CONFIG_START_FILESYSTEM_SIZE 65536
CONFIG_START_FILESYSTEM_SPIFFS 1
CONFIG_START_NETWORK 0
CONFIG_START_NETWORK_INTERFACE_WIFI_CONNECT_TIMEOUT 30
CONFIG_START_NETWORK_INTERFACE_WIFI_PASSWORD MyWiFiPassword
CONFIG_START_NETWORK_INTERFACE_WIFI_SSID MyWiFiSSID
CONFIG_START_NVM 0
CONFIG_START_SHELL 1
CONFIG_START_SHELL_PRIO 30
CONFIG_START_SHELL_STACK_SIZE 4096
CONFIG_START_SOAM 0
CONFIG_START_SOAM_PRIO 30
CONFIG_START_SOAM_STACK_SIZE 4096
CONFIG_STD_OUTPUT_BUFFER_MAX 16
CONFIG_SYSTEM_INTERRUPTS 1
CONFIG_SYSTEM_INTERRUPT_STACK_SIZE 0
CONFIG_SYSTEM_TICK_FREQUENCY 100
CONFIG_SYSTEM_TICK_SOFTWARE 0
CONFIG_SYS_CONFIG_STRING 1
CONFIG_SYS_FS_COMMANDS 1
CONFIG_SYS_LOG_MASK LOG_UPTO(INFO)
CONFIG_SYS_MEASURE_INTERRUPT_LOAD 1
CONFIG_SYS_PANIC_BACKTRACE_DEPTH 24
CONFIG_SYS_PANIC_KICK_WATCHDOG 0
CONFIG_SYS_RESET_CAUSE 1
CONFIG_SYS_SIMBA_MAIN_STACK_MAX 4096
CONFIG_THRD_CPU_USAGE 1
CONFIG_THRD_DEFAULT_LOG_MASK LOG_UPTO(INFO)
CONFIG_THRD_ENV 1
CONFIG_THRD_FS_COMMANDS 1
CONFIG_THRD_IDLE_STACK_SIZE 2048
CONFIG_THRD_MONITOR_STACK_SIZE 2048
CONFIG_THRD_SCHEDULED 1
CONFIG_THRD_STACK_HEAP 0
CONFIG_THRD_STACK_HEAP_SIZE 0
CONFIG_THRD_TERMINATE 1
CONFIG_TIME_UNIX_TIME_TO_DATE 1
CONFIG_UART 1
CONFIG_UART_FS_COUNTERS 1
CONFIG_UART_SOFT 0
CONFIG_UPGRADE_FS_COMMAND_APPLICATION_ENTER 1
CONFIG_UPGRADE_FS_COMMAND_APPLICATION_ERASE 1
CONFIG_UPGRADE_FS_COMMAND_APPLICATION_IS_VALID 1
CONFIG_UPGRADE_FS_COMMAND_BOOTLOADER_ENTER 1
CONFIG_USB 0
CONFIG_USB_DEVICE 0
CONFIG_USB_DEVICE_FS_COMMAND_LIST 1
CONFIG_USB_DEVICE_PID 0x8037
CONFIG_USB_DEVICE_VID 0x2341
CONFIG_USB_HOST 0
CONFIG_USB_HOST_FS_COMMAND_LIST 1
CONFIG_WATCHDOG 0
CONFIG_WS2812 0
CONFIG_XBEE 1
CONFIG_XBEE_CLIENT 1
CONFIG_XBEE_CLIENT_DEBUG_LOG_MASK -1
CONFIG_XBEE_CLIENT_RESPONSE_TIMEOUT_MS 1000
CONFIG_XBEE_DATA_MAX 120