Jump to content

    

irq_handler

Добрый день.

Подскажите пожалуйста литературу по асемблеру для LPC-ек.

Спасибо.

Share this post


Link to post
Share on other sites

Добрый день.

Возник такой вопрос:

какую команду можно разместит в ячейке оперативной памяти с адресом 0x40000018, чтобы она загружала содержимое ячейки 0xffffff00 в PC?

Команда ldr pc,[pc,#0xffffff00-.-8] не прокатывает. Пишет, что смещение недопустимое.

Спасибо.

Share this post


Link to post
Share on other sites

ARM Architecture Reference Manual

Share this post


Link to post
Share on other sites
Добрый день.

Возник такой вопрос:

какую команду можно разместит в ячейке оперативной памяти с адресом 0x40000018, чтобы она загружала содержимое ячейки 0xffffff00 в PC?

Команда ldr pc,[pc,#0xffffff00-.-8] не прокатывает. Пишет, что смещение недопустимое.

Спасибо.

Это у вас вектор IRQ в RAM и вам нужен доступ к контроллеру прерываний?

так IRQ работать не будет, нужно отмапить RAM на 0 адрес. И тогда проблем с командой не будет.

Share this post


Link to post
Share on other sites
какую команду можно...

Одну? Одну никакую, ибо смещения в 32bit теле команды не хватит. Посему только загрузка непосредственного значения - а это два слова

Share this post


Link to post
Share on other sites

Присоединяюсь к KRS: надо ремапить RAM. В указанной инструкции диапазон смещения +/- 4095 байт. Только зачем так хитро? Для этого есть инструкция B (branch).

Share this post


Link to post
Share on other sites
Присоединяюсь к KRS: надо ремапить RAM. В указанной инструкции диапазон смещения +/- 4095 байт. Только зачем так хитро? Для этого есть инструкция B (branch).

насколько я понял имеется ввиду сразу jump на обработчик, который подсовывает контроллер прерываний. так что простым B тут не отделаешься.

Share this post


Link to post
Share on other sites
Одну? Одну никакую, ибо смещения в 32bit теле команды не хватит. Посему только загрузка непосредственного значения - а это два слова

Если не секрет, то какие?

Share this post


Link to post
Share on other sites
Возник такой вопрос:

какую команду можно разместит в ячейке оперативной памяти с адресом 0x40000018, чтобы она загружала содержимое ячейки 0xffffff00 в PC?

Зачем Вам эта команда по адресу 0x40000018? Вектор прерывания всегда на 0x18.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this