Comments (8)
Hello,
sorry, but information in your main post are wrong.
MEMORY
{
FLASH (rx) : ORIGIN = MBED_APP_START, LENGTH = MBED_APP_SIZE
DTCMRAM (rwx) : ORIGIN = NVIC_RAM_VECTOR_ADDRESS + VECTORS_SIZE, LENGTH = 128K - VECTORS_SIZE
RAM (xrw) : ORIGIN = MBED_RAM_START, LENGTH = MBED_RAM_SIZE
RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K
RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K
ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K
}What version of Mbed-os are you using (tag or sha) ?
mbed-os-6.17.0
You wrote about wrong memory settings in MbedOS 6.17, but this memory setting is definitely not from Mbed OS 6.17.
The memory settings from your post is from Mbed OS 6.15 or lower because it Mbed OS 6.15.1 was done a correction - #15130
BR, Jan
from mbed-os.
Maybe @jeromecoutant know how to deals with it and use the other RAM sections ? :)
from mbed-os.
cc @ARMmbed/team-st-mcd
from mbed-os.
I remember NXP K64F has 2 RAM banks as well, RAM is split into two sections (if I am not wrong, you can't write through the boundaries).
See the linker script: https://github.com/ARMmbed/mbed-os/blob/master/targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K64F/device/TOOLCHAIN_GCC_ARM/MK64FN1M0xxx12.ld - you can review data and data 2 sections.
The first lower RAM is used for interrupts, heap and the second bank (larger) for user/app data.
from mbed-os.
Thank you.
I managed to use the RAM_D2 by creating a section like that in the linker script :
SECTIONS
{
...
.map_counters (NOLOAD):
{
KEEP(*(.map_counters))
} >RAM_D2
}
Then, in my code i can instantiate vairables at this area like this:
static uint32_t map_counter[110][110] __attribute__((section(".map_counters")));
from mbed-os.
Hello @JohnK1987
Indeed, to be exact we are using a custom target based on the STM32H753ZI. We are using Mbed OS 6.17.0 but the linker script of our custom targets comes from an older version of Mbed OS.
I didn't see that the linker script was updated, but the issue remains : it only use the 512k bank for user RAM.
from mbed-os.
I'm not sure if there are any other solutions besides the one I detailed previously. So, unless you have another idea, we can close the issue :)
from mbed-os.
I didn't see that the linker script was updated, but the issue remains : it only use the 512k bank for user RAM
Not fully true => Ethernet is using SRAM3:
https://github.com/ARMmbed/mbed-os/blob/master/connectivity/drivers/emac/TARGET_STM/stm32xx_emac.cpp#L113
https://github.com/ARMmbed/mbed-os/blob/master/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H743xI/TOOLCHAIN_GCC_ARM/STM32H743xI.ld#L235
from mbed-os.
Related Issues (20)
- STM32WL Deep Sleep STOP1 over consumption HOT 2
- TARGET_STM: masking logic for CAN rx interrupt is wrong HOT 2
- Buffer overflow vulnerablilty in MbedOS BLE Cordio stack HOT 2
- STM32WL USART2@2400 not working with every device HOT 6
- STM32WL System Clock differs at boot/reset and after deepsleep HOT 2
- Mbed CLI 2 USB no such file or directory HOT 2
- mbed-tools deploy is limiting the git fetch specification HOT 2
- STM32_gen_peripheralPins.py chrashing after generating pinmaps HOT 3
- Linking with error: "cannot move location counter backwards" HOT 1
- BLE start routine freezes when the event_queue dispatching inside mbed-os-ble-utils moved to a thread HOT 1
- Include directive issue with BLE API HOT 1
- PD_14 is not labeled as a SPI CS pin for Nucleo-F413ZH HOT 5
- time(NULL) not returning real RTC value after reboot HOT 1
- PC_13 is unlisted HOT 2
- TARGET_STM32F303xC: SetSysClock() missing HOT 2
- Update hidapi used for non-Linux platforms HOT 2
- Flashing Controller from Docker Container HOT 2
- mbed::CircularBuffer interrupt safe but not thread safe? HOT 2
- STM32 I2CSlave race condition causing timeouts
- LoRaWAN no OTAA Uplink on AS923 region STM32WL HOT 3
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 mbed-os.