Hi there!
I'm trying to make an SH1106 screen working with my Zephyr 3.7.0 project using an nRF52DK (nrf52832-based one).
My project is straightforward:
proj.conf
# display CONFIG_DISPLAY=y CONFIG_CHARACTER_FRAMEBUFFER=y CONFIG_HEAP_MEM_POOL_SIZE=16384
CMakeLists.txt
cmake_minimum_required(VERSION 3.20.0)
set(SHIELD sh1106_128x64)
# I'm not using the SDK, and using the brew supplied arm-non-eabi
set(ZEPHYR_TOOLCHAIN_VARIANT cross-compile)
set(CROSS_COMPILE /opt/homebrew/bin/arm-none-eabi-)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(sh1106-display)
target_sources(app PRIVATE src/main.c)
nrf52dk_nrf52832.overlay
&arduino_i2c {
status = "okay";
};
main.c
#include <zephyr/kernel.h>
// const struct device *display_dev = DEVICE_DT_GET_ANY(DT_CHOSEN(zephyr_display));
int main(void) {
while (1) {
printk("Hello, World!\n");
k_sleep(K_MSEC(1000));
}
}
Failure:
Upon compiling and flashing with `west flash`, I got the following errors:
[00:00:00.261,260] <err> os: ***** BUS FAULT ***** [00:00:00.261,260] <err> os: Precise data bus error [00:00:00.261,260] <err> os: BFAR Address: 0x30255b00 [00:00:00.261,291] <err> os: r0/a1: 0x30255b00 r1/a2: 0xc0000000 r2/a3: 0x000077f3 [00:00:00.261,291] <err> os: r3/a4: 0x30255b00 r12/ip: 0x00000000 r14/lr: 0x000007e9 [00:00:00.261,291] <err> os: xpsr: 0xa1000000 [00:00:00.261,322] <err> os: Faulting instruction address (r15/pc): 0x0000032e [00:00:00.261,352] <err> os: >>> ZEPHYR FATAL ERROR 25: Unknown error on CPU 0 [00:00:00.261,383] <err> os: Current thread: 0x200006b8 (unknown) [00:00:01.294,464] <err> os: Halting system
I've looked at other people's configurations from GitHub (found no significant differences, tried out a lot of options nevertheless) and searched for similar issues, but I concluded that I'm pretty alone in my struggles.
Have you heard of anything like this?