|
IAR goto my label, Прыжок на указанный адрес |
|
|
|
Feb 14 2010, 18:34
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(DigitalM @ Feb 14 2010, 20:39)  ijmp у него нет. Глаза на предыдущий пост #6 поднимите. Если не понятно, возьмите букварь. Как Вы думаете, сколько человек на форуме до Вас писали загрузчик? Цитата зависает.... Тысячи причин... Цитата Компилятор проверяет диапазон адресов и принимает... Sancta simplicitas  Куда послали туда и пойдет.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 14 2010, 18:57
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Xenia @ Feb 14 2010, 19:29)  Определите тогда себе метку в нужном вам месте, вставив туда ассемблерную вставку... Ну и способы у вас. Даже если инлайн ассемблер позволяет ставить глобальные метки и модифицировать PC, что бывает далеко не всегда, саму метку поставить не получится, т.к. нужно прыгнуть в другую программу. Цитата(DigitalM @ Feb 14 2010, 21:50)  С прыжком по условию (BNE 0x108000) тоже самое - виснет. Стесняюсь даже спросить, но почему B NE? Цитата(DigitalM @ Feb 14 2010, 21:50)  SETJMP.H подключил. А че с ним делать? Отключить и написать: Код (*(void(*)(void))(0x108000))(); Как уже советовали. Так по крайней мере будет уверенность, что процессор пойдет туда, куда послали. Для зависания действительно есть масса причин - не сброшенный контроллер прерываний, remap, переинициализация PLL и т.д. и т.п.
|
|
|
|
|
Feb 17 2010, 04:59
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003

|
Цитата(DigitalM @ Feb 16 2010, 18:33)  Вот еще один вопрос. Я указываю адрес в оперативке (0x200000) и хочу с нее считать данные в переменную Х. Как я могу это в IAR сделать? Даже легче чем прыгнуть Код int X; X = *(int*)0x200000; В общем смысл в том, что Вы преобразуете адрес в указатель на требуемый тип а затем берете данные по этому указателю. Модератору: Извините, не заметил вторую страницу прошу удалить пост.
Сообщение отредактировал smac - Feb 17 2010, 05:01
|
|
|
|
|
Feb 19 2010, 13:22
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(DigitalM @ Feb 19 2010, 12:50)  А ссылку на букварь можно? То есть "я нихера не умею, потому что не знаю, но кидаться цифрами с потолка - легко" Цитата(DigitalM @ Feb 19 2010, 12:50)  Разница в программном коде в 10 раз, а в производительности в 2-3 раза. Продолжайте писать на ассемблере, затрачивая в 10 раз больше времени. P.S. Букварь - Керниган и Ритчи. "Язык программирования С". Гугль в помощь.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Feb 19 2010, 18:23
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326

|
DigitalMОткуда у Вас такие цифры о том, что между C и asm разница в программном коде в 10 раз, а в производительности в 2-3 раза? А то мужики-то и не знают как правильно кодировать.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|