Logowanie i inne rzeczy o których mówisz jak dla mnie nie leżą w gestii systemu operacyjnego samego w sobie, tylko dodatkowych programów/wątków na nim uruchomionych (shell, UI, ...). Sam system na takich prostych mikrokontrolerach zapewnia tylko wielowątkowość i nic więcej, na pewno w gołym FreeRTOS tego nie ma.
Na gotowo takie rzeczy są w Linuxach, ale na tej płytce nie uruchomisz nawet ucLinuxa wg mnie (za mało pamięci).
Twój profesor mówiąc "logowanie do systemu" miał zapewne na mysli porozumienie - komunikowanie się z systemem uruchomionym na płytce ewaluacyjnej. Krótko mówiąc skomunikowanie się z płytką HY Mini. Jeżeli chodzi o tą płytkę to masz przecież wszystko co Ci potrzebne, żeby właśnie to zrobić. Płyta ma aż 2 porty USB, jeden podłączony przez konwerter do UART-a, drugi wprost do portu USB STM32F103. Masz oprogramowanie demonstracyjne do obsługi mikroSD (gniazdo jest na płytce), program w katalogu "USB-Mass_Storage-SD Card". Płyta, po wgraniu tego oprogramowania zachowuje się jak pendrive. Resztę robi system Windows lub jeżeli chciałbys się pokusic o mini system do obsługi karty SD, to możesz napisać kilka linijek kodu do komunikacji przez USB-USART (zresztą przykład też jest w demo) i sterować tym wszystkim przez zwykły terminal Windowsa po zainstalowniu sterownika COM-USB w Windows. Ale tego sie nie zrobi na przykładowym demo uCos, który oprócz pokazania swoich możliwości nic nie robi. Wykasuj to migające g... z procesora i do roboty (programowania), bo wszystko co Ci potrzebne dostałeś z tą płytką I moim zdaniem niepotrzebne Ci żadne rtos-y, systemy itp. Bo tak prosty program robi zwyczajna standardowa pętla while (1) ... Pozdro
najbliżej prawdy jest freddy gdyż nie doszło tu do żadnej pomyłki i na procesorze należy uruchomić RTOS
i właśnie mam się zalogować do stystemu lub jak on to określił ma mi się pojawić "zachęcający podkreślnik" potem mam uruchomić funkcje logowania
jeżeli jest to sprawa dodatkowych procesów i można to uruchomić z µC/OS-II(free rtos w sumie niezgorszy i mógłbym nim zaliczyć)
to byłbym zainteresowany dokładniejszymi informacjami
zostało mi na to całe 2 dni:D więc wszelka pomoc będzie mile widziana
Widząc Twoje doświadczenie to z jeden dzień przy dobrych wiatrach Ci pójdzie na wgranie gołego RTOSa a drugi dzień na napisanie tego terminalu o którym mówisz Gotowca raczej nie dostaniesz, ale z drugiej strony napisanie terminalu np po UARcie to nic innego jak wysłanie tego znaku zachęty po uart i oczekiwanie na komendy co jest raczej proste.
W najprostszym przypadku:
1 wysyłasz np znak # przez UART
2 w PC odbierasz znak #, uC czeka aż mu coś poślesz
3 wysyłasz mu stringa "dupa\r\n"
4 procesor odbiera stringa, parsuje go i jeśli jest poprawny to zapala diodę, jeśli string nic nie znaczy goto 5
5 goto 1
A w międzyczasie, gdy wątek obsługi UARTA czeka na wpisanie czegokolwiek z klawiatury terminala do sparsowania, drugi wątek odtwarza film na ekraniku HY32D To będzie czad i profesor będzie na pewno zadowolony. A tak poważniej już. Po to są wszelkiego rodzaju cuda w postaci freertos, uCos lub rtx keila, żeby nie przetwarzać programu liniowo, tylko własnie posługiwać się wątkami. Napisanie wątku wyłacznie dla UARTA nie pokazuje że pracujesz w systemie rtos, musisz jeszcze w innym wątku np. mrugać diodami led
cech
napisać znak zachęty przez uart ale raczej się nie nabie że
z tego co mi mówił po zalogowaniu można składać po drzewie wszystkie pliki przeglądać i edytować
więc stwierdziłem że to jest na tyle obszerne że raczej z palce się tego nie pisze
edit
próbowałem bez systemu odpalić zdjęcie na moim 3,2 i poległem w freertos też coś nie podołałem że tak się zapytam ma ktoś jakieś gotowce :/
cech
napisać znak zachęty przez uart ale raczej się nie nabie że
A Ty myślisz, że jak to jest niby inaczej zrobione ? On się nie ma nabierać tylko to tak po prostu wygląda.
tomasz1987 wrote:
z tego co mi mówił po zalogowaniu można składać po drzewie wszystkie pliki przeglądać i edytować
więc stwierdziłem że to jest na tyle obszerne że raczej z palce się tego nie pisze
Są biblioteki do obsługi systemu plików. Napisanie "handlera" do wywołań terminalowych do przeglądania plików to też chyba niewielki wyczyn.
Quote:
że tak się zapytam ma ktoś jakieś gotowce :/
Powodzenia Ktoś się namęczył żeby teraz leniowi, który się obudził po pół roku, dawać gotowce
w sumie jest się ciężko przestawić w zawsze mającego czas 4-kowego studenta dziennego na zawsze zajętego pracą studenta zaocznego tak w sumie ledwo ciurkającego
Tomasz. Ja poważnie mówię, że na płycie CD dołączonej do STM32f103-mini masz gotową obsługę karty SD, łącznie z przeglądaniem katalogów, plików itd. Masz też drugi program do obsługi UARTA przez USB. Jest też Freertos w wersji 6. Jak połaczysz te 3 programy w jedną całość to masz wszystko czego potrzebujesz. To jest gotowe oprogramowanie. Wystarczy je nieznacznie zmodyfikować. A zaletę ma taką, że zostało napisane i skonfigurowane pod Twoją płytkę STM32-mini, więc na pewno działa. Skoro nie masz za wiele czasu, to jest to dobre rozwiązanie, bo wystarczy podstawowa wiedza o rtos i płytce STM32-mini, a reszta to CTRL C, CTRL V
sd jest ale podłącza się jako pen nie można tego modyfikować spod lini komend chyba że czegoś niewiem
Ale o czym Ty mówisz ? O podłączeniu do uC ? W kompie tak jest jak mówisz, ale kolega wyżej miał na myśli użycie karty SD w mikrokontrolerze. Z poziomu PC używasz tylko terminalu po UART do obsługi diod, SD, wyświetlacza, czegokolwiek w mikrokontrolerze.
Ale przecież wg schematu masz slot na kartę SD i nie ma on nic wspólnego ani z pendrivem ani z USB. Pendrive'a nie obsłużysz, ponieważ musiałbyś mieć obsługę USB host a takowej ten mikrokontroler nie wspiera.
kurtka
karta podłączona jest do mikro klocka
ładuje program do karty sd podłączam usb do kompa i pokazuje mi się moja karta jako urządzenie usb
edit
może dosyć przedrzeźniania jakieś konkrety potrzebuję konkretów
wspominałeś coś o bibliotekach do obsługi plików mógłbyś napisać gdzie to znalazłeś?
Być może jest to jedna z funkcjonalności, jakie dostarcza wgrane tam DEMO, bo to tak nie działa Nie przedrzeźniam się, tylko mówię jak jest.
Poszukaj w necie FatFS lub PetiFS ale ta ma trochę ograniczone możliwości. Któraś z nich była kiedyś dołączana do FreeRTOSa więc całkiem możliwe, że już ją gdzieś masz.
Ale po co szukać po necie, skoro na płytce CD dołączonej do zestawu STM32F1-Mini są wszystkie potrzebne komponenty? Mają ponadto tę zaletę, że są juz skonfigurowane pod dokładnie ten zestaw. Tomasz zacznij od wgrania do procesora gotowego FreeRtos 6.0, ma juz zdefiniowane 2 wątki:
1. mruga diodami - możesz go zostawić, będzie widać, że system pracuje
2. wyświetla napis na LCD.
Jak to skompilujesz, wgrasz do Cortexa i będzie działało to odewij się, powiem Ci co dalej (skonfigurujemy wątek nr 3 jako obsługę UARTA).
Pozdro
wgranie programu to pryszcz chodzi to bez problemu i mówimy tu o freertos
edit
za 3 min będę miał podłączona makietę i możemy startować ewentualnie jakiś komunika
efekty wstawi się na elektrodę co by inni mieli
edit 2
okazuje się że po pracy miałem jakiś zaciemniony umysł ale dostałem 24h wolnego i teraz widzę
Code: c
Log in, to see the code
Code: c
Log in, to see the code
no i ciało funkcji aczkolwiek chętnie przyjmę pomoc na jakiś komunikator
największy problem sprawia mi podłączanie plików do keila prawie zawsze mi wywala nie wiem co dokładnie w jakiej kolejności
Dołożony jest trzeci wątek do obsługi UARTA (dwa już są w oryginale).
Wątek ma niski priorytet, ale to nie przeszkadza.
Konfiguracja samego UARTA dla płytki HY32mini wygląda tak:
I na razie bez żadnego parsera koment, po prostu sprawdź, czy działa Ci echo po podłączeniu przez terminal Windowsa. Czyli, to co wyślesz z terminala po COM powinno się pokazać jako bajt odebrany.
Czyli wątek UARTA wyglądałby tak:
Jak to uruchomisz daj znać. Ja płytkę mini mam gdzieś w piwnicy, mogę ją wygrzebac i przez weekend coś da radę zrobić. Teraz tylko bardziej "teoretycznie" bez płytki
było kilka małych błędów
poprawiłem skompilowałem 0 error(s), 0 Warning(s)
jak tylko uruchomi się mi 2 komputer to sprawdzę czy dział niestety nie potrafię skonfigurować terminala do win7 64bit :/
OK. Ja też jestem w pracy i nie zawsze mogę o tej porze coś robić. Ale dalej:
Do testowego używania UARTA przyda się "podmienienie" standardowej obsługi funkcji printf na taką, która wysyła dane przez UARTA do naszej Windowsowej konsoli.
Możesz to wpisac standardowo przed obsługą assert_failed()
/**
* @brief Retargets the C library printf function to the USART.
* @param None
* @retval None
*/
PUTCHAR_PROTOTYPE
{
/* Place your implementation of fputc here */
/* e.g. write a character to the USART */
USART_SendData(USART1, (uint8_t) ch);
/* Loop until the end of transmission */
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
{}
return ch;
}
Po takiej definicji funkcja printf(*char) będzie wysyłała teksty wprost do USARTA.
I od razu podpowiem, że do katalogu USER musisz przekopiować w całości podkatalogi "FATFS_V0.08A" oraz "SD_Card" z przykładu o nazwie FATFS V0.08A-SD Card, no i oczywiście w opcjach projektu musisz pokazać ścieżki do tych katalogów, co by kompilator wiedział, gdzie szukać plików Potrzebne Ci będa następujące pliki nagłowkowe, które możesz dołożyć od razu do pliku main.c :
#include "sdio_sd.h"
#include "ff.h"
Spróbuj poskładac to do kupy i zrób tak, żeby się skompilowały wszystkie potrzebne pliki. M. innymi dołaczyc się powinien automatycznie plik "ffconf.h" służący do konfiguracji działania FAT.
3 proces uruchomiony działa wspaniale
aktualnie jest gruz z podłączeniem FATFS
linker nie widzi plików najprawdopodobniej literówka gdzieś tylko że znajdowanie literówek to nie moja specjalność
sytuacja opanowania
stm32f10x_conf.h był żle skonfigurowany
W najprostszym przypadku:
1 wysyłasz np znak # przez UART
2 w PC odbierasz znak #, uC czeka aż mu coś poślesz
3 wysyłasz mu stringa "dupa\r\n"
4 procesor odbiera stringa, parsuje(musisz go porównać z tymi danymi, które są poprawne, czyli w najprostszy sposób robisz funkcję która Ci sprawdza po kolei każda litere i jak jakaś jest zła to nie dostaje dostępu, można to zrobić zarówno dla loginu jak i dla hasła) go i jeśli jest poprawny to zapala diodę, jeśli string nic nie znaczy goto 5
5 goto 1
no a jak uwierzytelnianie będzie poprawne to wtedy możesz np wysłać do kompa strukturę folderów na karcie SD np. można funkcją readdir odczytać zawartość folderów.