-
Data: 2023-02-17 23:06:16
Temat: Re: C++ ośla łączka
Od: "Grzegorz Niemirowski" <g...@g...net> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Piotr Gałka <p...@c...pl> napisał(a):
> No i w czasie tego przygotowywania się natknął się na info, że:
> Jak się chce modyfikować flash to kawałek funkcji ma być wykonywany z
> RAMu. To co ma być w RAMie kompiluje się bratu do 10 czy 12 bajtów. Na
> zapas przekopiowywał do RAMu 40 bajtów, ale chciał to zrobić dokładnie, bo
> kto wie, czy kiedyś jakaś kolejna wersja kompilatora czegoś tam nie wrzuci
> i zrobi się ponad 40 bajtów.
> On jest na etapie, że kiedyś wszystko pisał wyłącznie w asm, a obecnie
> stara się wszystko napisać w C - że niby bardziej przenośne.
> Ale nie udało mu się znaleźć metody policzenia tego "sizeof(funkcja)" więc
> mówił mi dziś, że ten kawałek zostawi w asm aby nie mogło być żadnych
> niespodzianek.
Dlaczego chcecie sami kopiować tę funkcję? Czy skonfigurowanie odpowiedniej
sekcji w skrypcie linkera nie wchodzi w grę? Przykładowo funkcja do zapisu
Flash znadująca się w RAM-ie jest w bibliotekach ST:
__RAM_FUNC HAL_FLASHEx_HalfPageProgram(uint32_t Address, uint32_t* pBuffer);
Makro __RAM_FUNC zdefiniowane jest tak:
#define __RAM_FUNC HAL_StatusTypeDef __attribute__((section(".RamFunc")))
Czyli funkcja HAL_FLASHEx_HalfPageProgram jest oznaczona atrybutem
umieszczającym ją w sekcji .RamFunc. Ta z kolei w skrypcie linkera jest
umieszczana w sekcji .data:
.data :
{
. = ALIGN(4);
__data_init_start = LOADADDR(.data);
PROVIDE(__data_init_start = __data_init_start);
__data_start = .;
PROVIDE(__data_start = __data_start);
. = ALIGN(4);
*(.data .data.* .gnu.linkonce.d.* .RamFunc)
. = ALIGN(4);
__data_end = .;
PROVIDE(__data_end = __data_end);
} > ram AT > rom
--
Grzegorz Niemirowski
https://www.grzegorz.net/
Następne wpisy z tego wątku
- 17.02.23 23:58 heby
- 18.02.23 09:11 J.F
- 19.02.23 12:14 JDX
- 19.02.23 12:29 Marek
- 20.02.23 13:51 Zbych
- 20.02.23 13:57 Grzegorz Niemirowski
- 20.02.23 14:05 Zbych
- 22.02.23 11:44 Piotr Gałka
- 22.02.23 13:02 Piotr Gałka
- 22.02.23 13:16 heby
- 22.02.23 13:28 Piotr Gałka
- 22.02.23 13:45 Piotr Gałka
- 22.02.23 20:35 Grzegorz Niemirowski
- 22.02.23 20:41 Marek
- 22.02.23 20:47 Piotr Gałka
Najnowsze wątki z tej grupy
- Pierwsza mapa kosmosu w 102 długościach fal podczerwieni! To początek nowej ery w astronomii
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- zasilacz
- Zegary DCF
- pompa CO
- 2,5 x więcej niż Li-Ion
- Tfu! Przeklety prostokąt (czyli UPS i "sinus modyfikowany")
- Dalekopis T100 - problem z powrotem karetki
- Diody LED - oświetlenie na choinkę
- ale wiesz, że są gotowce?
- jak wykryć zapalenie żarówki?
- Cyna dylemat
- Mierniki poziomu glukozy (CGM, FGM)
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Kontrola nad prądem - sprawdź jak działa [apka - przyp. JMJ] eLicznik
Najnowsze wątki
- 2025-12-31 Myślenice => Specjalista ds. kontrolingu <=
- 2025-12-31 Ostróda szlachetnie walczy
- 2025-12-31 Pierwsza mapa kosmosu w 102 długościach fal podczerwieni! To początek nowej ery w astronomii
- 2025-12-31 Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- 2025-12-31 Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- 2025-12-31 Pieniadze-cuchna-oddechem-nawalonego-tatusia
- 2025-12-31 Iran na skraju gospodarczego upadku. Na ulicach Teheranu (znów) wrze. To może być cios dla reżimu
- 2025-12-30 zasilacz
- 2025-12-30 Teraz System Plików PFS z sys. op. Amiga OS będziesz mógł zamontować pod sys. op. Linuks i Jabłoko Makintosz
- 2025-12-30 Aeor2 i ciągły internet 512kb
- 2025-12-30 Czy prohibicja (reklamowa) obejmuje Św. Mikołaja (przerośniętego krasnala)? :-)
- 2025-12-30 Zegary DCF
- 2025-12-29 Greta Thunberg aresztowana w Londynie za wsparcie zdelegalizowanej grupy [Palestine Action - przyp. JMJ]
- 2025-12-29 Sarkozy
- 2025-12-29 Czujnik




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]