Hi Keith, Your code defines _start as staring point and it also defines this function. This function initializes bss and calls init then it ends with busy loop.
To make it link more code you could change your startup function to different name then after your init (or at the end of this function) you could call _start function that is present in baselib.c and that would start more mynewt code. Keep in mind that mynewt expect maynew_main function (not main) to be starting point of application. regards Jerzy czw., 26 cze 2025 o 10:18 Jerzy Kasenberg <jerzy.kasenb...@codecoup.pl> napisał(a): > Hi Keith, > > I did port of hifive1 few years back but I don't have setup ready. > Can you tell me what system you are using for development and how to get > build tools you have? > If I can setup environment again I'm pretty sure we can make this work. > Originally compiler used for HiFive1 board was downloaded from SiFive site > I don't know > it this is the one you are using and if the one I used is still there > > regards > Jerzy > > > śr., 25 cze 2025 o 09:37 Keith P <keithcpere...@gmail.com> napisał(a): > >> Hello everyone, >> >> I am an intern at a lab and don't really get how to continue with porting, >> I have made a few files and copied some code from the mcu's original SDK >> <https://gitlab.com/shaktiproject/software/shakti-sdk>. >> >> I am porting to the Shakti line of MCU's, they are fully open-source RISCV >> based MCUs. >> >> I have followed the fairly short porting guide and have been trying to use >> the FE310 bsp implementation by SiFive as a template/guide since that is >> also a RISCV board. >> >> My task as of now is to get UART working. >> >> Here are the directories I've added: >> repos/apache-mynewt-core/hw/bsp/shakti_parashu/ >> ├── bsp.yml >> ├── include >> │ └── bsp >> │ └── bsp.h >> ├── parashu_boot.ld >> ├── parashu.ld >> ├── pkg.yml >> ├── src >> │ └── hal_bsp.c >> └── syscfg.yml >> >> 3 directories, 7 files >> >> repos/apache-mynewt-core/hw/mcu/shakti/ >> ├── parashu >> │ ├── include >> │ │ ├── clint.h >> │ │ ├── defines.h >> │ │ ├── mcu >> │ │ │ ├── parashu.h >> │ │ │ ├── parashu_hal.h >> │ │ │ ├── platform.h >> │ │ │ └── sys_clock.h >> │ │ ├── plic.h >> │ │ └── traps.h >> │ ├── pkg.yml >> │ ├── src >> │ │ ├── arch >> │ │ │ └── rv32imacu >> │ │ │ └── start.S >> │ │ ├── clint.c >> │ │ ├── hal_flash.c >> │ │ ├── hal_os_tick.c >> │ │ ├── hal_reset_cause.c >> │ │ ├── hal_system.c >> │ │ ├── hal_uart.c >> │ │ ├── init.c >> │ │ ├── plic.c >> │ │ ├── sys_clock.c >> │ │ └── traps.c >> │ └── syscfg.yml >> └── pkg.yml >> >> 6 directories, 22 files >> >> repos/apache-mynewt-core/kernel/os/src/arch/shakti/ >> ├── start.S >> └── trap.S >> >> 0 directories, 2 files >> >> repos/apache-mynewt-core/compiler/riscv64-unknown-elf-shakti/ >> ├── compiler.yml >> └── pkg.yml >> >> 0 directories, 2 files >> >> I forked the mynewt-core repo and uploaded my changes to the fork >> <https://github.com/Keith-C-P/shakti-mynewt-core>. >> >> The code compiles, but the dump looks all wrong as major sections are >> missing, like main and others >> >> I did compile mynewt for both native (linux) and for hifive1, i ran >> hifive1 >> on a qemu vm as I don't have access to the actual board, but both worked >> fine. >> >> I'll be honest I don't know what questions to ask as I am just starting to >> get into the embedded field and wanted a difficult project so I can learn >> fast. >> >> Any and all help would be greatly appreciated >> Thanks in advance >> >> Regards, >> Keith >> >