Aktywne Wpisy
reddin +550
Do tragicznego w skutkach wypadku doszło w Ninkowie (gm. Borkowice). Ze wstępnych ustaleń wynika, że kierujący toyotą ciągnął na pasie holowniczym wózek inwalidzki, na którym siedział 92-latek. Na łuku drogi mężczyzna spadł z wózka i poniósł śmierć na miejscu.
#policja #wypadek #polskiedrogi
p0melo +15
Nie polecam przebranżowienia się do IT, szczególnie kobietom. Miałem znajomą która studiowała informatykę i po latach wyjechała z polski, że względu na toksyczne środowisko polskich informatyków. Rasiści, seksiści, troglodyci.
Na studiach laski słyszą od podstarzałych profesorów, że złe studia wybrały, pewnie męża szukają, lepiej niech zajmą się domem i dziećmi. Po skończeniu studiów dostają pracę, od kolegów z pracy słyszą że dostały prace za ładne oczy a poza tym nic nie umieją.
Na studiach laski słyszą od podstarzałych profesorów, że złe studia wybrały, pewnie męża szukają, lepiej niech zajmą się domem i dziećmi. Po skończeniu studiów dostają pracę, od kolegów z pracy słyszą że dostały prace za ładne oczy a poza tym nic nie umieją.
Przylutowalem już kabelki i uzyskałem dostęp do uboota.
Planuje więc przegrać uboota na jakąś współczesną wersję (sprawdziłem - jest) i zainstalować jakiegoś minimalnego Linuxa (daje się zainstalować Debiana 10). Zrobiłem szybki przegląd internetu i ostatecznie porzuciłem nadzieję że zrobię z tego sprzętu NASa. Na 32MB pamięci programu i 128MB RAMu nie postawi się żadnego webservera.
Chciałbym więc w ramach zabawy spróbować zwiększyć ilość pamięci programu przez zajęcie części pamięci RAM i poleganiu na mechanizmie cache procesora dla programu w ramie.
Robił ktoś kiedyś coś takiego? Czy Linux ma wsparcie dla takich mechanizmów? Spotkałem się z takim rozwiązaniem na innej rodzinie procesorów ale rozwiązanie było bare metalowe i przy pisaniu kazdej funkcji decydowało się w której sekcji pamięci dana funkcja wyląduje.
#linux #programowanie #embedded
Komentarz usunięty przez moderatora
Wszystko można pisać bare metalowo - to jest truizm. Ja chciałbym skorzystać z gotowego softu a nie tworzyć całość od zera.
Btw. Pracuję w embedded od kilku dobrych lat i wiem z doświadczenia że nawet na 32kB da się zmiescic sporo funkcjonalności.
Komentarz usunięty przez moderatora
Komentarz usunięty przez moderatora
@weller: paanie toż to OpenWRT z całą masą pakietów się zmieści. Squashfs i uClibc FTW!
@keton22: Nie pomyślałem o openwrt! Dzięki za pomysł. Znalazłem już jakiś magików co ownCloud dali radę odpalić.
Btw. Ciągle chętnie usłyszę o możliwościach linuxa w temacie wykrzystania ramu jako pamięci programu (zakładam tu oczywiście że uboot musiałby jakoś sprytnie to powgrywać)
Komentarz usunięty przez moderatora
@weller: mylisz SoC z MCU.
Tylko stage 1 bootloader jest wykonywany spod jakiegoś nanego adresu bo jakoś trzeba zacząć. Potem już ładuje się to co bootloader każe.
Nie wiem jaki dokładnie tam SoC siedzi ale na 99% to jest "execute from ram". Czyli wystarczy załadować kod do RAMu i skoczyć do adresu.
W ARMach masz tak że jak już załaduje się
Wg. mnie procesor nie jest w stanie pobrać instrukcji do wykonania której nie ma w przestrzeni adresowej (przecież instrukcja load ma w parametrze adres). Z tego co rozumiem bootloader w przypadku extroot pakuje część pamięci programu do ramu. Teraz weźmy przykład że SoC ma 128MB RAMu, wydzielamy
W SoC storage nie istnieje dla CPU. Owszem CPU może mieć wczytany program który wykonując się obsłuży jakiś storage i skopiuje jego zawartość do RAM. Ale wykonanie kodu idzie z RAM. I wtedy masz
W każdym razie, dzięki za tak obszerne odpowiedzi. Wychodzi na to że pewne rzeczy które są oczywiste w linuxie, w baremetalowych rozwiązaniach (w których pracuję) urastają