|
I ran a pretty extensive bench test on some hardware i'm trying on a Cortex M7. it's not fast enough for what I need. I've been avoiding going to more powerful smartphone tech like ARM Cortex A7s due to needing an OS to support it. Fortunately I found an A7 i can run bare metal without an OS so I don't need the end users to stomach Linux boot times
STM32MP157D-DK1 eval board[^] <-- The MCU on this eval board is the magic.
GitHub - 4ms/stm32mp1-baremetal: Baremetal framework and example projects for the STM32MP15x Cortex-A7 based MPU[^]
With this gorgeous offering on github. I owe them a keg of beer for this.
Let's talk about my old platform vs my new one
Old: Single core 480 MHz, realtime, 1MB of SRAM. 2MB of Flash
New: Triple core (2 800MHz A cores, and a 209MHz realtime M core), 768KB of SRAM, up to 1GB of DDR3 (we'll probably use 128MB), flash is external, and can be any size we need, or even an sd reader.
I can't wait for the kit to get here so I can try this. I'm beside myself. This opens up a lot of doors.
This is the sauce i needed, right here (well, the first part of the sauce anyway the primary ingredient)
.syntax unified
.cpu cortex-a7
.equ UART4_TDR, 0x40010028
.section .vector_table, "x"
.global _Reset
.global _start
_Reset:
b Reset_Handler
b .
b .
b .
b .
b .
b .
b .
.section .text
Reset_Handler:
ldr r4, =UART4_TDR
mov r0, #65
str r0, [r4]
b .
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
modified 12-Feb-24 17:42pm.
|
|
|
|
|
We live in interesting times.
Sometimes I wish I was still closer to the start of my career. It might've taken an entirely different path.
|
|
|
|
|
you and me both brother... the itty bitty super fast processors today are the heath kits from my dad's days.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
Interesting device.
Only 9 left in stock and 52 week lead time, hope you only need the one.
"Ten men in the country could buy the world and ten million can’t buy enough to eat." Will Rogers
PartsBin an Electronics Part Organizer - Release Version 1.3.1 JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
That's just the dev board. It's fine. I only need one. And there are others. They're just more expensive.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Very nice as I'm just getting back into coding and AArch64 is the platform. Thanks for this. What assembler is this?
-Sean
----
Fire Nuts
|
|
|
|
|
I mean, I'm using the GCC ARM Cross compiler. So whatever assembler that uses.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
"Fortunately I found an A7 i can run bare metal without an OS"
How are you going to be able to use all 3 cores? I'm a bit ignorant here, but I have seen some code from hardware guys that makes me shudder. They typically write their own loops and have a semi general understanding of task scheduling, but <honest admission=""> I tend to overthink things at times.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
I have low level ways to activate the cores without a scheduler.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
You cheater, that's a microprocessor!
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
I am a long term fan of H2G2, and I always thought that the theme tune was created by the BBC Radiophonic Workshop. I just found out that the theme was actually written by the Eagles[^]. Someone smacked my gob, I'm that gobsmacked.
|
|
|
|
|
I didn't know that either!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
This was my favourite theme tune for any programme from the BBC. Now that I know this, I can listen to it at any time. I am so happy.
|
|
|
|
|
Unusual one for The Eagles Pete
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
I know. I wouldn't have thought that they were the usual suspects for a group like the Eagles.
|
|
|
|
|
|
Way back in University, my roommates DJed on the student radio station.
They borrowed the H2G2 tapes and we had an H2G2 party to beat all parties with the episodes playing.
We even created a version of the classic Penta-Galactic Gargle Blaster.
From what I remember, a good time was had by all.
I did wake up feeling like I had a brain the size of a planet.
"Mistakes are prevented by Experience. Experience is gained by making mistakes."
|
|
|
|
|
Was it orrible ?
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
|
The original radio play is on the internet archive.
That's my favorite version of HHG.
|
|
|
|
|
I got the radio version when it was first released by the BBC.
|
|
|
|
|
I didn't think I'd build out my benchmarks for this product we're about to pitch to investors by the time of our meeting tomorrow. The deadline was dropped on me last minute. I said no guarantees that I'd have *anything* due to all of the unknowns and hurdles I had in front of me.
I
1. Fixed CubeMX's rendering issues caused by having a decent GPU in my system and Java being characteristically awful.
2. Fixed CubeMX hanging whenever I try to create a new project
3. Convinced CubeMX to generate a makefile i could use with the GCC arm cross compiler
4. Made a C# program that generated makefile content to import LVGL into the project
5. Found my way around Cube such that I was able to enable DMA, 6 SPI busses with DMA, Chrom-Art acceleration, DMA2D acceleration, CPU instruction caching (disabled by default!)
6. Learned how to hack GCC linker scripts so I could both use all of the RAM available (it's segmented) and actually fit the code into RAM.
7. Learned how to convince LVGL to use multiple displays, and all the STM32 and ARM hardware graphics acceleration available
8. Learned SPI/DMA under STM32
9. Structured a workflow and source tree where I can get CubeMX to regenerate the code for my project whenever i make a settings change without blowing up all my code
10. Orchestrated framerate counting and some phony IO to give me the data I needed for the meeting. I didn't think I'd have it benching this deep. I thought I wouldn't have LVGL integrated by today EOB.
Gosh, I got lucky. Man, I feel good about this. It's almost like I know what I'm doing, but that can't be right.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Well, in a couple of years I could accomplish the same.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
Frankly, I'm a bit shocked myself. My estimate would have been two weeks. It was closer to two days.
I crammed, but even then, I'm surprised that it bore fruit.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
You always find a way
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|