18-08-2016, 21:23
(17-08-2016, 20:05)SQ8MVY napisał(a): Nie chcę, aby z tego tematu zrobił się śmietnik, z nic nie wartymi kodami. Jeżeli już, to trzymajmy się jakiegoś standardu. Takim stał się EmBitz i CMSIS bez dodatkowych bibliotek HAL, czy SPL. Taka paczka powinna się dać bez problemu rozpakować, otworzyć w EmBitz, oraz BEZ BŁĘDÓW skompilować, a co najważniejsze uruchomić poprawnie na STM32F429I-Disc1(0)
Moim zdaniem to powinna być generalna zasada zamieszczania własnych przykładów na naszym forum. Nie przenośmy tutaj najgorszych wzorców z elektrody. Rzucamy kawałek kodu a reszta niech kombinuje co autor miał na myśli. Projekty mogą powstawać w innym środowisku ale muszą być kompletne, kompilowalne i działające bez konieczności dogrywania brakujących plików.
Krótko przeglądałem kod do inicjowania SDRAM-u. Konfiguracja pinów wydaje się poprawna natomiast ustawienie rejestrów SDCR[0], SDCR[1] jest niewłaściwe. Trzeba posiedzieć nad opisem obsługi SDRAM-u. Jest też jakiś problem z optymalizacją kodu, stąd zmienna pośrednia volatile ptr przed zapisem do rejestru.
Kod:
ptr = FMC_SDCR1_SDCLK_1 | FMC_SDCR1_RPIPE_0;
FMC_Bank5_6->SDCR[0] = ptr;
ptr = FMC_SDCR1_NR_0 | FMC_SDCR1_MWID_0 | FMC_SDCR1_NB | FMC_SDCR1_CAS |
FMC_SDCR1_SDCLK_1 | FMC_SDCR1_RPIPE_0;
FMC_Bank5_6->SDCR[1] = ptr;Po wykonaniu powyższej modyfikacji wykonuje się funkcja inicjowania SDRAM-u i poprawnie kasuje ramka obrazu.
W załączniku działająca paczka pod EmBitz (BUBAMUBA + paczka QRP73 + poprawki SP5FCS). Trzeba jeszcze poprawić konfigurację LTDC i przerobić kod na kolor formatu RGB565. Szkoda pamięci i czasu procesora na 24 bitowy kolor.
73 Adam

