Click here to Skip to main content
15,917,951 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: Anybody know what happened to Randor? Pin
pkfox18-Feb-24 22:40
professionalpkfox18-Feb-24 22:40 
GeneralWordle 973 Pin
OriginalGriff16-Feb-24 20:47
mveOriginalGriff16-Feb-24 20:47 
GeneralRe: Wordle 973 - 3 4 me Pin
pkfox16-Feb-24 20:58
professionalpkfox16-Feb-24 20:58 
GeneralRe: Wordle 973 Pin
Sander Rossel17-Feb-24 0:08
professionalSander Rossel17-Feb-24 0:08 
GeneralRe: Wordle 973 Pin
Amarnath S17-Feb-24 0:10
professionalAmarnath S17-Feb-24 0:10 
GeneralRe: Wordle 973 Pin
Cp-Coder17-Feb-24 1:33
Cp-Coder17-Feb-24 1:33 
GeneralRe: Wordle 973 Pin
StarNamer@work17-Feb-24 6:00
professionalStarNamer@work17-Feb-24 6:00 
PraiseBreakthrough! PinPopular
honey the codewitch16-Feb-24 16:06
mvahoney the codewitch16-Feb-24 16:06 
I did it. I got the STM32MP157-DK evaluation board running on bare metal, no operating system. Boot time is pretty fast, but could be faster if I move away from using U-Boot, which thinks my code is a linux kernel. Laugh | :laugh:

I think I managed to get SPI code in place too but I have yet to wire up a logic analyzer to test with.

This is crazy. It also required me to install linux on my laptop. The VMs just hated me.

I even got both cores working, and I have a codebase that has my graphics library integrated, which by the way, I made a design decision a year ago with it that saved my bacon on this project. The library isn't fundamentally thread-safe BUT you can isolate different screens, and each handles its own rendering, so you can run them on different cores without synchronization between them.

Trouble is I still need synchronization anyway, and I may have to make some spinlocks and such with std::atomic if that works or LDREX and STREX asm instructions if it doesn't. Lovely.

Everything I'm doing I haven't done since maybe the 1980s. Messing with boot loader code, writing OS level system interaction, etc, and that was 8 and 16 bit processors which were far simpler than even this little embedded monsters.

It's an adventure

The screen below is proof of life. It came from the serial port of my device.

U-Boot 2020.01-stm32mp-r1 (Feb 16 2024 - 16:44:10 -0800)

CPU: STM32MP157DAC Rev.Z
Model: STMicroelectronics STM32MP157D-DK1 Discovery Board
Board: stm32mp1 in basic mode (st,stm32mp157d-dk1)
Board: MB1272 Var3.0 Rev.C-03
DRAM:  512 MiB
Clocks:
- MPU : 800 MHz
- MCU : 208.878 MHz
- AXI : 266.500 MHz
- PER : 24 MHz
- DDR : 533 MHz
NAND:  0 MiB
MMC:   STM32 SD/MMC: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
****************************************************
*        WARNING 500mA power supply detected       *
*     Current too low, use a 3A power supply!      *
****************************************************

Net:   eth0: ethernet@5800a000
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
15272 bytes read in 30 ms (497.1 KiB/s)
## Booting kernel from Legacy Image at c2000040 ...
   Image Name:   stm32mp1-baremetal image
   Created:      2024-02-17   0:54:04 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    15208 Bytes = 14.9 KiB
   Load Address: c2000040
   Entry Point:  c2000040
   Verifying Checksum ... OK
   Loading Kernel Image

Starting kernel ...

ABC

Core0: Flashing an LED is hard work! I'm going to wake up Core1 to help.
Core0: I'll handle flashing LED1, and tell Core1 to flash LED2...
Core0: Starting Core1
Core1: Good morning, Core0! I'm happy to help, I can flash LED2 twice as fast as LED1!

Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix

GeneralRe: Breakthrough! Pin
jmaida16-Feb-24 16:38
jmaida16-Feb-24 16:38 
GeneralRe: Breakthrough! Pin
glennPattonWork316-Feb-24 23:26
professionalglennPattonWork316-Feb-24 23:26 
GeneralRe: Breakthrough! Pin
Gary Stachelski 202117-Feb-24 2:40
Gary Stachelski 202117-Feb-24 2:40 
GeneralRe: Breakthrough! Pin
honey the codewitch17-Feb-24 3:01
mvahoney the codewitch17-Feb-24 3:01 
GeneralRe: Breakthrough! Pin
pkfox17-Feb-24 6:00
professionalpkfox17-Feb-24 6:00 
GeneralRe: Breakthrough! Pin
honey the codewitch17-Feb-24 6:01
mvahoney the codewitch17-Feb-24 6:01 
GeneralRe: Breakthrough! Pin
Nelek17-Feb-24 23:26
protectorNelek17-Feb-24 23:26 
RantWSL can't properly mount USB drives Pin
honey the codewitch16-Feb-24 10:38
mvahoney the codewitch16-Feb-24 10:38 
GeneralRe: WSL can't properly mount USB drives Pin
RickZeeland16-Feb-24 20:02
mveRickZeeland16-Feb-24 20:02 
GeneralIntel and AMD updates for security vulnerabilities Pin
Richard Chambers16-Feb-24 10:33
Richard Chambers16-Feb-24 10:33 
GeneralRe: Intel and AMD updates for security vulnerabilities Pin
obermd17-Feb-24 7:15
obermd17-Feb-24 7:15 
GeneralRe: Intel and AMD updates for security vulnerabilities Pin
charlieg18-Feb-24 6:13
charlieg18-Feb-24 6:13 
GeneralRe: Intel and AMD updates for security vulnerabilities Pin
jochance22-Feb-24 5:49
jochance22-Feb-24 5:49 
QuestionAll high-level classes must depend only on Interfaces Pin
raddevus16-Feb-24 8:46
mvaraddevus16-Feb-24 8:46 
AnswerRe: All high-level classes must depend only on Interfaces Pin
honey the codewitch16-Feb-24 10:42
mvahoney the codewitch16-Feb-24 10:42 
GeneralRe: All high-level classes must depend only on Interfaces Pin
raddevus16-Feb-24 10:56
mvaraddevus16-Feb-24 10:56 
GeneralRe: All high-level classes must depend only on Interfaces Pin
honey the codewitch16-Feb-24 11:50
mvahoney the codewitch16-Feb-24 11:50 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.