|
Портирование кода с ПК на ARM926 |
|
|
|
 |
Ответов
|
Oct 5 2014, 15:34
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(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???
|
|
|
|
|
Oct 6 2014, 15:07
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414

|
Цитата(jcxz @ Oct 5 2014, 19:34)  Не очень понятно, как MMU повлияет на быстродействие... Раскройте секрет.  Причина в том, что во многих АРМовских процессорных ядрах, в том числе на ARM926, кэш данных может работать только при включённом MMU. Соответственно, если MMU выключено, кэш данных не работает и любое обращение к памяти реально обращается к памяти  А это, понятное дело, -- большие задержки. Поэтому, даже если виртуальная память совершенно не нужна, крайне рекомендуется включать MMU, заполнив переадресации таким образом, чтобы виртуальные адреса просто совпадали с физическими, а защита не использовалась.
|
|
|
|
|
Oct 6 2014, 17:11
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(SII @ Oct 6 2014, 21:07)  Причина в том, что во многих АРМовских процессорных ядрах, в том числе на ARM926, кэш данных может работать только при включённом MMU. Соответственно, если MMU выключено, кэш данных не работает и любое обращение к памяти реально обращается к памяти  А это, понятное дело, -- большие задержки. Поэтому, даже если виртуальная память совершенно не нужна, крайне рекомендуется включать MMU, заполнив переадресации таким образом, чтобы виртуальные адреса просто совпадали с физическими, а защита не использовалась. Да, пожалуй Вы правы: Открываем TRM на ARM926EJ-S раздел "Caches and Write Buffer": Table 4-3 CP15 c1 C and M bit settings for the DCache C bit/M bit____ARM926EJ-S behavior ... 1/0______DCache enabled, MMU disabled. The C bit is overridden by the M bit setting, so that the DCache is _________effectively disabled. All data accesses are noncacheable, nonbufferable, with no protection checks. All _________addresses are flat mapped, that is VA = MVA = PA. ...
|
|
|
|
Сообщений в этой теме
Harvester Портирование кода с ПК на ARM926 Oct 5 2014, 05:53 Виктория Для ARM используется gcc? Oct 5 2014, 08:32 jcxz Цитата(Harvester @ Oct 5 2014, 11:53) Име... Oct 5 2014, 08:44 Виктория Размерности по типам данных в обоих компиляторах с... Oct 5 2014, 09:07 kovigor Цитата(Harvester @ Oct 5 2014, 08:53) ...... Oct 5 2014, 10:33 Lagman Вангую, на 100% это все крутится под линукс. Oct 5 2014, 11:13 AlexandrY Цитата(Lagman @ Oct 5 2014, 14:13) Вангую... Oct 5 2014, 12:04  Harvester Цитата(AlexandrY @ Oct 5 2014, 16:04) Кто... Oct 5 2014, 14:23   AlexandrY Цитата(Harvester @ Oct 5 2014, 17:23) На ... Oct 5 2014, 17:44    Harvester Цитата(AlexandrY @ Oct 5 2014, 21:44) Да,... Oct 6 2014, 10:04     AlexandrY Цитата(Harvester @ Oct 6 2014, 13:04) Ну,... Oct 6 2014, 10:26      Harvester Цитата(AlexandrY @ Oct 6 2014, 14:26) А к... Oct 6 2014, 10:51       AlexandrY Цитата(Harvester @ Oct 6 2014, 13:51) Я р... Oct 6 2014, 11:49        Harvester Цитата(AlexandrY @ Oct 6 2014, 15:49) А к... Oct 6 2014, 13:19         kovigor Цитата(Harvester @ Oct 6 2014, 16:19) Воб... Oct 6 2014, 13:35          Harvester Цитата(kovigor @ Oct 6 2014, 17:35) Прост... Oct 6 2014, 13:52          AlexandrY Цитата(kovigor @ Oct 6 2014, 16:35) Прост... Oct 6 2014, 14:13           Harvester Цитата(AlexandrY @ Oct 6 2014, 18:13) Ари... Oct 6 2014, 14:28 Виктория Цитата(Harvester @ Oct 5 2014, 08:53) Име... Oct 5 2014, 17:31 jcxz Цитата(Виктория @ Oct 5 2014, 23:31) Отла... Oct 5 2014, 20:31 Genadi Zawidowski Вам сказали
ЦитатаНумерация байтов и бит в слове
В... Oct 6 2014, 15:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|