Skocz do zawartości

Obsługa tablicy Flash <-> RAM


Pawel88

Pomocna odpowiedź

Nie, do końca - teraz masz adres zmiennej ze wskaźnikiem do tablicy. Dlatego wolałem użyć nieco dłuższego zapisu:

tablica[0][0] to pierwszy element, czyli &tablica[0][0] to adres pierwszego elementu. Ponieważ w C tablica i wskaźnik to prawie to samo, więc można skrócić & z [0] i napisać tablica[0] - otrzymany kod będzie taki sam, ale chyba mniej widać intencję autora programu. Inna sprawa, że łatwo o błąd, jak chociażby to co napisałeś.

Link do komentarza
Share on other sites

OK, dziękuję.

Dopiero teraz zobaczyłem, że po lewej stronie użyłeś nową tablicę. Czy to jest poprawne?:

for(i=0; i<1023; i++){
  *(__IO uint16_t*)(Page_127 + i) = (uint16_t*)&tablica[0][0];
  {

Gdzie Page_127 to adres segmentu Flash.

Link do komentarza
Share on other sites

Czy ten zapis odnośnie powyższego RAM do Flash i z Flash do RAM jest poprawny?:

*(__IO uint16_t*)(Page_127 + i) = (uint16_t*)&tablica[0][0];

uint16_t *tablica[0][0] = *(__IO uint16_t*)(Page_127 + i);

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.