| Форум РадиоКот https://radiokot.ru/forum/ |
|
| AM3358 и программирование на ассемблере https://radiokot.ru/forum/viewtopic.php?f=59&t=126851 |
Страница 1 из 1 |
| Автор: | Мяукните! [ Пт фев 05, 2016 23:10:04 ] |
| Заголовок сообщения: | AM3358 и программирование на ассемблере |
Фактически готов startup code на чистом ассемблере для процессора Sitara AM335x. Код представляет собой пошаговую настройку функциональных модулей - аналогично любому кортексу. Поставили битик, дождались флажка, записали регистр, другой, третий... Так постепенно камушек оживает и выходит на 100% рабочий режим. В качестве платформы разработки использован BeagleboneBlack с процессором AM3358BZCZ100. + UART шнурок для заливки кода в камушек и получения отладочных сообщений. + монитор, подключенный через HDMI - DVI-D переходник. Котейки! Я трудился целый месяц, непокладая лапок. И добился рабочего результата. Анонс выложил здесь. Код нужно почистить, ещё немного осознать всё это (было трудно) и начну выкладывать. Это была целая эпопея. У нас информации пока ноль, а на западе народ активен и копают большие кортексы на ассемблере только так. Мне помогали, делились фрагментами. Узнав, что я делаю чистый startup на ассемблере - радовались и начинали ждать, как говорится. Я понимаю, что именно поднять вот этот фундамент, не так просто. Нужен особый склад ума. Нулевой цикл - это вам не сказки.. да.. Но я сделал его. Кроме самого кода, хочу собрать на сайте информацию по азам работы с подобного рода камушками. Ведь у них же нет встроенной флешки - что делать? Кому мяукать? Куда бежать? Оказывается выход есть! Может быть кто-то уже пытался самостоятельно действовать в этом направлении? Владельцы Beaglebone - отзовитесь! Есть идея потестировать код на предмет стабильности, могу выкладывать бинарники. |
|
| Автор: | Neekeetos [ Сб фев 06, 2016 13:25:09 ] |
| Заголовок сообщения: | Re: AM3358 и программирование на ассемблере |
Мяукните! писал(а): Фактически готов startup code на чистом ассемблере для процессора Sitara AM335x. Код представляет собой пошаговую настройку функциональных модулей - аналогично любому кортексу. Поставили битик, дождались флажка, записали регистр, другой, третий... Так постепенно камушек оживает и выходит на 100% рабочий режим. В качестве платформы разработки использован BeagleboneBlack с процессором AM3358BZCZ100. + UART шнурок для заливки кода в камушек и получения отладочных сообщений. + монитор, подключенный через HDMI - DVI-D переходник. Чисто из любопытства, а в чем смысл данной затеи? Чип то довольно мощный, вряд ли найдется энтузиаст, нарисующий драйвера для периферии. Для этой платы существуют сборки линупса, если не устраивает скорость, или занимаемый объем то и ртос типа QNX - http://www.qnx.com/partners/ti/ или же взять ртос попроще от самого техаса - sys/bios - http://www.ti.com/tool/sysbiossdk-ind-sitara . Думаю подобного базового функционала достичь путем программирования на ассемблере нереально, максимум получится что то вроде https://ru.wikipedia.org/wiki/Therac-25 , "20 тысяч инструкций кода и было разработано одним программистом в течение нескольких лет", самописная ос реального времени без элементов синхронизации, короче бесполезная и временами опасная хрень.
|
|
| Автор: | Мяукните! [ Чт фев 11, 2016 23:11:45 ] |
| Заголовок сообщения: | Re: AM3358 и программирование на ассемблере |
Довольно любопытная информация. На сайте ARM выложены результаты замеров скорости копирования блоков ОЗУ - ОЗУ. Цифры выглядят нереальными. Сотни мегабайт в секунду! Я провёл аналогичный тест на beaglebone. Это такой же ARMv7 Cortex-A8 и тестовый код с сайта я просто скопировал мышкой. Тактовая частота ядра 1 ГГц. Замеры производились на пересылке блока в 100.000 байт между L3 и DDR3. В качестве хронометра, использовался встроенный в ядро счётчик машинных циклов, вроде DWT. Я проверил только самый быстрый и самый медленный вариант кода. И вот что получилось. Классическое копирование, считали в регистр - сохранили в память.. Word by Word memory copy: L3 -> DDR = 600 мб/сек DDR -> DDR = 173 мб/сек Множественное чтение / сохранение с ускорителем на PLD NEON memory copy with preload: L3 -> DDR = 1077 мб/сек DDR -> DDR = 412 мб/сек Инструкция PLD даёт ещё 10-20% к скорости. Нужно учитывать, что в процессоре заряжен LCD контроллер, с установленным разрешением 1680*1050*60. А это подкачка буфера >200 мб/сек. Если LCD отключен, процесс копирования ускоряется ещё процентов на 10. Ну что же, отличный результат для такого малыша! Свыше гигабайта в секунду. А ведь это всего-навсего одна маленькая 16-битная микросхемка памяти. Зрители из партера, позвените своими бриллиантами и кошельками! Зрители с галёрки - пошипите и пофыркайте! |
|
| Автор: | danone78 [ Пн июн 12, 2023 20:29:39 ] |
| Заголовок сообщения: | Re: AM3358 и программирование на ассемблере |
чем компилировать то? что-то в Keil я не нашел под него ничего. |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


