LINUX.ORG.RU

Ответ на: комментарий от lrod

Ищи доку по ядру(проца) на arm.com.

anonymous
()
Ответ на: комментарий от Dark_SavanT

я правильно понимаю:

после инструкции swi управлеие передастся обработчику прерываний, при этом процессор перейдет в режим IRQ (из которого уже можно переключиться в Supervisor)?

а после выходя из обработчика прерываний режим процессора вернется опять в System?

и я так и не понял, как установить этот обработчик

lrod
() автор топика
Ответ на: комментарий от lrod

Ты все перепутал :) посмотри книжку

ARM System Developer’s Guide Designing and Optimizing System Software
Andrew N. Sloss
Dominic Symes
Chris Wright

В главе 11 чуть ли не построчное описание минималистичной ОС специфичной для процессоров ARM, но начни лучше читать сначала.

bukinist
()
Ответ на: комментарий от bukinist

немного разобрался, но все равно не до конца получается вот, на основе примера из книги

				.global asm_swi_handler
asm_swi_handler:
		stmfd	sp!,{r0-r12,lr}		@ save context
		mrs	r2,spsr					@ copy spsr to r2
		stmfd	sp!,{r2}				@ save r2 onto the stack
		
		@bl	SWI_handler

		ldmfd	sp!,{r2}				@ restore the r2 (spsr)
		msr	spsr,r2					@ copy r2 back to spsr
		ldmfd	sp!,{r0-r12,pc}		@ restore context
		

после этого куска зависает

lrod
() автор топика
Ответ на: комментарий от bukinist

вообще то я далеко не ОС для arm разрабатываю (:
этот кусок выполняется внутри программы для WM

есть такая штука HaRET которая может загружать ядро linux из-под wince
когда начинается грузиться ядро, процессор должен быть в SVC mode, но у меня в system

lrod
() автор топика
Ответ на: комментарий от lrod

>этот кусок выполняется внутри программы для WM

А все остальные должны были по интонации догадаться ?

процессор должен быть в SVC mode, но у меня в system


Так перейди в svc - в чем проблема ? в system доступен cpsr на запись.

bukinist
()
Ответ на: комментарий от bukinist

Снова я. Теперь другой вопрос. Значит до загрузки ядра добрались. Даже больше - функция start_kernel выполняется до самого конца (точнее не до самого конца, а переходит в функцию schedule). Проблема в том, что на экран ничего не выводится. Вообще. В какую сторону копать не подскажите?

lrod
() автор топика
Ответ на: комментарий от Dark_SavanT

а когда вообще начинается инициализация устройств?

в драйвере framebuffer'а

platform_driver_register()

вызывается, но до

platform_driver.probe

так и не доходит

lrod
() автор топика
Ответ на: комментарий от Dark_SavanT

с трудом удалось заставить работать экран, теперь уже можно сказать, что загружается - монтируется initrd и мигает курсор

но, почему-то в /dev нету ни одного устройства (за исключением тех файлов, которые были в initrd), хотя команда mount выдает, что /dev/root смонтирован ( т.е. он есть ). Как устройства должны появляться в /dev? в /linuxrc лишь

mount -t proc /proc /proc
mount -t sysfs none /sys
lrod
() автор топика
Ответ на: комментарий от lrod

man udev, man mknod, man devtmpfs. это для начала.

Вкратце - файлы устройств в общем случае сами не создаются, их создаёт отдельный демон, который общается с ядром. Есть другой вариант - devtmpfs - файловая система для /dev при использовании которой все файлы устройств создаются сами, но оно местами сыро.(сужу по 2.6.35 которое используется в нашей железяке)

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

devtmpfs - оказывается забыл включить в конфиге ядра, теперь работает

вот такой вопрос: может ли оборудование работать не коректно, из-за того, что оно уже было инициализировано в WM?

и еще: никто не знает, что такое «wince resume vector»?

lrod
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.