-
1. Data: 2010-08-14 12:13:06
Temat: Pisanie do Flasha w LPC17xx
Od: Mario <m...@p...onet.pl>
Witam,
może ktoś pomoże linkiem do przykładowych procedur w C umożliwiających
pisanie/czytanie flasha w LPC1768 z poziomu programu. Najlepiej tak żeby
działało pod FreeRtosem (non-MPU). Potrzebuję zapisywać kilkanaście
zmiennych we flashu. AVRy miały rozdzielone flash programu i eeprom i
nie było z tym problemu. W LPC podobno trzeba użyć funkcje interfejsu
ISP ale jakoś nie mogę znaleźć przykładów.
--
Pozdrawiam
MD
-
2. Data: 2010-08-16 19:22:12
Temat: Re: Pisanie do Flasha w LPC17xx
Od: Adam Dybkowski <a...@4...pl>
W dniu 2010-08-14 14:13 Mario napisał(a):
> może ktoś pomoże linkiem do przykładowych procedur w C umożliwiających
> pisanie/czytanie flasha w LPC1768 z poziomu programu. Najlepiej tak żeby
> działało pod FreeRtosem (non-MPU). Potrzebuję zapisywać kilkanaście
> zmiennych we flashu. AVRy miały rozdzielone flash programu i eeprom i
> nie było z tym problemu. W LPC podobno trzeba użyć funkcje interfejsu
> ISP ale jakoś nie mogę znaleźć przykładów.
Wszystko dokładnie masz wyłuszczone w rozdziale 8 "IAP commands"
dokumentu UM10360 "LPC17xx User manual". Niezbędne kawałki są napisane w C.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
3. Data: 2010-08-16 20:34:02
Temat: Re: Pisanie do Flasha w LPC17xx
Od: Mario <m...@p...onet.pl>
W dniu 2010-08-16 21:22, Adam Dybkowski pisze:
> W dniu 2010-08-14 14:13 Mario napisał(a):
>
>> może ktoś pomoże linkiem do przykładowych procedur w C umożliwiających
>> pisanie/czytanie flasha w LPC1768 z poziomu programu. Najlepiej tak żeby
>> działało pod FreeRtosem (non-MPU). Potrzebuję zapisywać kilkanaście
>> zmiennych we flashu. AVRy miały rozdzielone flash programu i eeprom i
>> nie było z tym problemu. W LPC podobno trzeba użyć funkcje interfejsu
>> ISP ale jakoś nie mogę znaleźć przykładów.
>
> Wszystko dokładnie masz wyłuszczone w rozdziale 8 "IAP commands"
> dokumentu UM10360 "LPC17xx User manual". Niezbędne kawałki są napisane w C.
>
Niby tak. Tylko jak w praktyce w Freertos uzyskać wspomniany poniżej
warunek:
3.2.6 Interrupts during IAP
The on-chip flash memory is not accessible during erase/write
operations. When the user
application code starts executing the interrupt vectors from the user
flash area are active.
The user should either disable interrupts,
Musiałbym chyba zatrzymać cały system. Tak sobie kombinuję bo jeszcze go
zbyt nie poznałem.
--
Pozdrawiam
MD
-
4. Data: 2010-08-17 20:29:46
Temat: Re: Pisanie do Flasha w LPC17xx
Od: Adam Dybkowski <a...@4...pl>
W dniu 2010-08-16 22:34 Mario napisał(a):
>> Wszystko dokładnie masz wyłuszczone w rozdziale 8 "IAP commands"
>> dokumentu UM10360 "LPC17xx User manual". Niezbędne kawałki są napisane
>> w C.
>>
>
> Niby tak. Tylko jak w praktyce w Freertos uzyskać wspomniany poniżej
> warunek:
>
> 3.2.6 Interrupts during IAP
> The on-chip flash memory is not accessible during erase/write
> operations. When the user
> application code starts executing the interrupt vectors from the user
> flash area are active.
> The user should either disable interrupts,
>
> Musiałbym chyba zatrzymać cały system. Tak sobie kombinuję bo jeszcze go
> zbyt nie poznałem.
Pominąłeś z cytatu to co najważniejsze:
"The user should either disable interrupts, or ensure that user
interrupt vectors are active in
RAM and that the interrupt handlers reside in RAM, before making a flash
erase/write IAP
call."
Nie możesz żyć przez chwilę bez przerwań? No to czeka Cię przeniesienie
kodu ich obsługi do RAMu.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
5. Data: 2010-08-17 21:27:13
Temat: Re: Pisanie do Flasha w LPC17xx
Od: Mario <m...@p...onet.pl>
W dniu 2010-08-17 22:29, Adam Dybkowski pisze:
> W dniu 2010-08-16 22:34 Mario napisał(a):
>
>>> Wszystko dokładnie masz wyłuszczone w rozdziale 8 "IAP commands"
>>> dokumentu UM10360 "LPC17xx User manual". Niezbędne kawałki są napisane
>>> w C.
>>>
>>
>> Niby tak. Tylko jak w praktyce w Freertos uzyskać wspomniany poniżej
>> warunek:
>>
>> 3.2.6 Interrupts during IAP
>> The on-chip flash memory is not accessible during erase/write
>> operations. When the user
>> application code starts executing the interrupt vectors from the user
>> flash area are active.
>> The user should either disable interrupts,
>>
>> Musiałbym chyba zatrzymać cały system. Tak sobie kombinuję bo jeszcze go
>> zbyt nie poznałem.
>
> Pominąłeś z cytatu to co najważniejsze:
> "The user should either disable interrupts, or ensure that user
> interrupt vectors are active in
> RAM and that the interrupt handlers reside in RAM, before making a flash
> erase/write IAP
> call."
>
> Nie możesz żyć przez chwilę bez przerwań? No to czeka Cię przeniesienie
> kodu ich obsługi do RAMu.
Musiałbym zatrzymać scheduler. Z kolei na to żeby przenosić część
systemu do ramu to jestem za cienki. Chyba sobie dołożę bateryjkę i
skorzystam z rejestrów RTC.
--
Pozdrawiam
MD
-
6. Data: 2010-08-17 22:03:36
Temat: Re: Pisanie do Flasha w LPC17xx
Od: Adam Dybkowski <a...@4...pl>
W dniu 2010-08-17 23:27 Mario napisał(a):
> Musiałbym zatrzymać scheduler. Z kolei na to żeby przenosić część
> systemu do ramu to jestem za cienki. Chyba sobie dołożę bateryjkę i
> skorzystam z rejestrów RTC.
A to nie musisz koniecznie nic trzymać w wewn. Flashu?
Bo zwykle zapisuje go bootloader (po otrzymaniu apgrejdu z zewnątrz np.
przez USB) i tam da się radę żyć nawet bez przerwań.
A do podręcznych rzeczy jeżeli nie potrzeba jakiejś hiper wydajności to
polecam podłączyć zwykły 8-nóżkowy EEPROM na I2C. Będzie jak w starym
dobrym AVR. :-)
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
7. Data: 2010-08-17 22:33:05
Temat: Re: Pisanie do Flasha w LPC17xx
Od: Mario <m...@p...onet.pl>
W dniu 2010-08-18 00:03, Adam Dybkowski pisze:
> W dniu 2010-08-17 23:27 Mario napisał(a):
>
>> Musiałbym zatrzymać scheduler. Z kolei na to żeby przenosić część
>> systemu do ramu to jestem za cienki. Chyba sobie dołożę bateryjkę i
>> skorzystam z rejestrów RTC.
>
> A to nie musisz koniecznie nic trzymać w wewn. Flashu?
> Bo zwykle zapisuje go bootloader (po otrzymaniu apgrejdu z zewnątrz np.
> przez USB) i tam da się radę żyć nawet bez przerwań.
Chciałem parę parametrów zmienianych przez użytkownika zapisywać z
poziomu programu. W AVRach byłem przyzwyczajony, że są rozdzielone flash
i eeprom. Na etapie projektowania w dokumentacji LPC zerknąłem, że da
się zapisać w pamięci programu używając IAP. No i myślałem że sobie
jakiś wyższy blok zajmę na przechowywanie zmiennych. Ale trochę mnie to
przerasta biorąc pod uwagę, że sadzam to na Freertosie i nie chcę w nim
za bardzo grzebać póki go nie znam.
>
> A do podręcznych rzeczy jeżeli nie potrzeba jakiejś hiper wydajności to
> polecam podłączyć zwykły 8-nóżkowy EEPROM na I2C. Będzie jak w starym
> dobrym AVR. :-)
Już po zawodach. Płytki już wykonane a terminy gonią. No chyba że w
przyszłości ją przeprojektuję wciskając małego EEproma. Póki co mogę
wykorzystać rejestry ogólne i rejestry alarmów w RTC tylko trzeba się
przeprosić z bateryjkami :)
Dzięki
--
Pozdrawiam
MD
-
8. Data: 2010-08-18 20:36:25
Temat: Re: Pisanie do Flasha w LPC17xx
Od: Adam Dybkowski <a...@4...pl>
W dniu 2010-08-18 00:33 Mario napisał(a):
>> A to nie musisz koniecznie nic trzymać w wewn. Flashu?
>> Bo zwykle zapisuje go bootloader (po otrzymaniu apgrejdu z zewnątrz np.
>> przez USB) i tam da się radę żyć nawet bez przerwań.
>
> Chciałem parę parametrów zmienianych przez użytkownika zapisywać z
> poziomu programu. W AVRach byłem przyzwyczajony, że są rozdzielone flash
> i eeprom. Na etapie projektowania w dokumentacji LPC zerknąłem, że da
> się zapisać w pamięci programu używając IAP. No i myślałem że sobie
> jakiś wyższy blok zajmę na przechowywanie zmiennych. Ale trochę mnie to
> przerasta biorąc pod uwagę, że sadzam to na Freertosie i nie chcę w nim
> za bardzo grzebać póki go nie znam.
Ja w podobnym przypadku w ATSAM7S256 z powodzeniem wykorzystywałem kilka
ostatnich stron Flasha do organizacji "niby EEPROMu". Ale mogłem
pozwolić sobie na wyłączenie przerwań w takiej chwili no i nie używałem
FreeRTOSa tylko innego systemu (firmowego wynalazku). A zapisy/kasowania
są tam na tyle szybkie, że nie powodują dłuższych przycięć. AFAIR
jedynym wymaganiem było tylko aby funkcje programowania chodziły z
wewnętrznego RAMu (trzeba było skopiować z Flasha przed użyciem).
Tu widzę, że NXP w prockach LPC już udostępnia własne gotowe funkcje,
które wystarczy wywoływać z wyłączonymi przerwaniami. Czyli czarna
skrzynka i nie wiadomo co jak się programuje w środku. To już wolę jasny
opis rejestrów do programowania Flasha w AT91SAM7xx.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.