Jump to content
    

Было желание добавить к нему GDB, но руки так и не дошли.

Собственно у меня была создана своя экосистема с AVR CPU, Ethernet MAC, Ethernet Switch, DDR контроллером, своим стеком для Ethernet/RS485 с встроенным отладчиком/дампом памяти, обновлением прошивки и еще кучей разной периферии. Отладка велась через дампы памяти и запись/чтение любой ячейки памяти доступной процессору по специальному протоколу. Также был сделан универсальный клиент/тестовое ПО и набор библиотек для ПК. Этакий набор кубиков позволяющий построить нужную мне систему не тратя впустую кучу ресурсов. Причем сразу с отладкой и обновлением прошивки.

Почти 10 лет они служили мне верой и правдой в моих проектах, но с переходом на новую работу все мои наработки оказались никому не нужны...

Вот я и думаю, что с ними делать. Выложить как есть не вариант. На половину блоков нужно написать документацию, без этого они будут ничем не лучше любой файлопомойки с исходниками. Просто забросить тоже жалко. А поддерживать все это дело теперь времени нет...

Share this post


Link to post
Share on other sites

9 часов назад, BSACPLD сказал:

Вот я и думаю, что с ними делать. Выложить как есть не вариант. На половину блоков нужно написать документацию, без этого они будут ничем не лучше любой файлопомойки с исходниками. Просто забросить тоже жалко. А поддерживать все это дело теперь времени нет...

Превратите все это в статьи и - к нам в КиТ. Опишите не исходники а методу, технологию построения проектов. И пригласите читателей к сотрудничеству. Вполне возможно, что кто-то из студентов, аспирантов этим заинтересуется и под Вашим руководством доделают то, что нужно.

Share this post


Link to post
Share on other sites

А исходники - в виде репозитария/группы репозитариев на github.

Если кто-нибудь захочет вам помочь с описанием и приведением в нужный вид - будете принимать коммиты.

А если желающих не будет - вы ничего не теряете.

PS. Это, конечно, если нет идеи монетизировать свои наработки.

Share this post


Link to post
Share on other sites

2 hours ago, dvlwork said:

А исходники - в виде репозитария/группы репозитариев на github.

Если кто-нибудь захочет вам помочь с описанием и приведением в нужный вид - будете принимать коммиты.

+1

Эдакий краудсорсинг, один в поле не воин это точно.

 

 

Share this post


Link to post
Share on other sites

Выкладываю обновленную версию.

https://yadi.sk/d/ONruHxgmMKzFJg

 

Добавлены команды JMP и CALL.

Произведен рефакторинг кода.

 

Характеристики процессора:

- Язык описания SystemVerilog 2005.

- Совместимость по системе команд с микроконтроллерами семейства AVR.

- Максимальная тактовая частота 45 МГц (кристалл EP4CE22E22I7).

- Максимальный объем ПЗУ команд 64KБ.

- Максимальный объем ОЗУ 64KБ.

- Стек вынесен в отдельную память.

- Регистры РОН и РВВ не отображаются на область ОЗУ.

- Программируемые адреса прерываний (до 15 штук).

- Уменьшенное время выполнения многотактовых команд (см. файл "система команд (синхронная память).html" и "система команд (асинхронная память).html").

- Возможность работы с внешней памятью, как в синхронном (за 2 такта), так и в псевдоасинхронном (за 1 такт) режиме.

- Малая занимаемая площадь на кристалле (ядро ~2100 LE).

- GPIO интерфейс.

- Master SPI и Master/Slave SPI с двойной буферизацией на прием и передачу.

- UART с аппаратным управлением полудуплексным приемопередатчиком.

- Таймер разрядностью 32 бита.

- WDT с прерыванием.

- Возможность добавления пользовательской периферии (см. файл avr_cpu.sv).

- Кроссплатформенная реализация. Проект тестировался на ПЛИС Altera/Intel (Quartus), Xilinx (Vivado) и GOWIN (Synplify).

- Отдельная параллельная шина для динамической смены прошивки в уже запущенной системе.

- Поддержка C/C++ (IAR), ассемблер (IAR, AvrAssembler).

 

Параметры:

INIT_PROGRAM = "", - путь к файлу инициализации прошивки. *.mif для Altera/Intel, *.ver для остальных производителей.

PROGRAM_MEMORY = 8192, - размер памяти программ в байтах

STACK_MEMORY = 512, - размер стека в байтах

RAM_MODE = "SYNC", - режим работы с ОЗУ, "SYNC" – синхронный, "ASYNC" – псевдоасинхронный.

FPGA_VENDOR = "", - наименование производителя FPGA, например, "INTEL". Используется для выбора типа блочной памяти. Примитивы Altera/Intel, либо на чистом HDL.

DEVICE_FAMILY = "", - семейство микросхем FPGA.

SIM_INIT = "FALSE" – инициализация переменных начальными значениями, "TRUE" – инициализация 0, "FALSE" – инициализация X

Share this post


Link to post
Share on other sites

Только сейчас дошли руки выложить :(

Обновленная версия.

https://yadi.sk/d/ghSD883uiIS5cw

Для Xilinx сделан вариант с использованием xpm макросов.

Теперь содержимое памяти можно обновлять через tcl скрипт.

Примечание:

В Vivado 2018.3 updatemem не умеет обновлять память больше 32768 бит.

В 2019.2 эта проблема уже исправлена.

Share this post


Link to post
Share on other sites

On 12/6/2019 at 1:17 PM, BSACPLD said:

Только сейчас дошли руки выложить :(

soft-AVR_v18_beta.7z

по каким критериям бета?

Share this post


Link to post
Share on other sites

12 hours ago, Doka said:

soft-AVR_v18_beta.7z

по каким критериям бета?

Я использую в своих проектах. Ошибок не обнаружено.

stable поставлю если наберется статистика успешного использования другими разработчиками

Share this post


Link to post
Share on other sites

Делайте сразу нормально на гитхабе. Иначе обречено на очередную помойку.

Share this post


Link to post
Share on other sites

Разместил ссылку в ветке "Ссылки на готовые описания модулей на форуме"

 

Share this post


Link to post
Share on other sites

On 8/24/2019 at 2:09 AM, BSACPLD said:

Почти 10 лет они служили мне верой и правдой в моих проектах, но с переходом на новую работу все мои наработки оказались никому не нужны...

Есть кто живой? Помогите подредактировать!   :)

Share this post


Link to post
Share on other sites

22 hours ago, Sverlo1 said:

Есть кто живой? Помогите подредактировать!   :)

А что нужно подредактировать?

Share this post


Link to post
Share on other sites

Приветствую!

Есть такое: https://marsohod.org/howtobuy/boards/brd-m02mini

FPGA MAX10 10M02

Прописать туда AVR любой, какой влезет.

Нужно только ядро, из периферии порты и таймер T0 (8бит).

И, если получится, USART. Желательно, но не обязательно.

 

?

Edited by Sverlo1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...