Jaka jest minimalna ilość pamięci RAM wymagana do uruchomienia jądra Linux w ARM cortex-a5?


1

Chcę wiedzieć, jaka jest minimalna ilość pamięci RAM wymagana do uruchomienia jądra Linux (4.6) w ARM cortex-a5.

Teraz używam 32MB PSRAM, ale za każdym razem, gdy ładuję vmlinux (format elf) przez debugger do PSRAM, memcpy () nie działa, co znajduje się wewnętrznie w printk.

Mój początkowy adres PSRAM to 0x20000000. Tak więc, aby utworzyć punkt wejścia elf I zmodyfikowałem arch / arm / Kconfig jak poniżej,

config PAGE_OFFSET
    hex
    default PHYS_OFFSET if !MMU
    default 0x40000000 if VMSPLIT_1G
    default 0x80000000 if VMSPLIT_2G
    default 0xB0000000 if VMSPLIT_3G_OPT
 (-)default 0xC0000000
 (+)default 0x20000000

Tak więc za każdym razem, gdy memcpy () zaczyna go blokować. Plz daj mi znać, gdzie się mylę.

Rozmiar Vmlinux z symbolami debugowania: 10,9 MB. Loading_DTB @ wyższa lokalizacja pamięci.


„Ładuję vmlinux” - Nie, powinieneś załadować obraz lub zImage. Jakiego SoC używasz? Czy nie ma wsparcia ze strony producenta chipów? Badanie lxr.free-electrons.com/source/Documentation/arm/Booting BTW Twoja edycja do PAGE_OFFSET jest błędna.
sawdust

Właściwie potrzebuję także obsługi symbolu debugowania dla jądra Linuksa. Jeśli więc użyję pliku binarnego, nie otrzymam obsługi symboli debugowania. Korzystam z interfejsu JTAG z debugerem segger JLink. Wprowadzanie jądra do FPGA z niestandardowym SOC. Do załadowania elfa wymagany jest adres wejścia elfa. Dla jądra Linuksa jest to domyślne 0xC0000000, jeśli zaznaczę vmsplit 3G / 1G. Ale dla mojego przypadku RAM zaczyna się od 0x20000000. Tak więc, muszę zastąpić wartość C0000000 moim adderem bazy. Czy jest jakiś alternatywny sposób?
Anindya

Czy będziesz się spierać z Russellem Kingiem, który napisał, że powinieneś uruchomić zImage lub Image? (Jeśli nie wiesz, kim on jest, przeczytaj armlinux.simtec.co.uk/whoswho.html ) Format ELF jest bezużyteczny; musisz uruchomić surowy obraz. Nadal możesz uzyskać symbole debugowania. Konwencjonalne obciążenie i adres startowy jądra ARM to start-of-phys-mem plus 32KB; dla twojej deski, która byłaby 0x20008000. Nie modyfikuj konfiguracji PAGE_OFFSET; to nie tak, jak myślisz.
sawdust

Czy możesz podać kilka informacji dotyczących debugowania binarnego jądra Linuksa. Używam eclipse z debugerem seggera, ale za każdym razem, gdy ładuję mój plik binarny jądra, zamiast pobierać kod po wierszu, pokazuje tylko nazwy funkcji i zespół (@ dissembler).
Anindya

W każdym razie nie mam zamiaru kłócić się, ponieważ właśnie przestrzegałem instrukcji, o której była mowa w devel.timesys.com/embedded-linux/docs/…
Anindya
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.