Jump to content
    

Инструмент для доступа к регистрам устройств на Линукс машине без драйвера

1 hour ago, makc said:

"без GUI жизни нет".

Я в большинстве случаев пользуюсь конолью. 
Вы будете утверждать что ГУИ по информативности не лучше консоли? Когда клубоко в отладке надо набирать в нужном окне терминала нужные команды не сравнимо, на мой взглад, с простым нажатием кнопки и видением всей картины с одного взгляда.

Но о вкусах не спорят.

Share this post


Link to post
Share on other sites

Только что, Tarbal сказал:

Я в большинстве случаев пользуюсь конолью. 

Я в большинстве случаев пользуюсь тем, что мне удобно и позволяет сэкономить время, например, за счёт автоматизации (скрипты). Утилиты с графическим интерфейсом по определению намного хуже поддаются автоматизации, чем консольные.

1 минуту назад, Tarbal сказал:

Вы будете утверждать что ГУИ по информативности не лучше консоли?

Нет, не буду. Неинформативный интерфейс можно сделать как в GUI, так и в консоли. Всё зависит от умения автора этого инструмента.

2 минуты назад, Tarbal сказал:

Когда клубоко в отладке надо набирать в нужном окне терминала нужные команды не сравнимо, на мой взглад, с простым нажатием кнопки и видением всей картины с одмного взгляда.

У всех свои методы решения задач. Но консоль уже давно и прочно зарекомендовала себя эффективным инструментов разработчиков-профессионалов.

3 минуты назад, Tarbal сказал:

Но о вкусах не спорят.

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

Share this post


Link to post
Share on other sites

2 hours ago, makc said:

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

С этим я как раз согласен. Добавил описание работы с дополнительными окнами, создаваемыми при помощи простых XML файлов.
 

Share this post


Link to post
Share on other sites

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

создаваемыми при помощи простых XML файлов

А почему выбран XML формат? Он не очень дружественный для человека. Если предполагается читать/править эти файлы руками, то намного лучше подходит YAML формат, который по сути тот же XML, но human friendly. Например, описание регистров из c_d1.xml:

<?xml version="1.0"?>
<data>
        <register name="ADC Status">
            <addr>0x43c00000</addr>
        </register>
        <register name="ADC IE">
            <addr>0x43c00000</addr>
        </register>
        <register name="ADC IS">
            <addr>0x43c00000</addr>
        </register>
        <register name="DMA Status">
            <addr>0x40400000</addr>
        </register>
        <register name="DMA Register">
            <addr>0x40400000</addr>
        </register>
        <register name="DMA Register">
            <addr>0x40400000</addr>
        </register>
</data>

может выглядеть так:

ADC Status   : 0x43c00000
ADC IE       : 0x43c00008
ADC IS       : 0x43c00010
DMA Status   : 0x40400000
DMA Register : 0x40400008

или так, если нужно для каждого регистра добавлять несколько свойств (тут только одно -- addr):

ADC Status:
    addr : 0x43c00000

ADC IE:
    addr : 0x43c00008

ADC IS:
    addr : 0x43c00010

DMA Status:
    addr : 0x40400000

DMA Register:
    addr : 0x40400008

или так, если удобно сгруппировать регистры по контексту:

ADC Regsisters:
    Status : 0x43c00000
    IE     : 0x43c00008
    IS     : 0x43c00010

DMA Registers:
    Status   : 0x40400000
    Register : 0x40400008

Читается это с помощью модуля pyyaml, (pip install PyYAML), внутри кода:

with open('regs.yml') as yml:
    regs = yaml.safe_load(yml)

 

Share this post


Link to post
Share on other sites

36 minutes ago, dxp said:

А почему выбран XML формат? Он не очень дружественный для человека. Если предполагается читать/править эти файлы руками, то намного лучше подходит YAML формат, который по сути тот же XML, но human friendly. Например, описание регистров из c_d1.xml:

Полностью с вами согласен. Не было времени думать. Надо было быстро что-то сотворить для того, кто со стороны FPGA работал. 
По стереотипу сделал. Раньше работал с подобными програмамми. Они использовали XML.
Будет время, добавлю такую возможность.
На самом деле я часто инструменты делаю пока работаю над проектом. Просто этот мне понравился своей простотой и гибкостью, потому его и выставил в гитхаб. Планы другие были пока делал его.
Да и для практики в Питоне нужно было что-то сотворить. Питона я совсем не знаю.

 

Share this post


Link to post
Share on other sites

Предупреждаю тех, кто не знает что они смотрят, что есть такие регистры, чтение которых может подвесить систему, а запись в некоторые (например, некоторые регистры PMIC) могут убить железо в компьютере.
Используйте доступ только к тем регистрам, назначение которых вам известно.

В описании это есть, но не грех и продублировать.

Share this post


Link to post
Share on other sites

Немного улучшил код и исправил ошибку в 64 битной архитектуре.

 

Share this post


Link to post
Share on other sites

Кто-нибудь попробовал использовать? Может есть какие-нибудь пожелания насчет дополнительных возможностей? Думаю добавить две кнопки для листания дампа вперед и назад.

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...