Witam,
Zajmuję się amatorsko programowaniem mikrokontrolerów ARM.
Tworząc oprogramowanie zatrzymałem się na multitaskingu dla programów pod mój system.
Problem polega na adresowaniu skoków/danych w programach gdzie system nie umożliwia wirtualnego adresowania pamięci wynikającego z architektury niektórych mikrokontrolerów. Jedynym rozwiązaniem jakie widzę to adresowanie względne(np. miedzy daną instrukcją), lecz w niektórych przypadkach jest to niemożliwe(znowu w niektórych przypadkach architektura na to nie pozwala), albo kłopotliwe. Problemu by nie było gdyby programy uruchamiane były pod tym samym adresem w pamięci, lecz system nie posiadałby multitaskingu. Myślałem nad kopiowaniu programów(na zmianę) pod dany adres i uruchamianiu, niestety jest to procesożerne.
Podsumowując, potrzebuje uruchomić kilka programów dla mojego systemu - z multitaskingiem nie ma problemu, tylko z adresowaniem, gdyż każdy program ląduje pod innym adresem w pamięci - z braku pamięci wirtualnej.
Widziałem że niektóre osoby z tego forum zajmują się pisaniem systemów operacyjnych - może jakieś wskazówki?
Jak ten problem rozwiązać?