You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2016/09/22 02:12:39 UTC
[32/59] [abbrv] incubator-mynewt-core git commit: syscfg / sysinit
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/arduino_primo_nrf52/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/bsp/arduino_primo_nrf52/pkg.yml b/hw/bsp/arduino_primo_nrf52/pkg.yml
index c49bc24..63fe461 100644
--- a/hw/bsp/arduino_primo_nrf52/pkg.yml
+++ b/hw/bsp/arduino_primo_nrf52/pkg.yml
@@ -33,12 +33,63 @@ pkg.linkerscript: "primo.ld"
pkg.linkerscript.bootloader.OVERWRITE: "boot-primo.ld"
pkg.downloadscript: primo_download.sh
pkg.debugscript: primo_debug.sh
-pkg.cflags: -DNRF52 -DSPI_MASTER_0_ENABLE
+pkg.cflags:
+ # Nordic SDK files require these defines.
+ - '-DNRF52'
+ - '-DSPI_MASTER_0_ENABLE'
+
pkg.deps:
- - hw/mcu/nordic
- hw/mcu/nordic/nrf52xxx
- libs/baselibc
- - drivers/uart/uart_hal
- - drivers/uart/uart_bitbang
+
pkg.deps.BLE_DEVICE:
- net/nimble/drivers/nrf52
+
+pkg.deps.ADC_0:
+ - drivers/adc/adc_nrf52
+
+pkg.deps.UART_0:
+ - drivers/uart/uart_hal
+
+pkg.deps.UART_1:
+ - drivers/uart/uart_bitbang
+
+pkg.syscfg_defs:
+ BSP_NRF52:
+ description: 'TBD'
+ value: 1
+
+ CLOCK_FREQ:
+ description: 'TBD'
+ value: 1000000
+
+ XTAL_32768:
+ description: 'TBD'
+ value: 1
+
+ ADC_0:
+ description: 'TBD'
+ value: 1
+ ADC_0_RESOLUTION:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_RESOLUTION'
+ ADC_0_OVERSAMPLE:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_OVERSAMPLE'
+ ADC_0_INTERRUPT_PRIORITY:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_IRQ_PRIORITY'
+
+ UART_0:
+ description: 'TBD'
+ value: 1
+ UART_1:
+ description: 'TBD'
+ value: 0
+
+ SPI_MASTER:
+ description: 'TBD'
+ value: 1
+ SPI_SLAVE:
+ description: 'TBD'
+ value: 0
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/bmd300eval/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/bsp/bmd300eval/pkg.yml b/hw/bsp/bmd300eval/pkg.yml
index 5cc570d..0035ce2 100644
--- a/hw/bsp/bmd300eval/pkg.yml
+++ b/hw/bsp/bmd300eval/pkg.yml
@@ -32,10 +32,63 @@ pkg.linkerscript: "bmd300eval.ld"
pkg.linkerscript.bootloader.OVERWRITE: "boot-bmd300eval.ld"
pkg.downloadscript: bmd300eval_download.sh
pkg.debugscript: bmd300eval_debug.sh
-pkg.cflags: -DNRF52 -DBSP_HAS_32768_XTAL -DSPI_MASTER_0_ENABLE
+pkg.cflags:
+ # Nordic SDK files require these defines.
+ - '-DNRF52'
+ - '-DSPI_MASTER_0_ENABLE'
+
pkg.deps:
- - hw/mcu/nordic
- hw/mcu/nordic/nrf52xxx
- libs/baselibc
+
pkg.deps.BLE_DEVICE:
- net/nimble/drivers/nrf52
+
+pkg.deps.ADC_0:
+ - drivers/adc/adc_nrf52
+
+pkg.deps.UART_0:
+ - drivers/uart/uart_hal
+
+pkg.deps.UART_1:
+ - drivers/uart/uart_bitbang
+
+pkg.syscfg_defs:
+ BSP_NRF52:
+ description: 'TBD'
+ value: 1
+
+ CLOCK_FREQ:
+ description: 'TBD'
+ value: 1000000
+
+ XTAL_32768:
+ description: 'TBD'
+ value: 1
+
+ ADC_0:
+ description: 'TBD'
+ value: 1
+ ADC_0_RESOLUTION:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_RESOLUTION'
+ ADC_0_OVERSAMPLE:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_OVERSAMPLE'
+ ADC_0_INTERRUPT_PRIORITY:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_IRQ_PRIORITY'
+
+ UART_0:
+ description: 'TBD'
+ value: 1
+ UART_1:
+ description: 'TBD'
+ value: 0
+
+ SPI_MASTER:
+ description: 'TBD'
+ value: 1
+ SPI_SLAVE:
+ description: 'TBD'
+ value: 0
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/native/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/bsp/native/pkg.yml b/hw/bsp/native/pkg.yml
index 0de14d6..ede1525 100644
--- a/hw/bsp/native/pkg.yml
+++ b/hw/bsp/native/pkg.yml
@@ -25,11 +25,12 @@ pkg.homepage: "http://mynewt.apache.org/"
pkg.keywords:
- native
- bsp
+pkg.debugscript: "native_debug.sh"
pkg.arch: sim
pkg.compiler: compiler/sim
pkg.deps:
- hw/mcu/native
+
pkg.deps.BLE_DEVICE:
- net/nimble/drivers/native
-pkg.debugscript: "native_debug.sh"
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/native/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/native/src/hal_bsp.c b/hw/bsp/native/src/hal_bsp.c
index dadee14..d65ac11 100644
--- a/hw/bsp/native/src/hal_bsp.c
+++ b/hw/bsp/native/src/hal_bsp.c
@@ -23,7 +23,6 @@
#include <inttypes.h>
#include "hal/hal_flash_int.h"
#include "mcu/native_bsp.h"
-#include "hal/hal_adc_int.h"
#include "bsp/bsp_sysid.h"
#include "mcu/mcu_hal.h"
#include <bsp/bsp.h>
@@ -31,7 +30,6 @@
#include <mcu/hal_pwm.h>
#include <mcu/hal_dac.h>
-
const struct hal_flash *
bsp_flash_dev(uint8_t id)
{
@@ -43,76 +41,3 @@ bsp_flash_dev(uint8_t id)
}
return &native_flash_dev;
}
-
-/* This is the factory that creates adc devices for the application.
- * Based on the system ID defined, this maps to a creation function for
- * the specific underlying driver */
-extern struct hal_adc *
-bsp_get_hal_adc(enum system_device_id sysid)
-{
- switch(sysid) {
- case NATIVE_A0:
- return native_adc_random_create(MCU_ADC_CHANNEL_0);
- case NATIVE_A1:
- return native_adc_random_create(MCU_ADC_CHANNEL_1);
- case NATIVE_A2:
- return native_adc_mmm_create(MCU_ADC_CHANNEL_2);
- case NATIVE_A3:
- return native_adc_mmm_create(MCU_ADC_CHANNEL_3);
- case NATIVE_A4:
- return native_adc_mmm_create(MCU_ADC_CHANNEL_4);
- case NATIVE_A5:
- /* for this BSP we hard code the name of the ADC sample file */
- return native_adc_file_create(MCU_ADC_CHANNEL_5, "foo.txt");
- default:
- break;
- }
- return NULL;
-}
-
-struct hal_pwm *
-bsp_get_hal_pwm_driver(enum system_device_id sysid)
-{
- switch(sysid)
- {
- case NATIVE_BSP_PWM_0:
- return native_pwm_create (NATIVE_MCU_PWM0);
- case NATIVE_BSP_PWM_1:
- return native_pwm_create (NATIVE_MCU_PWM1);
- case NATIVE_BSP_PWM_2:
- return native_pwm_create (NATIVE_MCU_PWM2);
- case NATIVE_BSP_PWM_3:
- return native_pwm_create (NATIVE_MCU_PWM3);
- case NATIVE_BSP_PWM_4:
- return native_pwm_create (NATIVE_MCU_PWM4);
- case NATIVE_BSP_PWM_5:
- return native_pwm_create (NATIVE_MCU_PWM5);
- case NATIVE_BSP_PWM_6:
- return native_pwm_create (NATIVE_MCU_PWM6);
- case NATIVE_BSP_PWM_7:
- return native_pwm_create (NATIVE_MCU_PWM7);
- default:
- break;
- }
- return NULL;
-}
-
-
-struct hal_dac *
-bsp_get_hal_dac(enum system_device_id sysid)
-{
- switch(sysid)
- {
- case NATIVE_BSP_DAC_0:
- return native_dac_create(NATIVE_MCU_DAC0);
- case NATIVE_BSP_DAC_1:
- return native_dac_create(NATIVE_MCU_DAC1);
- case NATIVE_BSP_DAC_2:
- return native_dac_create(NATIVE_MCU_DAC2);
- case NATIVE_BSP_DAC_3:
- return native_dac_create(NATIVE_MCU_DAC3);
- default:
- break;
- }
- return NULL;
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/nrf51-arduino_101/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51-arduino_101/pkg.yml b/hw/bsp/nrf51-arduino_101/pkg.yml
index ee29287..05ff47a 100644
--- a/hw/bsp/nrf51-arduino_101/pkg.yml
+++ b/hw/bsp/nrf51-arduino_101/pkg.yml
@@ -32,9 +32,62 @@ pkg.linkerscript: "nrf51-arduino_101.ld"
pkg.linkerscript.bootloader.OVERWRITE: "boot-nrf51-arduino_101.ld"
pkg.downloadscript: nrf51dk-16kbram_download.sh
pkg.debugscript: nrf51dk-16kbram_debug.sh
-pkg.cflags: -DNRF51
+pkg.cflags:
+ # Nordic SDK files require these defines.
+ - '-DNRF52'
+
pkg.deps:
- hw/mcu/nordic/nrf51xxx
- libs/baselibc
+
pkg.deps.BLE_DEVICE:
- net/nimble/drivers/nrf51
+
+pkg.deps.ADC_0:
+ - drivers/adc/adc_nrf51
+
+pkg.deps.UART_0:
+ - drivers/uart/uart_hal
+
+pkg.deps.UART_1:
+ - drivers/uart/uart_bitbang
+
+pkg.syscfg_defs:
+ BSP_NRF51:
+ description: 'TBD'
+ value: 1
+
+ CLOCK_FREQ:
+ description: 'TBD'
+ value: 1000000
+
+ XTAL_32768:
+ description: 'TBD'
+ value: 1
+
+ ADC_0:
+ description: 'TBD'
+ value: 1
+ ADC_0_RESOLUTION:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_RESOLUTION'
+ ADC_0_OVERSAMPLE:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_OVERSAMPLE'
+ ADC_0_INTERRUPT_PRIORITY:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_IRQ_PRIORITY'
+
+ UART_0:
+ description: 'TBD'
+ value: 1
+ UART_1:
+ description: 'TBD'
+ value: 0
+
+ SPI_MASTER:
+ description: 'TBD'
+ value: 1
+ SPI_SLAVE:
+ description: 'TBD'
+ value: 0
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/nrf51-blenano/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51-blenano/pkg.yml b/hw/bsp/nrf51-blenano/pkg.yml
index ea41d92..20cd656 100644
--- a/hw/bsp/nrf51-blenano/pkg.yml
+++ b/hw/bsp/nrf51-blenano/pkg.yml
@@ -33,9 +33,62 @@ pkg.linkerscript: "nrf51dk.ld"
pkg.linkerscript.bootloader.OVERWRITE: "boot-nrf51dk.ld"
pkg.downloadscript: nrf51dk_download.sh
pkg.debugscript: nrf51dk_debug.sh
-pkg.cflags: -DNRF51
+pkg.cflags:
+ # Nordic SDK files require these defines.
+ - '-DNRF52'
+
pkg.deps:
- hw/mcu/nordic/nrf51xxx
- libs/baselibc
+
pkg.deps.BLE_DEVICE:
- net/nimble/drivers/nrf51
+
+pkg.deps.ADC_0:
+ - drivers/adc/adc_nrf51
+
+pkg.deps.UART_0:
+ - drivers/uart/uart_hal
+
+pkg.deps.UART_1:
+ - drivers/uart/uart_bitbang
+
+pkg.syscfg_defs:
+ BSP_NRF51:
+ description: 'TBD'
+ value: 1
+
+ CLOCK_FREQ:
+ description: 'TBD'
+ value: 1000000
+
+ XTAL_32768:
+ description: 'TBD'
+ value: 1
+
+ ADC_0:
+ description: 'TBD'
+ value: 1
+ ADC_0_RESOLUTION:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_RESOLUTION'
+ ADC_0_OVERSAMPLE:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_OVERSAMPLE'
+ ADC_0_INTERRUPT_PRIORITY:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_IRQ_PRIORITY'
+
+ UART_0:
+ description: 'TBD'
+ value: 1
+ UART_1:
+ description: 'TBD'
+ value: 0
+
+ SPI_MASTER:
+ description: 'TBD'
+ value: 1
+ SPI_SLAVE:
+ description: 'TBD'
+ value: 0
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/nrf51dk-16kbram/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51dk-16kbram/pkg.yml b/hw/bsp/nrf51dk-16kbram/pkg.yml
index 5273846..c9c11d2 100644
--- a/hw/bsp/nrf51dk-16kbram/pkg.yml
+++ b/hw/bsp/nrf51dk-16kbram/pkg.yml
@@ -32,10 +32,62 @@ pkg.linkerscript: "nrf51dk-16kbram.ld"
pkg.linkerscript.bootloader.OVERWRITE: "boot-nrf51dk-16kbram.ld"
pkg.downloadscript: nrf51dk-16kbram_download.sh
pkg.debugscript: nrf51dk-16kbram_debug.sh
-pkg.cflags: -DNRF51
+pkg.cflags:
+ # Nordic SDK files require these defines.
+ - '-DNRF52'
+
pkg.deps:
- hw/mcu/nordic/nrf51xxx
- libs/baselibc
- - drivers/uart/uart_hal
+
pkg.deps.BLE_DEVICE:
- net/nimble/drivers/nrf51
+
+pkg.deps.ADC_0:
+ - drivers/adc/adc_nrf51
+
+pkg.deps.UART_0:
+ - drivers/uart/uart_hal
+
+pkg.deps.UART_1:
+ - drivers/uart/uart_bitbang
+
+pkg.syscfg_defs:
+ BSP_NRF51:
+ description: 'TBD'
+ value: 1
+
+ CLOCK_FREQ:
+ description: 'TBD'
+ value: 1000000
+
+ XTAL_32768:
+ description: 'TBD'
+ value: 1
+
+ ADC_0:
+ description: 'TBD'
+ value: 1
+ ADC_0_RESOLUTION:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_RESOLUTION'
+ ADC_0_OVERSAMPLE:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_OVERSAMPLE'
+ ADC_0_INTERRUPT_PRIORITY:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_IRQ_PRIORITY'
+
+ UART_0:
+ description: 'TBD'
+ value: 1
+ UART_1:
+ description: 'TBD'
+ value: 0
+
+ SPI_MASTER:
+ description: 'TBD'
+ value: 1
+ SPI_SLAVE:
+ description: 'TBD'
+ value: 0
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/nrf51dk/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51dk/pkg.yml b/hw/bsp/nrf51dk/pkg.yml
index 6b3705d..c6d66bc 100644
--- a/hw/bsp/nrf51dk/pkg.yml
+++ b/hw/bsp/nrf51dk/pkg.yml
@@ -32,12 +32,56 @@ pkg.linkerscript: "nrf51dk.ld"
pkg.linkerscript.bootloader.OVERWRITE: "boot-nrf51dk.ld"
pkg.downloadscript: nrf51dk_download.sh
pkg.debugscript: nrf51dk_debug.sh
-pkg.cflags: -DNRF51 -DBSP_HAS_32768_XTAL
+pkg.cflags:
+ # Nordic SDK files require this define.
+ - '-DNRF51'
+
pkg.deps:
- hw/mcu/nordic/nrf51xxx
- libs/baselibc
- - drivers/uart/uart_hal
+
pkg.deps.BLE_DEVICE:
- net/nimble/drivers/nrf51
-pkg.features:
- - ADC_NRF51
+
+pkg.deps.ADC_0:
+ - drivers/adc/adc_nrf51
+
+pkg.deps.UART_0:
+ - drivers/uart/uart_hal
+
+pkg.syscfg_defs:
+ BSP_NRF51:
+ description: 'TBD'
+ value: 1
+
+ CLOCK_FREQ:
+ description: 'TBD'
+ value: 1000000
+
+ 32768_XTAL:
+ description: 'TBD'
+ value: 1
+
+ ADC_0:
+ description: 'TBD'
+ value: 1
+ ADC_0_RESOLUTION:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_RESOLUTION'
+ ADC_0_OVERSAMPLE:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_OVERSAMPLE'
+ ADC_0_INTERRUPT_PRIORITY:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_IRQ_PRIORITY'
+
+ UART_0:
+ description: 'TBD'
+ value: 1
+
+ SPI_MASTER:
+ description: 'TBD'
+ value: 1
+ SPI_SLAVE:
+ description: 'TBD'
+ value: 0
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/nrf52dk/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf52dk/pkg.yml b/hw/bsp/nrf52dk/pkg.yml
index 41b4222..5e617e5 100644
--- a/hw/bsp/nrf52dk/pkg.yml
+++ b/hw/bsp/nrf52dk/pkg.yml
@@ -32,13 +32,63 @@ pkg.linkerscript: "nrf52dk.ld"
pkg.linkerscript.bootloader.OVERWRITE: "boot-nrf52dk.ld"
pkg.downloadscript: nrf52dk_download.sh
pkg.debugscript: nrf52dk_debug.sh
-pkg.cflags: -DNRF52 -DBSP_HAS_32768_XTAL -DSPI_MASTER_0_ENABLE
+pkg.cflags:
+ # Nordic SDK files require these defines.
+ - '-DNRF52'
+ - '-DSPI_MASTER_0_ENABLE'
+
pkg.deps:
- - hw/mcu/nordic
- hw/mcu/nordic/nrf52xxx
- libs/baselibc
- - drivers/uart/uart_hal
+
pkg.deps.BLE_DEVICE:
- net/nimble/drivers/nrf52
-pkg.features:
- - ADC_NRF52
+
+pkg.deps.ADC_0:
+ - drivers/adc/adc_nrf52
+
+pkg.deps.UART_0:
+ - drivers/uart/uart_hal
+
+pkg.deps.UART_1:
+ - drivers/uart/uart_bitbang
+
+pkg.syscfg_defs:
+ BSP_NRF52:
+ description: 'TBD'
+ value: 1
+
+ CLOCK_FREQ:
+ description: 'TBD'
+ value: 1000000
+
+ XTAL_32768:
+ description: 'TBD'
+ value: 1
+
+ ADC_0:
+ description: 'TBD'
+ value: 1
+ ADC_0_RESOLUTION:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_RESOLUTION'
+ ADC_0_OVERSAMPLE:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_OVERSAMPLE'
+ ADC_0_INTERRUPT_PRIORITY:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_IRQ_PRIORITY'
+
+ UART_0:
+ description: 'TBD'
+ value: 1
+ UART_1:
+ description: 'TBD'
+ value: 0
+
+ SPI_MASTER:
+ description: 'TBD'
+ value: 1
+ SPI_SLAVE:
+ description: 'TBD'
+ value: 0
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/nrf52dk/src/os_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf52dk/src/os_bsp.c b/hw/bsp/nrf52dk/src/os_bsp.c
index 0a521af..1b3cfdd 100644
--- a/hw/bsp/nrf52dk/src/os_bsp.c
+++ b/hw/bsp/nrf52dk/src/os_bsp.c
@@ -16,25 +16,32 @@
* specific language governing permissions and limitations
* under the License.
*/
+
#include <assert.h>
-#include <hal/flash_map.h>
-#include <hal/hal_bsp.h>
-#include <hal/hal_cputime.h>
-#include <mcu/nrf52_hal.h>
-#include <os/os_dev.h>
+#include "syscfg/syscfg.h"
+#include "hal/flash_map.h"
+#include "hal/hal_bsp.h"
+#include "hal/hal_cputime.h"
+#include "hal/hal_flash.h"
+#include "hal/hal_spi.h"
+#include "mcu/nrf52_hal.h"
+#include "uart/uart.h"
+#include "uart_hal/uart_hal.h"
+#include "os/os_dev.h"
-#include <uart/uart.h>
-#include <uart_hal/uart_hal.h>
-#include <hal/hal_spi.h>
-#ifdef BSP_CFG_SPI_MASTER
+#if MYNEWT_VAL(SPI_MASTER)
#include "nrf_drv_spi.h"
#endif
-#ifdef BSP_CFG_SPI_SLAVE
+#if MYNEWT_VAL(SPI_SLAVE)
#include "nrf_drv_spis.h"
#endif
#include "nrf_drv_config.h"
-#include <app_util_platform.h>
+#include "app_util_platform.h"
+#include "nrf.h"
+#include "app_error.h"
+#include "adc_nrf52/adc_nrf52.h"
+#include "nrf_drv_saadc.h"
static struct flash_area bsp_flash_areas[] = {
[FLASH_AREA_BOOTLOADER] = {
@@ -64,9 +71,21 @@ static struct flash_area bsp_flash_areas[] = {
.fa_size = (12 * 1024)
}
};
-static struct uart_dev hal_uart0;
-void _close(int fd);
+#if MYNEWT_VAL(UART_0)
+static struct uart_dev os_bsp_uart0;
+#endif
+
+#if MYNEWT_VAL(ADC_0)
+static struct adc_dev os_bsp_adc0;
+static nrf_drv_saadc_config_t os_bsp_adc0_config = {
+ .resolution = MYNEWT_VAL(ADC_0_RESOLUTION),
+ .oversample = MYNEWT_VAL(ADC_0_OVERSAMPLE),
+ .interrupt_priority = MYNEWT_VAL(ADC_0_INTERRUPT_PRIORITY),
+};
+#endif
+
+//void _close(int fd);
/*
* Returns the flash map slot where the currently active image is located.
@@ -86,36 +105,53 @@ void
bsp_init(void)
{
int rc;
-#ifdef BSP_CFG_SPI_MASTER
+
+#if MYNEWT_VAL(SPI_MASTER)
nrf_drv_spi_config_t spi_cfg = NRF_DRV_SPI_DEFAULT_CONFIG(0);
#endif
-#ifdef BSP_CFG_SPI_SLAVE
+#if MYNEWT_VAL(SPI_SLAVE)
nrf_drv_spis_config_t spi_cfg = NRF_DRV_SPIS_DEFAULT_CONFIG(0);
#endif
/*
* XXX this reference is here to keep this function in.
*/
- _sbrk(0);
- _close(0);
+ (void)_sbrk;
+ //(void)_close;
+
+ /* Set cputime to count at 1 usec increments */
+ rc = cputime_init(MYNEWT_VAL(CLOCK_FREQ));
+ assert(rc == 0);
flash_area_init(bsp_flash_areas,
sizeof(bsp_flash_areas) / sizeof(bsp_flash_areas[0]));
- rc = os_dev_create((struct os_dev *) &hal_uart0, "uart0",
- OS_DEV_INIT_PRIMARY, 0, uart_hal_init, (void *)bsp_uart_config());
+ rc = hal_flash_init();
assert(rc == 0);
-#ifdef BSP_CFG_SPI_MASTER
+#if MYNEWT_VAL(SPI_MASTER)
/* We initialize one SPI interface as a master. */
rc = hal_spi_init(0, &spi_cfg, HAL_SPI_TYPE_MASTER);
assert(rc == 0);
#endif
-#ifdef BSP_CFG_SPI_SLAVE
+#if MYNEWT_VAL(SPI_SLAVE)
/* We initialize one SPI interface as a master. */
spi_cfg.csn_pin = SPIS0_CONFIG_CSN_PIN;
rc = hal_spi_init(0, &spi_cfg, HAL_SPI_TYPE_SLAVE);
assert(rc == 0);
#endif
+
+#if MYNEWT_VAL(UART_0)
+ rc = os_dev_create((struct os_dev *) &os_bsp_uart0, "uart0",
+ OS_DEV_INIT_PRIMARY, 0, uart_hal_init, (void *)bsp_uart_config());
+ assert(rc == 0);
+#endif
+
+#if MYNEWT_VAL(ADC_0)
+ rc = os_dev_create((struct os_dev *) &os_bsp_adc0, "adc0",
+ OS_DEV_INIT_KERNEL, OS_DEV_INIT_PRIO_DEFAULT,
+ nrf52_adc_dev_init, &os_bsp_adc0_config);
+ assert(rc == 0);
+#endif
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/nrf52pdk/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf52pdk/pkg.yml b/hw/bsp/nrf52pdk/pkg.yml
index 6bc7ef4..d57f7e2 100644
--- a/hw/bsp/nrf52pdk/pkg.yml
+++ b/hw/bsp/nrf52pdk/pkg.yml
@@ -32,11 +32,63 @@ pkg.linkerscript: "nrf52pdk.ld"
pkg.linkerscript.bootloader.OVERWRITE: "boot-nrf52pdk.ld"
pkg.downloadscript: nrf52pdk_download.sh
pkg.debugscript: nrf52pdk_debug.sh
-pkg.cflags: -DNRF52 -DSPI_MASTER_0_ENABLE
+pkg.cflags:
+ # Nordic SDK files require these defines.
+ - '-DNRF52'
+ - '-DSPI_MASTER_0_ENABLE'
+
pkg.deps:
- - hw/mcu/nordic
- hw/mcu/nordic/nrf52xxx
- libs/baselibc
- - drivers/uart/uart_hal
+
pkg.deps.BLE_DEVICE:
- net/nimble/drivers/nrf52
+
+pkg.deps.ADC_0:
+ - drivers/adc/adc_nrf52
+
+pkg.deps.UART_0:
+ - drivers/uart/uart_hal
+
+pkg.deps.UART_1:
+ - drivers/uart/uart_bitbang
+
+pkg.syscfg_defs:
+ BSP_NRF52:
+ description: 'TBD'
+ value: 1
+
+ CLOCK_FREQ:
+ description: 'TBD'
+ value: 1000000
+
+ XTAL_32768:
+ description: 'TBD'
+ value: 0
+
+ ADC_0:
+ description: 'TBD'
+ value: 0
+ ADC_0_RESOLUTION:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_RESOLUTION'
+ ADC_0_OVERSAMPLE:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_OVERSAMPLE'
+ ADC_0_INTERRUPT_PRIORITY:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_IRQ_PRIORITY'
+
+ UART_0:
+ description: 'TBD'
+ value: 1
+ UART_1:
+ description: 'TBD'
+ value: 0
+
+ SPI_MASTER:
+ description: 'TBD'
+ value: 0
+ SPI_SLAVE:
+ description: 'TBD'
+ value: 0
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/bsp/olimex_stm32-e407_devboard/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/bsp/olimex_stm32-e407_devboard/pkg.yml b/hw/bsp/olimex_stm32-e407_devboard/pkg.yml
index 761d9ba..3b23131 100644
--- a/hw/bsp/olimex_stm32-e407_devboard/pkg.yml
+++ b/hw/bsp/olimex_stm32-e407_devboard/pkg.yml
@@ -33,8 +33,51 @@ pkg.linkerscript: "olimex_stm32-e407_devboard.ld"
pkg.linkerscript.bootloader.OVERWRITE: "boot-olimex_stm32-e407_devboard.ld"
pkg.downloadscript: "olimex_stm32-e407_devboard_download.sh"
pkg.debugscript: "olimex_stm32-e407_devboard_debug.sh"
-pkg.cflags: -DSTM32F407xx
+pkg.cflags:
+ # STM SDK files require these defines.
+ - '-DSTM32F407xx'
+
pkg.deps:
- hw/mcu/stm/stm32f4xx
- libs/baselibc
+
+pkg.deps.ADC_0:
+ - drivers/adc/adc_nrf52
+
+pkg.deps.UART_0:
- drivers/uart/uart_hal
+
+pkg.deps.UART_1:
+ - drivers/uart/uart_bitbang
+
+pkg.syscfg_defs:
+ CLOCK_FREQ:
+ description: 'TBD'
+ value: 1000000
+
+ ADC_0:
+ description: 'TBD'
+ value: 1
+ ADC_0_RESOLUTION:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_RESOLUTION'
+ ADC_0_OVERSAMPLE:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_OVERSAMPLE'
+ ADC_0_INTERRUPT_PRIORITY:
+ description: 'TBD'
+ value: 'SAADC_CONFIG_IRQ_PRIORITY'
+
+ UART_0:
+ description: 'TBD'
+ value: 1
+ UART_1:
+ description: 'TBD'
+ value: 0
+
+ SPI_MASTER:
+ description: 'TBD'
+ value: 1
+ SPI_SLAVE:
+ description: 'TBD'
+ value: 0
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/hal/include/hal/flash_map.h
----------------------------------------------------------------------
diff --git a/hw/hal/include/hal/flash_map.h b/hw/hal/include/hal/flash_map.h
index 1bf07ee..a073078 100644
--- a/hw/hal/include/hal/flash_map.h
+++ b/hw/hal/include/hal/flash_map.h
@@ -61,6 +61,9 @@ struct flash_area {
#define FLASH_AREA_CORE 2
#define FLASH_AREA_REBOOT_LOG 5
+extern const struct flash_area *flash_map;
+extern int flash_map_entries;
+
/*
* Initializes flash map. Memory will be referenced by flash_map code
* from this on.
@@ -97,7 +100,7 @@ int flash_area_to_sectors(int idx, int *cnt, struct flash_area *ret);
* Given flash map index, return sector info in NFFS area desc format.
*/
struct nffs_area_desc;
-int flash_area_to_nffs_desc(int idx, int *cnt, struct nffs_area_desc *nad);
+int nffs_misc_desc_from_flash_area(int idx, int *cnt, struct nffs_area_desc *nad);
#ifdef __cplusplus
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/hal/include/hal/hal_bsp.h
----------------------------------------------------------------------
diff --git a/hw/hal/include/hal/hal_bsp.h b/hw/hal/include/hal/hal_bsp.h
index 8ca8a69..c5d0ba1 100644
--- a/hw/hal/include/hal/hal_bsp.h
+++ b/hw/hal/include/hal/hal_bsp.h
@@ -29,6 +29,7 @@ extern "C" {
/*
* Initializes BSP; registers flash_map with the system.
*/
+void bsp_init_devs(void);
void bsp_init(void);
/*
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/hal/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/hal/pkg.yml b/hw/hal/pkg.yml
index f350040..2049849 100644
--- a/hw/hal/pkg.yml
+++ b/hw/hal/pkg.yml
@@ -24,6 +24,3 @@ pkg.homepage: "http://mynewt.apache.org/"
pkg.keywords:
pkg.deps: libs/os
-pkg.deps.NFFS:
- - fs/nffs
-pkg.cflags.NFFS: -DNFFS_PRESENT
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/hal/src/flash_map.c
----------------------------------------------------------------------
diff --git a/hw/hal/src/flash_map.c b/hw/hal/src/flash_map.c
index 4b06c29..d66b0ad 100644
--- a/hw/hal/src/flash_map.c
+++ b/hw/hal/src/flash_map.c
@@ -19,16 +19,14 @@
#include <inttypes.h>
#include <string.h>
+#include "syscfg/syscfg.h"
#include "hal/hal_bsp.h"
#include "hal/hal_flash.h"
#include "hal/hal_flash_int.h"
-#ifdef NFFS_PRESENT
-#include <nffs/nffs.h>
-#endif
#include "hal/flash_map.h"
-static const struct flash_area *flash_map;
-static int flash_map_entries;
+const struct flash_area *flash_map;
+int flash_map_entries;
void
flash_area_init(const struct flash_area *map, int map_entries)
@@ -86,74 +84,6 @@ flash_area_to_sectors(int idx, int *cnt, struct flash_area *ret)
return 0;
}
-#ifdef NFFS_PRESENT
-/*
- * Turn flash region into a set of areas for NFFS use.
- *
- * Limit the number of regions we return to be less than *cnt.
- * If sector count within region exceeds that, collect multiple sectors
- * to a region.
- */
-int
-flash_area_to_nffs_desc(int idx, int *cnt, struct nffs_area_desc *nad)
-{
- int i, j;
- const struct hal_flash *hf;
- const struct flash_area *fa;
- int max_cnt, move_on;
- int first_idx, last_idx;
- uint32_t start, size;
- uint32_t min_size;
-
- if (!flash_map || idx >= flash_map_entries) {
- return -1;
- }
- first_idx = last_idx = -1;
- max_cnt = *cnt;
- *cnt = 0;
-
- fa = &flash_map[idx];
-
- hf = bsp_flash_dev(fa->fa_flash_id);
- for (i = 0; i < hf->hf_sector_cnt; i++) {
- hf->hf_itf->hff_sector_info(i, &start, &size);
- if (start >= fa->fa_off && start < fa->fa_off + fa->fa_size) {
- if (first_idx == -1) {
- first_idx = i;
- }
- last_idx = i;
- *cnt = *cnt + 1;
- }
- }
- if (*cnt > max_cnt) {
- min_size = fa->fa_size / max_cnt;
- } else {
- min_size = 0;
- }
- *cnt = 0;
-
- move_on = 1;
- for (i = first_idx, j = 0; i < last_idx + 1; i++) {
- hf->hf_itf->hff_sector_info(i, &start, &size);
- if (move_on) {
- nad[j].nad_flash_id = fa->fa_flash_id;
- nad[j].nad_offset = start;
- nad[j].nad_length = size;
- *cnt = *cnt + 1;
- move_on = 0;
- } else {
- nad[j].nad_length += size;
- }
- if (nad[j].nad_length >= min_size) {
- j++;
- move_on = 1;
- }
- }
- nad[*cnt].nad_length = 0;
- return 0;
-}
-#endif /* NFFS_PRESENT */
-
int
flash_area_read(const struct flash_area *fa, uint32_t off, void *dst,
uint32_t len)
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/hal/src/test/flash_map_test.c
----------------------------------------------------------------------
diff --git a/hw/hal/src/test/flash_map_test.c b/hw/hal/src/test/flash_map_test.c
deleted file mode 100644
index 06e065d..0000000
--- a/hw/hal/src/test/flash_map_test.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include <stdio.h>
-#include <string.h>
-
-#include <os/os.h>
-#include <testutil/testutil.h>
-#include "hal/flash_map.h"
-#include "hal/hal_bsp.h"
-#include "hal/hal_flash.h"
-#include "hal/hal_flash_int.h"
-
-/*
- * Test flash_area_to_sectors()
- */
-TEST_CASE(flash_map_test_case_1)
-{
- const struct flash_area *fa;
- int areas_checked = 0;
- int i, j, rc;
- const struct hal_flash *hf;
- struct flash_area my_secs[32];
- int my_sec_cnt;
- uint32_t end;
-
- os_init();
-
- for (i = 0; i < 8; i++) {
- rc = flash_area_open(i, &fa);
- if (rc) {
- continue;
- }
-
- hf = bsp_flash_dev(fa->fa_flash_id);
- TEST_ASSERT_FATAL(hf != NULL, "bsp_flash_dev");
-
- rc = flash_area_to_sectors(i, &my_sec_cnt, my_secs);
- TEST_ASSERT_FATAL(rc == 0, "flash_area_to_sectors failed");
-
- end = fa->fa_off;
- for (j = 0; j < my_sec_cnt; j++) {
- TEST_ASSERT_FATAL(end == my_secs[j].fa_off, "Non contiguous area");
- TEST_ASSERT_FATAL(my_secs[j].fa_flash_id == fa->fa_flash_id,
- "Sectors not in same flash?");
- end = my_secs[j].fa_off + my_secs[j].fa_size;
- }
- if (my_sec_cnt) {
- areas_checked++;
- TEST_ASSERT_FATAL(my_secs[my_sec_cnt - 1].fa_off +
- my_secs[my_sec_cnt - 1].fa_size == fa->fa_off + fa->fa_size,
- "Last sector not in the end");
- }
- }
- TEST_ASSERT_FATAL(areas_checked != 0, "No flash map areas to check!");
-}
-
-/*
- * Test flash_erase
- */
-TEST_CASE(flash_map_test_case_2)
-{
- const struct flash_area *fa;
- struct flash_area secs[32];
- int sec_cnt;
- int i;
- int rc;
- uint32_t off;
- uint8_t wd[256];
- uint8_t rd[256];
-
- os_init();
-
- rc = flash_area_open(FLASH_AREA_IMAGE_0, &fa);
- TEST_ASSERT_FATAL(rc == 0, "flash_area_open() fail");
-
- rc = flash_area_to_sectors(FLASH_AREA_IMAGE_0, &sec_cnt, secs);
- TEST_ASSERT_FATAL(rc == 0, "flash_area_to_sectors failed");
-
- /*
- * First erase the area so it's ready for use.
- */
- for (i = 0; i < sec_cnt; i++) {
- rc = hal_flash_erase_sector(secs[i].fa_flash_id, secs[i].fa_off);
- TEST_ASSERT_FATAL(rc == 0, "hal_flash_erase_sector() failed");
- }
- TEST_ASSERT_FATAL(rc == 0, "read data != write data");
-
- memset(wd, 0xa5, sizeof(wd));
-
- /* write stuff to beginning of every sector */
- off = 0;
- for (i = 0; i < sec_cnt; i++) {
- rc = flash_area_write(fa, off, wd, sizeof(wd));
- TEST_ASSERT_FATAL(rc == 0, "flash_area_write() fail");
-
- /* read it back via hal_flash_Read() */
- rc = hal_flash_read(fa->fa_flash_id, fa->fa_off + off, rd, sizeof(rd));
- TEST_ASSERT_FATAL(rc == 0, "hal_flash_read() fail");
-
- rc = memcmp(wd, rd, sizeof(wd));
- TEST_ASSERT_FATAL(rc == 0, "read data != write data");
-
- /* write stuff to end of area */
- rc = hal_flash_write(fa->fa_flash_id,
- fa->fa_off + off + secs[i].fa_size - sizeof(wd), wd, sizeof(wd));
- TEST_ASSERT_FATAL(rc == 0, "hal_flash_write() fail");
-
- /* and read it back */
- memset(rd, 0, sizeof(rd));
- rc = flash_area_read(fa, off + secs[i].fa_size - sizeof(rd),
- rd, sizeof(rd));
- TEST_ASSERT_FATAL(rc == 0, "hal_flash_read() fail");
-
- rc = memcmp(wd, rd, sizeof(rd));
- TEST_ASSERT_FATAL(rc == 0, "read data != write data");
-
- off += secs[i].fa_size;
- }
- /* erase it */
- rc = flash_area_erase(fa, 0, fa->fa_size);
- TEST_ASSERT_FATAL(rc == 0, "read data != write data");
-
- /* should read back ff all throughout*/
- memset(wd, 0xff, sizeof(wd));
- for (off = 0; off < fa->fa_size; off += sizeof(rd)) {
- rc = flash_area_read(fa, off, rd, sizeof(rd));
- TEST_ASSERT_FATAL(rc == 0, "hal_flash_read() fail");
-
- rc = memcmp(wd, rd, sizeof(rd));
- TEST_ASSERT_FATAL(rc == 0, "area not erased");
- }
-}
-
-TEST_SUITE(flash_map_test_suite)
-{
- flash_map_test_case_1();
- flash_map_test_case_2();
-}
-
-#ifdef MYNEWT_SELFTEST
-
-int
-main(int argc, char **argv)
-{
- tu_config.tc_print_results = 1;
- tu_init();
-
- flash_map_test_suite();
-
- return tu_any_failed;
-}
-
-#endif
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/hal/test/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/hal/test/pkg.yml b/hw/hal/test/pkg.yml
new file mode 100644
index 0000000..943c0b3
--- /dev/null
+++ b/hw/hal/test/pkg.yml
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+pkg.name: hw/hal/test
+pkg.type: unittest
+pkg.description: "HAL unit tests."
+pkg.author: "Apache Mynewt <de...@mynewt.incubator.apache.org>"
+pkg.homepage: "http://mynewt.apache.org/"
+pkg.keywords:
+
+pkg.deps:
+ - hw/hal
+ - libs/testutil
+
+pkg.deps.SELFTEST:
+ - libs/console/stub
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/hal/test/src/flash_map_test.c
----------------------------------------------------------------------
diff --git a/hw/hal/test/src/flash_map_test.c b/hw/hal/test/src/flash_map_test.c
new file mode 100644
index 0000000..71d1e45
--- /dev/null
+++ b/hw/hal/test/src/flash_map_test.c
@@ -0,0 +1,170 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#include <stdio.h>
+#include <string.h>
+
+#include "syscfg/syscfg.h"
+#include "os/os.h"
+#include "testutil/testutil.h"
+#include "hal/flash_map.h"
+#include "hal/hal_bsp.h"
+#include "hal/hal_flash.h"
+#include "hal/hal_flash_int.h"
+
+/*
+ * Test flash_area_to_sectors()
+ */
+TEST_CASE(flash_map_test_case_1)
+{
+ const struct flash_area *fa;
+ int areas_checked = 0;
+ int i, j, rc;
+ const struct hal_flash *hf;
+ struct flash_area my_secs[32];
+ int my_sec_cnt;
+ uint32_t end;
+
+ os_init();
+
+ for (i = 0; i < 8; i++) {
+ rc = flash_area_open(i, &fa);
+ if (rc) {
+ continue;
+ }
+
+ hf = bsp_flash_dev(fa->fa_flash_id);
+ TEST_ASSERT_FATAL(hf != NULL, "bsp_flash_dev");
+
+ rc = flash_area_to_sectors(i, &my_sec_cnt, my_secs);
+ TEST_ASSERT_FATAL(rc == 0, "flash_area_to_sectors failed");
+
+ end = fa->fa_off;
+ for (j = 0; j < my_sec_cnt; j++) {
+ TEST_ASSERT_FATAL(end == my_secs[j].fa_off, "Non contiguous area");
+ TEST_ASSERT_FATAL(my_secs[j].fa_flash_id == fa->fa_flash_id,
+ "Sectors not in same flash?");
+ end = my_secs[j].fa_off + my_secs[j].fa_size;
+ }
+ if (my_sec_cnt) {
+ areas_checked++;
+ TEST_ASSERT_FATAL(my_secs[my_sec_cnt - 1].fa_off +
+ my_secs[my_sec_cnt - 1].fa_size == fa->fa_off + fa->fa_size,
+ "Last sector not in the end");
+ }
+ }
+ TEST_ASSERT_FATAL(areas_checked != 0, "No flash map areas to check!");
+}
+
+/*
+ * Test flash_erase
+ */
+TEST_CASE(flash_map_test_case_2)
+{
+ const struct flash_area *fa;
+ struct flash_area secs[32];
+ int sec_cnt;
+ int i;
+ int rc;
+ uint32_t off;
+ uint8_t wd[256];
+ uint8_t rd[256];
+
+ os_init();
+
+ rc = flash_area_open(FLASH_AREA_IMAGE_0, &fa);
+ TEST_ASSERT_FATAL(rc == 0, "flash_area_open() fail");
+
+ rc = flash_area_to_sectors(FLASH_AREA_IMAGE_0, &sec_cnt, secs);
+ TEST_ASSERT_FATAL(rc == 0, "flash_area_to_sectors failed");
+
+ /*
+ * First erase the area so it's ready for use.
+ */
+ for (i = 0; i < sec_cnt; i++) {
+ rc = hal_flash_erase_sector(secs[i].fa_flash_id, secs[i].fa_off);
+ TEST_ASSERT_FATAL(rc == 0, "hal_flash_erase_sector() failed");
+ }
+ TEST_ASSERT_FATAL(rc == 0, "read data != write data");
+
+ memset(wd, 0xa5, sizeof(wd));
+
+ /* write stuff to beginning of every sector */
+ off = 0;
+ for (i = 0; i < sec_cnt; i++) {
+ rc = flash_area_write(fa, off, wd, sizeof(wd));
+ TEST_ASSERT_FATAL(rc == 0, "flash_area_write() fail");
+
+ /* read it back via hal_flash_Read() */
+ rc = hal_flash_read(fa->fa_flash_id, fa->fa_off + off, rd, sizeof(rd));
+ TEST_ASSERT_FATAL(rc == 0, "hal_flash_read() fail");
+
+ rc = memcmp(wd, rd, sizeof(wd));
+ TEST_ASSERT_FATAL(rc == 0, "read data != write data");
+
+ /* write stuff to end of area */
+ rc = hal_flash_write(fa->fa_flash_id,
+ fa->fa_off + off + secs[i].fa_size - sizeof(wd), wd, sizeof(wd));
+ TEST_ASSERT_FATAL(rc == 0, "hal_flash_write() fail");
+
+ /* and read it back */
+ memset(rd, 0, sizeof(rd));
+ rc = flash_area_read(fa, off + secs[i].fa_size - sizeof(rd),
+ rd, sizeof(rd));
+ TEST_ASSERT_FATAL(rc == 0, "hal_flash_read() fail");
+
+ rc = memcmp(wd, rd, sizeof(rd));
+ TEST_ASSERT_FATAL(rc == 0, "read data != write data");
+
+ off += secs[i].fa_size;
+ }
+ /* erase it */
+ rc = flash_area_erase(fa, 0, fa->fa_size);
+ TEST_ASSERT_FATAL(rc == 0, "read data != write data");
+
+ /* should read back ff all throughout*/
+ memset(wd, 0xff, sizeof(wd));
+ for (off = 0; off < fa->fa_size; off += sizeof(rd)) {
+ rc = flash_area_read(fa, off, rd, sizeof(rd));
+ TEST_ASSERT_FATAL(rc == 0, "hal_flash_read() fail");
+
+ rc = memcmp(wd, rd, sizeof(rd));
+ TEST_ASSERT_FATAL(rc == 0, "area not erased");
+ }
+}
+
+TEST_SUITE(flash_map_test_suite)
+{
+ flash_map_test_case_1();
+ flash_map_test_case_2();
+}
+
+#if MYNEWT_VAL(SELFTEST)
+
+int
+main(int argc, char **argv)
+{
+ tu_config.tc_print_results = 1;
+ tu_init();
+
+ flash_map_test_suite();
+
+ return tu_any_failed;
+}
+
+#endif
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/mcu/native/include/mcu/mcu_hal.h
----------------------------------------------------------------------
diff --git a/hw/mcu/native/include/mcu/mcu_hal.h b/hw/mcu/native/include/mcu/mcu_hal.h
index e6163b9..aced4dc 100644
--- a/hw/mcu/native/include/mcu/mcu_hal.h
+++ b/hw/mcu/native/include/mcu/mcu_hal.h
@@ -26,8 +26,6 @@
extern "C" {
#endif
-#include <hal/hal_adc.h>
-
/* this is a native build and these pins are not real. They are used only
* for simulated HAL devices */
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/mcu/native/src/hal_adc.c
----------------------------------------------------------------------
diff --git a/hw/mcu/native/src/hal_adc.c b/hw/mcu/native/src/hal_adc.c
index 9460740..f54acc7 100644
--- a/hw/mcu/native/src/hal_adc.c
+++ b/hw/mcu/native/src/hal_adc.c
@@ -16,6 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
+#if 0
#include <fcntl.h>
#include <unistd.h>
#include <inttypes.h>
@@ -23,7 +24,6 @@
#include <hal/hal_adc.h>
#include <hal/hal_adc_int.h>
#include <mcu/mcu_hal.h>
-#if 1
/* forwards for the const structure below */
@@ -236,4 +236,4 @@ native_adc_file_read(struct hal_adc *padc)
return -1;
}
-#endif
\ No newline at end of file
+#endif
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/mcu/native/src/hal_dac.c
----------------------------------------------------------------------
diff --git a/hw/mcu/native/src/hal_dac.c b/hw/mcu/native/src/hal_dac.c
index 9f60879..d5055ce 100644
--- a/hw/mcu/native/src/hal_dac.c
+++ b/hw/mcu/native/src/hal_dac.c
@@ -1,3 +1,4 @@
+#if 0
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -111,3 +112,4 @@ native_dac_write(struct hal_dac *pdac, int val)
}
return -1;
}
+#endif
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/mcu/native/src/hal_pwm.c
----------------------------------------------------------------------
diff --git a/hw/mcu/native/src/hal_pwm.c b/hw/mcu/native/src/hal_pwm.c
index 5d0688b..032bcad 100644
--- a/hw/mcu/native/src/hal_pwm.c
+++ b/hw/mcu/native/src/hal_pwm.c
@@ -1,3 +1,4 @@
+#if 0
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -130,4 +131,4 @@ native_pwm_enable_duty(struct hal_pwm *ppwm, uint16_t fraction)
}
return -2;
}
-
+#endif
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/mcu/nordic/nrf51xxx/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/nrf51xxx/pkg.yml b/hw/mcu/nordic/nrf51xxx/pkg.yml
index 7ecb890..4485725 100644
--- a/hw/mcu/nordic/nrf51xxx/pkg.yml
+++ b/hw/mcu/nordic/nrf51xxx/pkg.yml
@@ -24,9 +24,6 @@ pkg.homepage: "http://mynewt.apache.org/"
pkg.keywords:
- nrf51
-pkg.features:
- - NRF51
-
pkg.deps:
- hw/hal
- libs/cmsis-core
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/mcu/nordic/nrf52xxx/include/mcu/cortex_m4.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/nrf52xxx/include/mcu/cortex_m4.h b/hw/mcu/nordic/nrf52xxx/include/mcu/cortex_m4.h
index 138a931..09e9c93 100644
--- a/hw/mcu/nordic/nrf52xxx/include/mcu/cortex_m4.h
+++ b/hw/mcu/nordic/nrf52xxx/include/mcu/cortex_m4.h
@@ -20,9 +20,10 @@
#ifndef __MCU_CORTEX_M4_H__
#define __MCU_CORTEX_M4_H__
+#include "syscfg/syscfg.h"
#include "nrf52.h"
-#if defined(BSP_HAS_32768_XTAL)
+#if MYNEWT_VAL(XTAL_32768)
#define OS_TICKS_PER_SEC (128)
#else
#define OS_TICKS_PER_SEC (1000)
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/mcu/nordic/nrf52xxx/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/nrf52xxx/pkg.yml b/hw/mcu/nordic/nrf52xxx/pkg.yml
index 707765e..27fdb70 100644
--- a/hw/mcu/nordic/nrf52xxx/pkg.yml
+++ b/hw/mcu/nordic/nrf52xxx/pkg.yml
@@ -24,9 +24,6 @@ pkg.homepage: "http://mynewt.apache.org/"
pkg.keywords:
- nrf52
-pkg.features:
- - NRF52
-
pkg.deps:
- hw/hal
- hw/mcu/nordic
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/mcu/nordic/nrf52xxx/src/hal_os_tick.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/nrf52xxx/src/hal_os_tick.c b/hw/mcu/nordic/nrf52xxx/src/hal_os_tick.c
index 2b5d58f..a96e13a 100644
--- a/hw/mcu/nordic/nrf52xxx/src/hal_os_tick.c
+++ b/hw/mcu/nordic/nrf52xxx/src/hal_os_tick.c
@@ -18,11 +18,12 @@
*/
#include <assert.h>
#include <os/os.h>
-#include <hal/hal_os_tick.h>
-#include <nrf52_bitfields.h>
-#include <bsp/cmsis_nvic.h>
+#include "syscfg/syscfg.h"
+#include "hal/hal_os_tick.h"
+#include "nrf52_bitfields.h"
+#include "bsp/cmsis_nvic.h"
-#if defined(BSP_HAS_32768_XTAL)
+#if MYNEWT_VAL(XTAL_32768)
#define RTC_FREQ 32768 /* in Hz */
#define OS_TICK_TIMER NRF_RTC1
#define OS_TICK_IRQ RTC1_IRQn
@@ -85,7 +86,7 @@ nrf52_os_tick_counter(void)
*/
OS_ASSERT_CRITICAL();
-#if defined(BSP_HAS_32768_XTAL)
+#if MYNEWT_VAL(XTAL_32768)
return OS_TICK_TIMER->COUNTER;
#else
/*
@@ -103,7 +104,7 @@ nrf52_os_tick_set_ocmp(uint32_t ocmp)
OS_ASSERT_CRITICAL();
while (1) {
-#if defined(BSP_HAS_32768_XTAL)
+#if MYNEWT_VAL(XTAL_32768)
int delta;
ocmp &= 0xffffff;
@@ -143,7 +144,7 @@ nrf52_timer_handler(void)
OS_ENTER_CRITICAL(sr);
/* Calculate elapsed ticks and advance OS time. */
-#if defined(BSP_HAS_32768_XTAL)
+#if MYNEWT_VAL(XTAL_32768)
int delta;
counter = nrf52_os_tick_counter();
@@ -205,7 +206,7 @@ os_tick_idle(os_time_t ticks)
}
}
-#if defined(BSP_HAS_32768_XTAL)
+#if MYNEWT_VAL(XTAL_32768)
void
os_tick_init(uint32_t os_ticks_per_sec, int prio)
{
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/hw/mcu/nordic/pkg.yml
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/pkg.yml b/hw/mcu/nordic/pkg.yml
index 4c84dca..c695143 100644
--- a/hw/mcu/nordic/pkg.yml
+++ b/hw/mcu/nordic/pkg.yml
@@ -26,12 +26,12 @@ pkg.keywords:
pkg.type: sdk
-pkg.ign_files.NRF52:
+pkg.ign_files.BSP_NRF52:
- "nrf_drv_adc.c"
- "pstorage*"
- "sdk_mapped_flags.c"
-pkg.ign_files.NRF51:
+pkg.ign_files.BSP_NRF51:
- "nrf_saadc.c"
- "nrf_drv_saadc.c"
- "nrf_drv_comp.c"
@@ -57,4 +57,3 @@ pkg.cflags: -std=gnu99 -DNRF52_PAN_28
pkg.deps:
- hw/hal
- libs/cmsis-core
- - compiler/arm-none-eabi-m4
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/baselibc/pkg.yml
----------------------------------------------------------------------
diff --git a/libs/baselibc/pkg.yml b/libs/baselibc/pkg.yml
index b0a947c..d7e3110 100644
--- a/libs/baselibc/pkg.yml
+++ b/libs/baselibc/pkg.yml
@@ -26,7 +26,3 @@ pkg.keywords:
pkg.req_apis:
- console
-pkg.features:
- - LIBC
- - BASELIBC
-
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/bleuart/include/bleuart/bleuart.h
----------------------------------------------------------------------
diff --git a/libs/bleuart/include/bleuart/bleuart.h b/libs/bleuart/include/bleuart/bleuart.h
index 14ae930..6639747 100644
--- a/libs/bleuart/include/bleuart/bleuart.h
+++ b/libs/bleuart/include/bleuart/bleuart.h
@@ -20,12 +20,12 @@
#ifndef _BLEUART_H_
#define _BLEUART_H_
-int
-bleuart_init(int max_input);
+void
+bleuart_init(void);
int
bleuart_svc_register(void);
int
-bleuart_gatt_svr_init(struct ble_hs_cfg *cfg);
+bleuart_gatt_svr_init(void);
void
bleuart_set_conn_handle(uint16_t conn_handle);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/bleuart/pkg.yml
----------------------------------------------------------------------
diff --git a/libs/bleuart/pkg.yml b/libs/bleuart/pkg.yml
index 5173293..272f53d 100644
--- a/libs/bleuart/pkg.yml
+++ b/libs/bleuart/pkg.yml
@@ -32,3 +32,11 @@ pkg.deps:
pkg.req_apis:
- console
+
+pkg.init_function: bleuart_init
+pkg.init_stage: 5
+
+pkg.syscfg_defs:
+ BLEUART_MAX_INPUT:
+ description: 'TBD'
+ value: 120
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/bleuart/src/bleuart.c
----------------------------------------------------------------------
diff --git a/libs/bleuart/src/bleuart.c b/libs/bleuart/src/bleuart.c
index 81e433c..b7b2591 100644
--- a/libs/bleuart/src/bleuart.c
+++ b/libs/bleuart/src/bleuart.c
@@ -20,10 +20,12 @@
#include <assert.h>
#include <stdio.h>
#include <string.h>
+
+#include "sysinit/sysinit.h"
#include "host/ble_hs.h"
-#include <bleuart/bleuart.h>
-#include <os/endian.h>
-#include <console/console.h>
+#include "bleuart/bleuart.h"
+#include "os/endian.h"
+#include "console/console.h"
/* ble uart attr read handle */
uint16_t g_bleuart_attr_read_handle;
@@ -34,9 +36,6 @@ uint16_t g_bleuart_attr_write_handle;
/* Pointer to a console buffer */
char *console_buf;
-/* Console max input */
-uint16_t console_max_input;
-
uint16_t g_console_conn_handle;
/**
* The vendor specific "bleuart" service consists of one write no-rsp characteristic
@@ -122,11 +121,11 @@ gatt_svr_chr_access_uart_write(uint16_t conn_handle, uint16_t attr_handle,
* @return 0 on success; non-zero on failure
*/
int
-bleuart_gatt_svr_init(struct ble_hs_cfg *cfg)
+bleuart_gatt_svr_init(void)
{
int rc;
- rc = ble_gatts_count_cfg(gatt_svr_svcs, cfg);
+ rc = ble_gatts_count_cfg(gatt_svr_svcs);
if (rc != 0) {
goto err;
}
@@ -154,7 +153,7 @@ bleuart_uart_read(void)
off = 0;
while (1) {
rc = console_read(console_buf + off,
- console_max_input - off, &full_line);
+ MYNEWT_VAL(BLEUART_MAX_INPUT) - off, &full_line);
if (rc <= 0 && !full_line) {
continue;
}
@@ -189,16 +188,14 @@ bleuart_set_conn_handle(uint16_t conn_handle) {
*
* @param Maximum input
*/
-int
-bleuart_init(int max_input)
+void
+bleuart_init(void)
{
int rc;
rc = console_init(bleuart_uart_read);
- assert(rc == 0);
+ SYSINIT_PANIC_ASSERT(rc == 0);
- console_buf = malloc(max_input);
- console_max_input = max_input;
- assert(console_buf);
- return 0;
+ console_buf = malloc(MYNEWT_VAL(BLEUART_MAX_INPUT));
+ SYSINIT_PANIC_ASSERT(console_buf != NULL);
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/boot_serial/pkg.yml
----------------------------------------------------------------------
diff --git a/libs/boot_serial/pkg.yml b/libs/boot_serial/pkg.yml
index 4a98343..b556e13 100644
--- a/libs/boot_serial/pkg.yml
+++ b/libs/boot_serial/pkg.yml
@@ -28,8 +28,8 @@ pkg.keywords:
pkg.deps:
- hw/hal
- libs/os
- - libs/testutil
- libs/bootutil
- libs/util
+
pkg.req_apis:
- console
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/boot_serial/src/test/boot_test.c
----------------------------------------------------------------------
diff --git a/libs/boot_serial/src/test/boot_test.c b/libs/boot_serial/src/test/boot_test.c
deleted file mode 100644
index e11a649..0000000
--- a/libs/boot_serial/src/test/boot_test.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <assert.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <inttypes.h>
-#include <util/base64.h>
-#include <util/crc16.h>
-#include <testutil/testutil.h>
-#include <hal/hal_flash.h>
-#include <hal/flash_map.h>
-
-#include "../boot_serial_priv.h"
-
-void
-tx_msg(void *src, int len)
-{
- char *msg;
- char *enc;
- int off;
- uint16_t crc;
-
- crc = htons(crc16_ccitt(CRC16_INITIAL_CRC, src, len));
-
- /*
- * Lazy, malloc a buffer, fill it and send it.
- */
- msg = malloc(len + 2 * sizeof(uint16_t));
- assert(msg);
-
- *(uint16_t *)msg = ntohs(len + sizeof(uint16_t));
- off = sizeof(uint16_t);
- memcpy(&msg[off], src, len);
- off += len;
- memcpy(&msg[off], &crc, sizeof(crc));
- off += sizeof(uint16_t);
-
- enc = malloc(BASE64_ENCODE_SIZE(off) + 1);
- assert(enc);
-
- off = base64_encode(msg, off, enc, 1);
- assert(off > 0);
-
- boot_serial_input(enc, off + 1);
-
- free(enc);
- free(msg);
-}
-
-TEST_CASE(boot_serial_setup)
-{
-
-}
-
-TEST_CASE(boot_serial_empty_msg)
-{
- char buf[4];
- struct nmgr_hdr hdr;
-
- boot_serial_input(buf, 0);
-
- tx_msg(buf, 0);
-
- strcpy(buf, "--");
- tx_msg(buf, 2);
-
- memset(&hdr, 0, sizeof(hdr));
- tx_msg(&hdr, sizeof(hdr));
-
- hdr.nh_op = NMGR_OP_WRITE;
-
- tx_msg(&hdr, sizeof(hdr));
-}
-
-TEST_CASE(boot_serial_empty_img_msg)
-{
- char buf[sizeof(struct nmgr_hdr) + 32];
- struct nmgr_hdr *hdr;
-
- hdr = (struct nmgr_hdr *)buf;
- memset(hdr, 0, sizeof(*hdr));
- hdr->nh_op = NMGR_OP_WRITE;
- hdr->nh_group = htons(NMGR_GROUP_ID_IMAGE);
- hdr->nh_id = IMGMGR_NMGR_OP_UPLOAD;
- hdr->nh_len = htons(2);
- strcpy((char *)(hdr + 1), "{}");
-
- tx_msg(buf, sizeof(*hdr) + 2);
-}
-
-TEST_CASE(boot_serial_img_msg)
-{
- char img[16];
- char enc_img[BASE64_ENCODE_SIZE(sizeof(img))];
- char buf[sizeof(struct nmgr_hdr) + sizeof(enc_img) + 32];
- int len;
- int rc;
- struct nmgr_hdr *hdr;
- const struct flash_area *fap;
-
- memset(img, 0xa5, sizeof(img));
- len = base64_encode(img, sizeof(img), enc_img, 1);
- assert(len > 0);
-
- hdr = (struct nmgr_hdr *)buf;
- memset(hdr, 0, sizeof(*hdr));
- hdr->nh_op = NMGR_OP_WRITE;
- hdr->nh_group = htons(NMGR_GROUP_ID_IMAGE);
- hdr->nh_id = IMGMGR_NMGR_OP_UPLOAD;
-
- len = sprintf((char *)(hdr + 1), "{\"off\":0,\"len\":16,\"data\":\"%s\"}",
- enc_img);
- hdr->nh_len = htons(len);
-
- len = sizeof(*hdr) + len;
-
- tx_msg(buf, len);
-
- /*
- * Validate contents inside image 0 slot
- */
- rc = flash_area_open(FLASH_AREA_IMAGE_0, &fap);
- assert(rc == 0);
-
- rc = flash_area_read(fap, 0, enc_img, sizeof(img));
- assert(rc == 0);
- assert(!memcmp(enc_img, img, sizeof(img)));
-}
-
-TEST_CASE(boot_serial_upload_bigger_image)
-{
- char img[256];
- char enc_img[64];
- char buf[sizeof(struct nmgr_hdr) + 128];
- int len;
- int off;
- int rc;
- struct nmgr_hdr *hdr;
- const struct flash_area *fap;
- int i;
-
- for (i = 0; i < sizeof(img); i++) {
- img[i] = i;
- }
-
- for (off = 0; off < sizeof(img); off += 32) {
- len = base64_encode(&img[off], 32, enc_img, 1);
- assert(len > 0);
-
- hdr = (struct nmgr_hdr *)buf;
- memset(hdr, 0, sizeof(*hdr));
- hdr->nh_op = NMGR_OP_WRITE;
- hdr->nh_group = htons(NMGR_GROUP_ID_IMAGE);
- hdr->nh_id = IMGMGR_NMGR_OP_UPLOAD;
-
- if (off) {
- len = sprintf((char *)(hdr + 1), "{\"off\":%d,\"data\":\"%s\"}",
- off, enc_img);
- } else {
- len = sprintf((char *)(hdr + 1), "{\"off\": 0 ,\"len\":%ld, "
- "\"data\":\"%s\"}", (long)sizeof(img), enc_img);
- }
- hdr->nh_len = htons(len);
-
- len = sizeof(*hdr) + len;
-
- tx_msg(buf, len);
- }
-
- /*
- * Validate contents inside image 0 slot
- */
- rc = flash_area_open(FLASH_AREA_IMAGE_0, &fap);
- assert(rc == 0);
-
- for (off = 0; off < sizeof(img); off += sizeof(enc_img)) {
- rc = flash_area_read(fap, off, enc_img, sizeof(enc_img));
- assert(rc == 0);
- assert(!memcmp(enc_img, &img[off], sizeof(enc_img)));
- }
-}
-
-TEST_SUITE(boot_serial_suite)
-{
- boot_serial_setup();
- boot_serial_empty_msg();
- boot_serial_empty_img_msg();
- boot_serial_img_msg();
- boot_serial_upload_bigger_image();
-}
-
-int
-boot_serial_test(void)
-{
- boot_serial_suite();
- return tu_any_failed;
-}
-
-#ifdef MYNEWT_SELFTEST
-int
-main(void)
-{
- tu_config.tc_print_results = 1;
- tu_init();
-
- boot_serial_test();
-
- return tu_any_failed;
-}
-
-#endif
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/boot_serial/test/pkg.yml
----------------------------------------------------------------------
diff --git a/libs/boot_serial/test/pkg.yml b/libs/boot_serial/test/pkg.yml
new file mode 100644
index 0000000..e123ce1
--- /dev/null
+++ b/libs/boot_serial/test/pkg.yml
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+pkg.name: libs/boot_serial/test
+pkg.type: unittest
+pkg.description: "Boot serial unit tests."
+pkg.author: "Apache Mynewt <de...@mynewt.incubator.apache.org>"
+pkg.homepage: "http://mynewt.apache.org/"
+pkg.keywords:
+
+pkg.deps:
+ - libs/boot_serial
+ - libs/testutil
+
+pkg.deps.SELFTEST:
+ - libs/console/stub
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/boot_serial/test/src/boot_test.c
----------------------------------------------------------------------
diff --git a/libs/boot_serial/test/src/boot_test.c b/libs/boot_serial/test/src/boot_test.c
new file mode 100644
index 0000000..853a391
--- /dev/null
+++ b/libs/boot_serial/test/src/boot_test.c
@@ -0,0 +1,231 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#include <assert.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <inttypes.h>
+#include "syscfg/syscfg.h"
+#include "util/base64.h"
+#include "util/crc16.h"
+#include "testutil/testutil.h"
+#include "hal/hal_flash.h"
+#include "hal/flash_map.h"
+
+#include "boot_serial_priv.h"
+
+void
+tx_msg(void *src, int len)
+{
+ char *msg;
+ char *enc;
+ int off;
+ uint16_t crc;
+
+ crc = htons(crc16_ccitt(CRC16_INITIAL_CRC, src, len));
+
+ /*
+ * Lazy, malloc a buffer, fill it and send it.
+ */
+ msg = malloc(len + 2 * sizeof(uint16_t));
+ assert(msg);
+
+ *(uint16_t *)msg = ntohs(len + sizeof(uint16_t));
+ off = sizeof(uint16_t);
+ memcpy(&msg[off], src, len);
+ off += len;
+ memcpy(&msg[off], &crc, sizeof(crc));
+ off += sizeof(uint16_t);
+
+ enc = malloc(BASE64_ENCODE_SIZE(off) + 1);
+ assert(enc);
+
+ off = base64_encode(msg, off, enc, 1);
+ assert(off > 0);
+
+ boot_serial_input(enc, off + 1);
+
+ free(enc);
+ free(msg);
+}
+
+TEST_CASE(boot_serial_setup)
+{
+
+}
+
+TEST_CASE(boot_serial_empty_msg)
+{
+ char buf[4];
+ struct nmgr_hdr hdr;
+
+ boot_serial_input(buf, 0);
+
+ tx_msg(buf, 0);
+
+ strcpy(buf, "--");
+ tx_msg(buf, 2);
+
+ memset(&hdr, 0, sizeof(hdr));
+ tx_msg(&hdr, sizeof(hdr));
+
+ hdr.nh_op = NMGR_OP_WRITE;
+
+ tx_msg(&hdr, sizeof(hdr));
+}
+
+TEST_CASE(boot_serial_empty_img_msg)
+{
+ char buf[sizeof(struct nmgr_hdr) + 32];
+ struct nmgr_hdr *hdr;
+
+ hdr = (struct nmgr_hdr *)buf;
+ memset(hdr, 0, sizeof(*hdr));
+ hdr->nh_op = NMGR_OP_WRITE;
+ hdr->nh_group = htons(NMGR_GROUP_ID_IMAGE);
+ hdr->nh_id = IMGMGR_NMGR_OP_UPLOAD;
+ hdr->nh_len = htons(2);
+ strcpy((char *)(hdr + 1), "{}");
+
+ tx_msg(buf, sizeof(*hdr) + 2);
+}
+
+TEST_CASE(boot_serial_img_msg)
+{
+ char img[16];
+ char enc_img[BASE64_ENCODE_SIZE(sizeof(img))];
+ char buf[sizeof(struct nmgr_hdr) + sizeof(enc_img) + 32];
+ int len;
+ int rc;
+ struct nmgr_hdr *hdr;
+ const struct flash_area *fap;
+
+ memset(img, 0xa5, sizeof(img));
+ len = base64_encode(img, sizeof(img), enc_img, 1);
+ assert(len > 0);
+
+ hdr = (struct nmgr_hdr *)buf;
+ memset(hdr, 0, sizeof(*hdr));
+ hdr->nh_op = NMGR_OP_WRITE;
+ hdr->nh_group = htons(NMGR_GROUP_ID_IMAGE);
+ hdr->nh_id = IMGMGR_NMGR_OP_UPLOAD;
+
+ len = sprintf((char *)(hdr + 1), "{\"off\":0,\"len\":16,\"data\":\"%s\"}",
+ enc_img);
+ hdr->nh_len = htons(len);
+
+ len = sizeof(*hdr) + len;
+
+ tx_msg(buf, len);
+
+ /*
+ * Validate contents inside image 0 slot
+ */
+ rc = flash_area_open(FLASH_AREA_IMAGE_0, &fap);
+ assert(rc == 0);
+
+ rc = flash_area_read(fap, 0, enc_img, sizeof(img));
+ assert(rc == 0);
+ assert(!memcmp(enc_img, img, sizeof(img)));
+}
+
+TEST_CASE(boot_serial_upload_bigger_image)
+{
+ char img[256];
+ char enc_img[64];
+ char buf[sizeof(struct nmgr_hdr) + 128];
+ int len;
+ int off;
+ int rc;
+ struct nmgr_hdr *hdr;
+ const struct flash_area *fap;
+ int i;
+
+ for (i = 0; i < sizeof(img); i++) {
+ img[i] = i;
+ }
+
+ for (off = 0; off < sizeof(img); off += 32) {
+ len = base64_encode(&img[off], 32, enc_img, 1);
+ assert(len > 0);
+
+ hdr = (struct nmgr_hdr *)buf;
+ memset(hdr, 0, sizeof(*hdr));
+ hdr->nh_op = NMGR_OP_WRITE;
+ hdr->nh_group = htons(NMGR_GROUP_ID_IMAGE);
+ hdr->nh_id = IMGMGR_NMGR_OP_UPLOAD;
+
+ if (off) {
+ len = sprintf((char *)(hdr + 1), "{\"off\":%d,\"data\":\"%s\"}",
+ off, enc_img);
+ } else {
+ len = sprintf((char *)(hdr + 1), "{\"off\": 0 ,\"len\":%ld, "
+ "\"data\":\"%s\"}", (long)sizeof(img), enc_img);
+ }
+ hdr->nh_len = htons(len);
+
+ len = sizeof(*hdr) + len;
+
+ tx_msg(buf, len);
+ }
+
+ /*
+ * Validate contents inside image 0 slot
+ */
+ rc = flash_area_open(FLASH_AREA_IMAGE_0, &fap);
+ assert(rc == 0);
+
+ for (off = 0; off < sizeof(img); off += sizeof(enc_img)) {
+ rc = flash_area_read(fap, off, enc_img, sizeof(enc_img));
+ assert(rc == 0);
+ assert(!memcmp(enc_img, &img[off], sizeof(enc_img)));
+ }
+}
+
+TEST_SUITE(boot_serial_suite)
+{
+ boot_serial_setup();
+ boot_serial_empty_msg();
+ boot_serial_empty_img_msg();
+ boot_serial_img_msg();
+ boot_serial_upload_bigger_image();
+}
+
+int
+boot_serial_test(void)
+{
+ boot_serial_suite();
+ return tu_any_failed;
+}
+
+#if MYNEWT_VAL(SELFTEST)
+int
+main(void)
+{
+ tu_config.tc_print_results = 1;
+ tu_init();
+
+ boot_serial_test();
+
+ return tu_any_failed;
+}
+
+#endif
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/bootutil/pkg.yml
----------------------------------------------------------------------
diff --git a/libs/bootutil/pkg.yml b/libs/bootutil/pkg.yml
index 53c741c..f9d2f70 100644
--- a/libs/bootutil/pkg.yml
+++ b/libs/bootutil/pkg.yml
@@ -26,15 +26,24 @@ pkg.keywords:
- bootloader
pkg.deps:
- - libs/os
- - libs/testutil
- - libs/mbedtls
- hw/hal
+ - libs/mbedtls
+ - libs/os
- sys/config
-pkg.deps.FS:
- - fs/fs
-pkg.cflags.NFFS: -DUSE_STATUS_FILE
+pkg.deps.BOOTUTIL_NFFS:
+ - fs/nffs
+
+pkg.init_function: bootutil_pkg_init
+pkg.init_stage: 5
-pkg.cflags.IMAGE_KEYS_RSA: -DIMAGE_SIGNATURES_RSA
-pkg.cflags.IMAGE_KEYS_EC: -DIMAGE_SIGNATURES_EC
+pkg.syscfg_defs:
+ BOOTUTIL_NFFS:
+ description: 'TBD'
+ value: 'MYNEWT_PKG_FS_NFFS'
+ BOOTUTIL_SIGN_RSA:
+ description: 'TBD'
+ value: '0'
+ BOOTUTIL_SIGN_EC:
+ description: 'TBD'
+ value: '0'
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/bootutil/src/bootutil_misc.c
----------------------------------------------------------------------
diff --git a/libs/bootutil/src/bootutil_misc.c b/libs/bootutil/src/bootutil_misc.c
index 94536ef..17052fe 100644
--- a/libs/bootutil/src/bootutil_misc.c
+++ b/libs/bootutil/src/bootutil_misc.c
@@ -19,22 +19,24 @@
#include <string.h>
#include <inttypes.h>
-#include <hal/hal_flash.h>
-#include <config/config.h>
-#include <os/os.h>
+
+#include "syscfg/syscfg.h"
+#include "hal/hal_flash.h"
+#include "config/config.h"
+#include "os/os.h"
#include "bootutil/image.h"
#include "bootutil_priv.h"
-#ifdef USE_STATUS_FILE
-#include <fs/fs.h>
-#include <fs/fsutil.h>
+#if MYNEWT_VAL(BOOTUTIL_NFFS)
+#include "fs/fs.h"
+#include "fs/fsutil.h"
#endif
static int boot_conf_set(int argc, char **argv, char *val);
static struct image_version boot_main;
static struct image_version boot_test;
-#ifndef USE_STATUS_FILE
+#if !MYNEWT_VAL(BOOTUTIL_NFFS)
static struct boot_status boot_saved;
#endif
@@ -69,7 +71,7 @@ boot_conf_set(int argc, char **argv, char *val)
memset(&boot_test, 0, len);
rc = 0;
}
-#ifndef USE_STATUS_FILE
+#if !MYNEWT_VAL(BOOTUTIL_NFFS)
} else if (!strcmp(argv[0], "status")) {
if (!val) {
boot_saved.state = 0;
@@ -237,7 +239,7 @@ bootutil_cfg_register(void)
conf_register(&boot_conf_handler);
}
-#ifndef USE_STATUS_FILE
+#if !MYNEWT_VAL(BOOTUTIL_NFFS)
int
boot_read_status(struct boot_status *bs)
{
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/bootutil/src/image_ec.c
----------------------------------------------------------------------
diff --git a/libs/bootutil/src/image_ec.c b/libs/bootutil/src/image_ec.c
index 6b21ab2..f3adfcf 100644
--- a/libs/bootutil/src/image_ec.c
+++ b/libs/bootutil/src/image_ec.c
@@ -16,13 +16,16 @@
* specific language governing permissions and limitations
* under the License.
*/
-#ifdef IMAGE_SIGNATURES_EC
-#include <bootutil/sign_key.h>
-#include <mbedtls/sha256.h>
-#include <mbedtls/ecdsa.h>
-#include <mbedtls/oid.h>
-#include <mbedtls/asn1.h>
+#include "syscfg/syscfg.h"
+
+#if MYNEWT_VAL(BOOTUTIL_SIGN_EC)
+#include "bootutil/sign_key.h"
+
+#include "mbedtls/sha256.h"
+#include "mbedtls/ecdsa.h"
+#include "mbedtls/oid.h"
+#include "mbedtls/asn1.h"
#include "bootutil_priv.h"
@@ -115,4 +118,4 @@ bootutil_verify_sig(uint8_t *hash, uint32_t hlen, uint8_t *sig, int slen,
return rc;
}
-#endif /* IMAGE_SIGNATURES_EC */
+#endif /* MYNEWT_VAL(BOOTUTIL_SIGN_EC) */
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/bootutil/src/image_rsa.c
----------------------------------------------------------------------
diff --git a/libs/bootutil/src/image_rsa.c b/libs/bootutil/src/image_rsa.c
index 8f02329..e556092 100644
--- a/libs/bootutil/src/image_rsa.c
+++ b/libs/bootutil/src/image_rsa.c
@@ -16,11 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-#ifdef IMAGE_SIGNATURES_RSA
-#include <bootutil/sign_key.h>
-#include <mbedtls/rsa.h>
-#include <mbedtls/asn1.h>
+#include "syscfg/syscfg.h"
+
+#if MYNEWT_VAL(BOOTUTIL_SIGN_RSA)
+#include "bootutil/sign_key.h"
+
+#include "mbedtls/rsa.h"
+#include "mbedtls/asn1.h"
#include "bootutil_priv.h"
@@ -138,4 +141,4 @@ bootutil_verify_sig(uint8_t *hash, uint32_t hlen, uint8_t *sig, int slen,
return rc;
}
-#endif /* IMAGE_SIGNATURES_RSA */
+#endif /* MYNEWT_VAL(BOOTUTIL_SIGN_RSA) */
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/bootutil/src/image_validate.c
----------------------------------------------------------------------
diff --git a/libs/bootutil/src/image_validate.c b/libs/bootutil/src/image_validate.c
index b491790..17820aa 100644
--- a/libs/bootutil/src/image_validate.c
+++ b/libs/bootutil/src/image_validate.c
@@ -21,15 +21,16 @@
#include <stddef.h>
#include <inttypes.h>
#include <string.h>
-#include <hal/hal_flash.h>
-#include <bootutil/image.h>
-#include <bootutil/sign_key.h>
+#include "syscfg/syscfg.h"
+#include "hal/hal_flash.h"
+#include "bootutil/image.h"
+#include "bootutil/sign_key.h"
-#include <mbedtls/sha256.h>
-#include <mbedtls/rsa.h>
-#include <mbedtls/ecdsa.h>
-#include <mbedtls/asn1.h>
+#include "mbedtls/sha256.h"
+#include "mbedtls/rsa.h"
+#include "mbedtls/ecdsa.h"
+#include "mbedtls/asn1.h"
#include "bootutil_priv.h"
@@ -83,7 +84,7 @@ bootutil_img_validate(struct image_header *hdr, uint8_t flash_id, uint32_t addr,
uint32_t off;
uint32_t size;
uint32_t sha_off = 0;
-#if defined(IMAGE_SIGNATURES_RSA) || defined(IMAGE_SIGNATURES_EC)
+#if MYNEWT_VAL(BOOTUTIL_SIGN_RSA) || MYNEWT_VAL(BOOTUTIL_SIGN_EC)
uint32_t sig_off = 0;
uint32_t sig_len = 0;
#endif
@@ -92,12 +93,12 @@ bootutil_img_validate(struct image_header *hdr, uint8_t flash_id, uint32_t addr,
uint8_t hash[32];
int rc;
-#ifdef IMAGE_SIGNATURES_RSA
+#if MYNEWT_VAL(BOOTUTIL_SIGN_RSA)
if ((hdr->ih_flags & IMAGE_F_PKCS15_RSA2048_SHA256) == 0) {
return -1;
}
#endif
-#ifdef IMAGE_SIGNATURES_EC
+#if MYNEWT_VAL(BOOTUTIL_SIGN_EC)
if ((hdr->ih_flags & IMAGE_F_ECDSA224_SHA256) == 0) {
return -1;
}
@@ -128,7 +129,7 @@ bootutil_img_validate(struct image_header *hdr, uint8_t flash_id, uint32_t addr,
}
sha_off = addr + off + sizeof(tlv);
}
-#ifdef IMAGE_SIGNATURES_RSA
+#if MYNEWT_VAL(BOOTUTIL_SIGN_RSA)
if (tlv.it_type == IMAGE_TLV_RSA2048) {
if (tlv.it_len != 256) { /* 2048 bits */
return -1;
@@ -137,7 +138,7 @@ bootutil_img_validate(struct image_header *hdr, uint8_t flash_id, uint32_t addr,
sig_len = tlv.it_len;
}
#endif
-#ifdef IMAGE_SIGNATURES_EC
+#if MYNEWT_VAL(BOOTUTIL_SIGN_EC)
if (tlv.it_type == IMAGE_TLV_ECDSA224) {
if (tlv.it_len < 64) { /* oids + 2 * 28 bytes */
return -1;
@@ -162,7 +163,7 @@ bootutil_img_validate(struct image_header *hdr, uint8_t flash_id, uint32_t addr,
return -1;
}
}
-#if defined(IMAGE_SIGNATURES_RSA) || defined(IMAGE_SIGNATURES_EC)
+#if MYNEWT_VAL(BOOTUTIL_SIGN_RSA) || MYNEWT_VAL(BOOTUTIL_SIGN_EC)
if (!sig_off) {
/*
* Header said there should be PKCS1.v5 signature, no TLV
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/bootutil/src/loader.c
----------------------------------------------------------------------
diff --git a/libs/bootutil/src/loader.c b/libs/bootutil/src/loader.c
index bd7fbd8..6d08b9a 100644
--- a/libs/bootutil/src/loader.c
+++ b/libs/bootutil/src/loader.c
@@ -499,3 +499,9 @@ boot_go(const struct boot_req *req, struct boot_rsp *rsp)
return 0;
}
+
+void
+bootutil_pkg_init(void)
+{
+ bootutil_cfg_register();
+}