У меня есть еще один вопрос по GUI, на этот раз чуть более общий. Есть два диалога которые надо сделать:
1. В "NM Model" есть режим автоматического поиска ошибок в исполняемой программе. На слишком сложных фрагментах работает не очень хорошо, поэтому должна быть возможность отключать его для диапазона адресов, или наоборот включать только для заданного диапазона.
2. Есть также механизм задания правов доступа к памяти (в реальном железе ничего такого нет, ибо DSP). Опять таки, надо сказать для каких диапазонов доступ разрешен, а для каких нет.
Вопрос в том, как это наиболее удобно сделать. Варианты:
1. Список диапазонов для которых что-то разрешено (доступ, автоматический поиск ошибок)
2. Список диапазонов для которых это же запрещено.
3. Два списка -- диапазонов для которых запрещено, и для которых разрешено. Плюс опция, задающая какой список проверяется в первую очередь.
4. Для случая памяти возможно специальное решение -- список диапазонов, покрывающих всю память, и для каждого -- тип доступа. См.
http://zigzag.cs.msu.su/~ghost/memory_ranges.png
При выборе колонки "Access" появляется drop-down box с варинтами доступа. Если пользователь вручную уменьшает интервал для которого Access=Read, то на свободном месте появляется новый диапазон с Access="No Access". Что происходит если пользователь увеличивает размер диапазона, непонятно. То ли двигать границы соседных диапазонов, то ли ругаться.
5. Для случая автоматических проверок программы, возможно использовать разбиение программы на модули и показывать пользователю дерево вида
[ ] Entire program [ ] Local files [ ] foo.cpp [ ] bar.asm [ ] Libraries [ ] libcrt [ ] malloc.c [ ] libvlib [ ] vabs.asm
где можно выбрать или файл на самом нижнем уровне, или отдельную библиотеку, или все файлы. Проблема здесь в том, что файлов на каждом уровне может быть очень много (30, 50, 100), поэтому непонятно, насколько будет удобно.
Никто не знает готового решения или может что-нибудь предложить?
- Volodya
У меня есть еще один вопрос по GUI, на этот раз чуть более общий. Есть два диалога которые надо сделать:
- В "NM Model" есть режим автоматического поиска ошибок в исполняемой
программе. На слишком сложных фрагментах работает не очень хорошо, поэтому должна быть возможность отключать его для диапазона адресов, или наоборот включать только для заданного диапазона.
Логично предположить, что подобную информацию всё-таки надо привязывать к коду (твой вариант 5), а не к адресам.
- Есть также механизм задания правов доступа к памяти (в реальном
железе ничего такого нет, ибо DSP). Опять таки, надо сказать для каких диапазонов доступ разрешен, а для каких нет.
А эта информация - привязана к адресам, и при этом количество диапазонов скорее всего невелико. Значит, без особой разницы. Я бы сделал один список, каждый элемент которого - диапазон адресов и применяемое к нему правило. Семантика - последовательная проверка до первого совпадения.
On Friday 25 November 2005 17:28, Nikita V. Youshchenko wrote:
У меня есть еще один вопрос по GUI, на этот раз чуть более общий. Есть два диалога которые надо сделать:
- В "NM Model" есть режим автоматического поиска ошибок в исполняемой
программе. На слишком сложных фрагментах работает не очень хорошо, поэтому должна быть возможность отключать его для диапазона адресов, или наоборот включать только для заданного диапазона.
Логично предположить, что подобную информацию всё-таки надо привязывать к коду (твой вариант 5), а не к адресам.
Наверное да, хотя некоторые люди впролне себе оперируют адресами.
- Есть также механизм задания правов доступа к памяти (в реальном
железе ничего такого нет, ибо DSP). Опять таки, надо сказать для каких диапазонов доступ разрешен, а для каких нет.
А эта информация - привязана к адресам, и при этом количество диапазонов скорее всего невелико. Значит, без особой разницы. Я бы сделал один список, каждый элемент которого - диапазон адресов и применяемое к нему правило. Семантика - последовательная проверка до первого совпадения.
Проблема в том, что это может быть не очень наглядно. Чтобы увидеть, какие права доступа к определенному адресу, надо просмотреть весь список. Наверное я просто сделаю три диапазона, по одному на каждый банк памяти, а на сдаче посмотрим, может ничего большего никто и не захочет.
- Volodya
On Friday 25 November 2005 17:28, Nikita V. Youshchenko wrote:
У меня есть еще один вопрос по GUI, на этот раз чуть более общий. Есть два диалога которые надо сделать:
- В "NM Model" есть режим автоматического поиска ошибок в
исполняемой программе. На слишком сложных фрагментах работает не очень хорошо, поэтому должна быть возможность отключать его для диапазона адресов, или наоборот включать только для заданного диапазона.
Логично предположить, что подобную информацию всё-таки надо привязывать к коду (твой вариант 5), а не к адресам.
Наверное да, хотя некоторые люди впролне себе оперируют адресами.
Я в настоящее время работаю с одним таргетом через jtag, при этом jtag-овских софт по-чёрному глючит, в частности в половине случаев неверно считывает символьную информацию, из-за чего приходится оперировать адресами. Это удовольствие совершенно не из приятных - особенно с учётом того, что адреса меняются после перекомпиляций.
В случае гуя будет ещё хуже - пользователь должен не забыть, что после каждой перекомпиляции ему надо сходить в чёрт-знает-где спрятанный диалог, и поменять там адреса. Кстати, видимо, предварительно выяснив их новые значения в другом чёрт-знает-где спрятанном диалоге. Особенно приятно ему будет, если оба эти диалога ещё и модальные :).
- Есть также механизм задания правов доступа к памяти (в реальном
железе ничего такого нет, ибо DSP). Опять таки, надо сказать для каких диапазонов доступ разрешен, а для каких нет.
А эта информация - привязана к адресам, и при этом количество диапазонов скорее всего невелико. Значит, без особой разницы. Я бы сделал один список, каждый элемент которого - диапазон адресов и применяемое к нему правило. Семантика - последовательная проверка до первого совпадения.
Проблема в том, что это может быть не очень наглядно. Чтобы увидеть, какие права доступа к определенному адресу, надо просмотреть весь список.
... что едва ли проблема, так как количество диапазонов скорее всего невелико.