29.11.2017, 21:34, "marko kiiskila" <[email protected]>:
> I don’t think the system is even booting properly.
> If you run it under debugger, can you verify that you’re not reaching main()?
Looks like it crashes before reaching main:
(gdb) load
Loading section .text, size 0x119a8 lma 0x8020
Loading section .ARM.exidx, size 0x18 lma 0x199c8
Loading section .data, size 0x25c lma 0x199e0
Start address 0x80e0, load size 72732
Transfer rate: 11837 KB/sec, 10390 bytes/write.
(gdb) bt
#0 Reset_Handler () at
repos/apache-mynewt-core/hw/bsp/nrf51dk/src/arch/cortex_m0/gcc_startup_nrf51.s:140
(gdb) b main
Breakpoint 1 at 0x84dc: file
repos/apache-mynewt-core/apps/lora_app_shell/src/main.c, line 128.
(gdb) c
Continuing.
Program received signal SIGTRAP, Trace/breakpoint trap.
0xfffffffe in ?? ()
(gdb) bt
#0 0xfffffffe in ?? ()
#1 0x0000edea in console_out (c=48) at
repos/apache-mynewt-core/sys/console/full/src/uart_console.c:142
#2 0x0000e8f0 in console_write (str=<optimized out>, cnt=cnt@entry=1) at
repos/apache-mynewt-core/sys/console/full/src/console.c:99
#3 0x000140b8 in stdout_write (fp=<optimized out>, bp=<optimized out>, n=1) at
repos/apache-mynewt-core/libc/baselibc/src/mynewt.c:32
#4 0x000142b8 in fwrite (stream=0x140b9 <stdout_write+12>, nmemb=1, size=1,
buf=0x20007dff)
at repos/apache-mynewt-core/libc/baselibc/include/stdio.h:59
#5 fputc (f=0x140b9 <stdout_write+12>, c=48) at
repos/apache-mynewt-core/libc/baselibc/include/stdio.h:75
#6 putf (putp=putp@entry=0x20000318 <_stdin>, c=c@entry=48 '0') at
repos/apache-mynewt-core/libc/baselibc/src/tinyprintf.c:137
#7 0x000143a8 in putchw (putp=putp@entry=0x20000318 <_stdin>,
p=p@entry=0x20007e48)
at repos/apache-mynewt-core/libc/baselibc/src/tinyprintf.c:181
#8 0x000145ba in tfp_format (putp=0x20000318 <_stdin>, fmt=0x18bc5 " ",
fmt@entry=0x1 "\200", va=...)
at repos/apache-mynewt-core/libc/baselibc/src/tinyprintf.c:302
#9 0x00014714 in vfprintf (va=..., fmt=0x1 "\200", f=<optimized out>) at
repos/apache-mynewt-core/libc/baselibc/src/tinyprintf.c:355
#10 printf (fmt=0x18bc0 "%06lu ") at
repos/apache-mynewt-core/libc/baselibc/src/tinyprintf.c:371
#11 0x0000ec58 in console_printf (fmt=0x180e0 "Assert @ 0x%x\n") at
repos/apache-mynewt-core/sys/console/full/src/console_fmt.c:50
#12 0x00009054 in __assert_func (file=file@entry=0x18204
"repos/apache-mynewt-core/kernel/os/src/os.c", line=line@entry=186,
func=func@entry=0x0, e=e@entry=0x0) at
repos/apache-mynewt-core/kernel/os/src/arch/cortex_m0/os_fault.c:119
#13 0x00009258 in os_init (main_fn=0x84dd <main>) at
repos/apache-mynewt-core/kernel/os/src/os.c:186
#14 0x000082ec in _start () at
repos/apache-mynewt-core/libc/baselibc/src/start.c:37
#15 0x00008122 in Reset_Handler () at
repos/apache-mynewt-core/hw/bsp/nrf51dk/src/arch/cortex_m0/gcc_startup_nrf51.s:189
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
29.11.2017, 22:21, "will sanfilippo" <[email protected]>:
> Actually, TIMER_3 is not the correct timer to use. The lora code currently
> does not use the RTC timer so you need a different timer to run lora. I would
> use TIMER_2 to do this for the nrf51.
I've changed timer to 2 and rebuilt and reloaded app - no changes.
$ newt target show
targets/nrf51lora_app
app=@apache-mynewt-core/apps/lora_app_shell
bsp=@apache-mynewt-core/hw/bsp/nrf51dk
build_profile=debug
syscfg=BASELIBC_ASSERT_FILE_LINE=1:LORA_MAC_TIMER_NUM=2:SHELL_CMD_ARGC_MAX=20:SYSINIT_PANIC_FILE_LINE=1:SYSINIT_PANIC_MESSAGE=1:TIMER_2=1
> I also presume that you found the definitions for the various GPIO that
> connect the sx1276 to the main cpu. These are currently defined in bsp.h in
> hw/bsp/telee02. The SPI pin definitions are in mixed places:
> * The SPI CS pin is in syscfg.yml.
> * The SCK, MOSI and MISO definitions are in hal_bsp.c in static const struct
> nrf52_hal_spi_cfg os_bsp_spi0m_cfg
SPI_SS in defined in repos/apache-mynewt-core/hw/bsp/nrf51dk/syscfg.yml
SPI_0_MASTER_SS_PIN:
description: 'SPI 0 (master) SS pin number.'
value: 24
Other SPI pins are defined at ./repos/apache-mynewt-core/hw/bsp/nrf51dk/pkg.yml
in section pkg.cflags
So I use pins 24,25,28,29 for SPI.
- '-DSPI0_CONFIG_MISO_PIN=28'
- '-DSPI0_CONFIG_MOSI_PIN=25'
- '-DSPI0_CONFIG_SCK_PIN=29'
- '-DSPI0_ENABLED=1'
- '-DSPI0_USE_EASY_DMA=0'
- '-DSPI1_ENABLED=0'
- '-DSPI2_ENABLED=0'
- '-DSPIS0_CONFIG_MISO_PIN=4'
- '-DSPIS0_CONFIG_MOSI_PIN=3'
- '-DSPIS0_CONFIG_SCK_PIN=2'
- '-DSPIS0_ENABLED=0'
- '-DSPIS1_CONFIG_MISO_PIN=28'
- '-DSPIS1_CONFIG_MOSI_PIN=25'
- '-DSPIS1_CONFIG_SCK_PIN=29'
- '-DSPIS1_ENABLED=1'
- '-DSPIS2_ENABLED=0'
SX1276 pins I copied from
./repos/apache-mynewt-core/hw/bsp/telee02/include/bsp/bsp.h to
repos/apache-mynewt-core/hw/bsp/nrf51dk/include/bsp/bsp.h
#define SX1276_DIO0 (01)
#define SX1276_DIO1 (02)
#define SX1276_DIO2 (03)
#define SX1276_DIO3 (04)
#define SX1276_DIO4 (05)
#define SX1276_DIO5 (06)
#define SX1276_NRESET (12)
#define SX1276_RXTX (13)
#define SX1276_ANT_HF_CTRL (14)
>
> A case could be made to have all of these definitions as configurable MYNEWT
> variables in the lora driver itself and then have them overridden by a custom
> bsp or in the target but for now you will either have to create your own bsp
> and make these modifications or locally modify your nrf51dk bsp.
That would be nice. It was quite puzzling to search for these definitions
scattered all over the sources.
> Lastly: did you build and load the bootloader on this device? I see that you
> have a bootloader target but I did not see in the list of commands if you
> built and loaded it.
Sure. I loaded it while was playing with slinky example. And loading slinky
instead of lora app works fine.