Comments (3)
I can confirm the failing sodoku tests on stm32f429zi are indeed a memory related bug in the linker script generated by libopencm3. It does not define an end of stack - which leads to the hard faults. By manually adding the a line to the generated linker that defines the _estack
all of the atomvm_benchmark test now pass:
###########################################################
### ######## ####### ## ## ## ## ## ##
## ## ## ## ## ### ### ## ## ### ###
## ## ## ## ## #### #### ## ## #### ####
## ## ## ## ## ## ### ## ## ## ## ### ##
######### ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ##
## ## ## ####### ## ## ### ## ##
###########################################################
INFO [52] AtomVM: Starting AtomVM revision 0.6.0-alpha.2+git.f5bb564b
DEBUG [59] AtomVM: Using usart mapped at register 0x40004800 for stdout/stderr.
DEBUG [67] AtomVM: Maximum application size: 1048576
INFO [73] AtomVM: Booting file mapped at: 0x8080000, size: 1792
INFO [80] AtomVM: Starting: benchmark.beam...
---
Running tests:
pingpong_speed_test: 5981000
prime_speed_test: 17554000
prng_test: 379000
pi_test: 25922000
sudoku_solution_test: 8073000
sudoku_puzzle_test: 305185000
INFO [363201] AtomVM: Exited with return: ok
INFO [363206] AtomVM: AtomVM application terminated. Going to sleep forever ...
from atomvm.
I think an issue here on GitHub should be opened against libopencm3 on both sides.
Once opened, please reference the libopencm3 issue here.
from atomvm.
I searched through the "Closed" issues in the libopencm3
repo and found a similar issue, that suggested a fix by exporting boundaries in the linker script. The issue and associated PR were both closed but ended up having a link to a page in the libopencm3 wiki that explains a work around for safely using malloc. I have implemented that fix in PR #946
from atomvm.
Related Issues (20)
- Return {error, Reason} from `gpio` operations in error conditions HOT 3
- terminal output question/issue. HOT 5
- Add ability to set buffer size in OTP socket implementation HOT 1
- Implement `net:getaddrinfo/1,2` HOT 1
- RP2040 `AVM_WAIT_FOR_USB_CONNECT=on` conflict with `rebar3 atomvm pico_flash` task HOT 5
- AtomVM crashes on STM32 with no console messages HOT 3
- Function lookup in stacktraces is broken
- Quotes are missing when formatting atoms that need them
- Allow cross platform code and components HOT 1
- Spawned processes are not terminated on exit
- License conflict building AtomVM with libopencm3? HOT 2
- Closing a socket in select state may cause some socket calls to hang
- Erlang Build Proposal
- Make Erlang examples a sub-project HOT 1
- Port RNG code to mbedtls (and deprecate OpenSSL)
- Add support for the OTP `application` behavior
- miniz as an alternative to zlib in embedded platforms? HOT 3
- Unsupported line_ref tag: 28 HOT 1
- Handle functions with more than nine parameters
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from atomvm.