Цитата(AlexandrY @ Oct 5 2014, 15:08)

Если есть стабильное исключение, то установить где оно происходит с помощью JTAG дело пяти минут.
И??... Установили что оно происходит к примеру в диапазоне адресов: 0x00000000...0xFFFFFFFF (каждый раз - в новом месте). Что дальше?
Как догадаться, что оно происходит к примеру: из-за переполнения/разрушения стека, после которого происходит POP {PC} в случайный адрес,
далее несколько тыс. команд CPU бродит по случайным адресам, пока не натыкается на нечто, вызывающее это исключение?
Хотя с определённой долей вероятности можно предположить, что у ТС всё проще. И раз код писали люди, не понимающие чем грозит *(int *)0x00000001
на CPU типа ARM9, то возможно что адрес исключения укажет на одну из точек бага.
Только начинать всё равно нужно с изучения мануала на CPU.
Цитата(kovigor @ Oct 5 2014, 16:33)

Не забудьте включить MMU, Instruction cache и Data cache, иначе выйдет не криптография, а сплошные тормоза.
Не очень понятно, как MMU повлияет на быстродействие...
Раскройте секрет.

Цитата(Harvester @ Oct 5 2014, 20:23)

Само устройство - 3G-модем. Соответственно, объем Firmware очень большой (исходников под 2 гига), само ПО - многоуровневое и многоступенчатое

, поэтому в "потроха" процессора я лезть не могу и не хочу.
Странный вывод....
Т.е. - если-бы ПО было простое - полезли-бы? Вы считаете, что сложность внутреннего устройства CPU увеличивается при усложнении ПО на нём выполняющегося???
Т.е. - в простом ПО типа HelloWorld в CPU имеется скажем всего 4 РОН, но при увеличении размера кода до 1гига - кол-во регистров может увеличиться до 256???