-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erj
e.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.or
g!reader01.eternal-september.org!.POSTED!not-for-mail
From: heby <h...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: MCU - start programu z RAM
Date: Mon, 13 Feb 2023 11:49:15 +0100
Organization: A noiseless patient Spider
Lines: 31
Message-ID: <tsd4jh$24ec1$1@dont-email.me>
References: <0...@g...com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 13 Feb 2023 10:49:21 -0000 (UTC)
Injection-Info: reader01.eternal-september.org;
posting-host="57f7d59c8e5b2eed543ea1086ff471c2";
logging-data="2242945";
mail-complaints-to="a...@e...org";
posting-account="U2FsdGVkX1/3HBsZ7WuupIUT/l7gPVx7"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.7.2
Cancel-Lock: sha1:3wm0RxSP26bHrIwowjHczkS3A8g=
Content-Language: en-US
In-Reply-To: <0...@g...com>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:778255
[ ukryj nagłówki ]On 13/02/2023 11:29, Stachu Chebel wrote:
> Jak to zrobić, żeby po włączeniu urządzenia program przekopiował się
> z FLAH do RAM i następnie rozpoczął życie w RAM?
Aby był uruchamialny z obu miejsc, wymaga to posiadania kodu który jest
niezależny od lokalizacji (PIC). To nie jest domyslny tryb kompilacji,
zerknij na flagę pic w gcc, modyfikuje ona kod do stanu, w którym skoki
są wyłącznie względne.
Druga sprawa: zazwyczaj nie chcesz całego programu - zazwyczaj chcesz
kilka funkcji.
Inny workaround to zmuszenie linkera do zlinkowania częsci programu w
RAM i wydłubanie tej sekcji z pliku elf, a nastepnie potraktowanie jej
jako zwykłej tablicy danych do skopiowania do RAM. Widziałem sztuczke,
kiedy automatycznie kompilowało się do sekcji .data, wiec kopiowanie do
RAM ogarniała inicjalizacja.
Jeszcze inny, to niejakie gotowce, typu __RAM_FUNC.
To jest ogólnie trudne zagadnienie z poziomu ogarniania linkera,
kompilacji ręcznej, pisania makefiles, opcji w narzędziach itd. Trudno o
ogólną odpowiedź, to są rzeczy specyficzne do kompilatora i narzędzi na
około niego. Niewykluczone, że narzędzia, z których korzystasz, mają to
ogarnięte w postaci prostych do użycia modyfikatorów funkcji, flaczy czy
innych wynalazków.
Tu masz kilka podpowiedzi:
https://stackoverflow.com/questions/15137214/how-to-
run-code-from-ram-on-arm-architecture
Następne wpisy z tego wątku
- 13.02.23 11:53 Adam Górski
- 13.02.23 13:27 JDX
- 13.02.23 13:29 JDX
- 13.02.23 13:34 JDX
- 13.02.23 20:33 m
- 14.02.23 23:12 JDX
Najnowsze wątki z tej grupy
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
- wzmacniacz mocy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
Najnowsze wątki
- 2025-06-20 5w30 zamiast 0w30
- 2025-06-19 Klima i samodzielne uzupełnienie
- 2025-06-20 Upgrade z i7-6xxx
- 2025-06-19 Czy ołowiane perowsiki, drukowane na folii to był fake ?
- 2025-06-20 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-06-20 Gdynia => Sales Executive / KAM <=
- 2025-06-20 Wrocław => Senior Key Account Manager IT <=
- 2025-06-20 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-06-20 Warszawa => Fullstack .NET Developer <=
- 2025-06-20 Białystok => Software Engineer .Net <=
- 2025-06-20 Warszawa => Inżynier oprogramowania .Net <=
- 2025-06-20 Białystok => Kotlin Developer <=
- 2025-06-20 Gdynia => MLOps Engineer <=
- 2025-06-20 Warszawa => Strategic Account Manager <=
- 2025-06-20 Warszawa => IT Recruiter <=