Skocz do zawartości

Obsługa tablicy Flash <-> RAM


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ś.

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.

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);

 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...