-
- вы даже на Ватсона не тяните... элементарно - если периферийный
модуль имеет общий интерфейс управления и для CPU и для отладочного
модуля - в данном случае адреса на шине apb1 и R/W операции имеют
побочные эффекты кроме знанчений аргуменов операций, ТО - от модуля
TPI/DWT/etc(всех отладочных) - тянется сигнал что это отладочное
обращение по шине!!! и модуль должен выдать или записать свой стейт
без побочных эффектов (по крайней мере выдать его ). вот так это
делается. - klen(07.08.2023 12:39)
- Да не, просто при создании периферии выводить сигнальные биты
вместе с другими битами - но без побочных эффектов. А для сброса
использовать чтение из выделенного специального регистра, по одному
регистру на бит. Не бог весть какой перерасход адресов. - =AlexD=(07.08.2023 14:02)
- Лучче просто не сбрасывать биты по чтению. Кому надо - сбросит по
записи. - LightElf(07.08.2023 15:30)
- пожалуй соглашусь. регистр - как бы RO, то есть читай сколько хош и
ничё не изменится. а если записать в него что угодно, то есть
просто сделать WR по этому адресу, то бит или битики сбрасываются
автоматически. (что именно записать не имеет значения, важен лишь
факт обращения на запись) - Alex68(07.08.2023 16:21)
- Очень удобно и правильно, когда флаги сбрасываются записью в них единички. Исключаются всякие состязания. Печально, что этот подход не используется системно. В одном модуле так, в другом сброс записью нуля, в третьем - чтением, в четвёртом - приседаниями с бубном. - LightElf(09.08.2023 13:22)
- Осталось примирить этот подход с DMA. - SciFi(07.08.2023 16:22)
- Никаких проблем. - LightElf(11.08.2023 22:03)
- "тут играем, тут не играем, тут рыбу заворачивали" - Alex68(07.08.2023 16:30)
- пожалуй соглашусь. регистр - как бы RO, то есть читай сколько хош и
ничё не изменится. а если записать в него что угодно, то есть
просто сделать WR по этому адресу, то бит или битики сбрасываются
автоматически. (что именно записать не имеет значения, важен лишь
факт обращения на запись) - Alex68(07.08.2023 16:21)
- Лучче просто не сбрасывать биты по чтению. Кому надо - сбросит по
записи. - LightElf(07.08.2023 15:30)
- "так это ж делать нада. а потом еще и верифицировать. а потом в кремнии пробовать. ну его..." - Alex68(07.08.2023 13:53)
- Да не, просто при создании периферии выводить сигнальные биты
вместе с другими битами - но без побочных эффектов. А для сброса
использовать чтение из выделенного специального регистра, по одному
регистру на бит. Не бог весть какой перерасход адресов. - =AlexD=(07.08.2023 14:02)
- Да ладно. Это косяк, очевидно же. Неудобство отладки. И причины
понятны: либо им пофиг, либо лень адаптировать периферию под
удобную отладку. Копия регистров - г-но вопрос. Самое дорогое там -
разработка. - SciFi(07.08.2023 11:28)
- Я думаю что серьезных мешающих причин три или около того: 1я это
следование архитектуре ARM, в которой они должны написать
Verilog-код периферала отвечающий требованиям шин ARM. ARM не
заложили никаких обходных шин и спецификаций на этот счет для
debug-модуля. Является ли это проблемой даже непонятно, потому что
в том что debug-модуль "видит" внутренний мир в точности также как
его видят все остальные можно найти свои плюсы хотя бы с точки
зрения упрощения проектирования RxTx(699 знак., 07.08.2023 12:17)
- у меня и было и есть множество аппаратных отладчиков-эмуляторов. и почти во всех при чтении чего-то статусного битики сбрасываются. и в доках про то написано. например читать регистры всяких таймеров отладчиком очень нежелательно. предлагается читать их в программе, записывать значения куда-то во временный регистр\ячейку памяти или еще куда-то, и уж затем это значение и глядеть отладчиком. - Alex68(07.08.2023 12:28)
- Зачем придумывать миллион оправданий? Я и так накидал достаточно:
1) им пофиг, 2) им лень. Тот, кто не хочет, ищет оправдания, а тот,
кто хочет - ищет возможности. Впрочем, я не жалуюсь, при отладке
такие чудеса бывают, что эта штука просто мельчайшая мелочь. - SciFi(07.08.2023 12:22)
- +100500. я полностью согласен - мир катится в говно, главное стало
уже даже не бабки, а бабки побыстрее, поэтому косячныйй продукт
занимает рынок первым и более дешевым. прорабатывать материал
вдумчиво не выгодно - ты неудачник, ты в пролете. пользовать
матерится? да хер на него - как жрал так и будет жрать говно. - klen(07.08.2023 12:47)
- Я хоть и пессимист, но не поддержу. Да, пару сотен лет назад
мастер-одиночка мог полжизни работать и создать совершенство,
которое было бы востребовано. Да, сегодня это невозможно, потому
что когда мастер закончит, его совершенство будет никому не нужно.
Впрочем, никто не мешает вам создавать совершенство. Кто-то
кораблики в бутылках клеит. Наверняка такие мастера и сегодня есть,
просто о них мало кто знает, потому что они никому не нужны. - SciFi(07.08.2023 12:51)
- не поддержите что? факт на миру что в моем тезисе озвучен. фактам
неважно мнение субъекта. или Вы не согласны что пользователь будет
жрать? будет! - он такой. ленивый и бестолковый. он не хочет
боротся - это трудно и опасно. поэтму будет терпеть и жрать. - klen(07.08.2023 12:56)
- это просто мизантропия, техника тут ни при чём :-) - SciFi(07.08.2023 13:00)
- она есть часть общественного тела. мизантропия сложное слово для
меня - выражайтесь проще. я в деревне вырос - и плуг тягал вместо
лошади. - klen(07.08.2023 13:03)
- Ну так и юзвери есть часть общественного тела. Такшта всё
уравновешивается :-) - SciFi(07.08.2023 13:05)
- я не пессимист но... перспектива печальна - сделать хорошо - жизни и денег нехватит, сделать плохо - внутренне не готов тратит жизнь на такое. как нибудь выкручусь - это всего лишь задача посланная вседержителдем, а неисполнимых задач не посыется - начальник не дурак - он тренер на грани фола. естественны отбор - klen(07.08.2023 13:08)
- Ну так и юзвери есть часть общественного тела. Такшта всё
уравновешивается :-) - SciFi(07.08.2023 13:05)
- она есть часть общественного тела. мизантропия сложное слово для
меня - выражайтесь проще. я в деревне вырос - и плуг тягал вместо
лошади. - klen(07.08.2023 13:03)
- это просто мизантропия, техника тут ни при чём :-) - SciFi(07.08.2023 13:00)
- "о них мало кто знает, потому что они никому не нужны." Надо бы
согласовать числительные. - Kpoк(07.08.2023 12:55)
- Деление на ноль :-) - SciFi(07.08.2023 12:56)
- делить на ноль можно. но не всемъ - Alex68(07.08.2023 13:55)
- Делить на нуль можно только нуль. - =AlexD=(07.08.2023 14:04)
- делить на ноль можно что угодно, вот только потом нужно хорошо понимать что делать с результатом. а то он могёт быть слабопредсказуемымъ. - Alex68(07.08.2023 14:48)
- делить так себе затея. одинаково херово и в жизни и в алгоритмах.
лучше прибавлять и приумножать. - klen(07.08.2023 14:26)
- После того как приумножили нужно на всех поделить, иначе никак ;-) - =AlexD=(07.08.2023 14:38)
- - Милый, тебе не кажется, что миллион лучше делить на двоих, чем на троих? - Лучше вообще не делить! - Неужели ты хочешь подарить своей Мэгги весь миллион? (из к/ф Дорогой мальчик) - Kpoк(07.08.2023 15:14)
- После того как приумножили нужно на всех поделить, иначе никак ;-) - =AlexD=(07.08.2023 14:38)
- Делить на нуль можно только нуль. - =AlexD=(07.08.2023 14:04)
- предлагаю вариант: "о них мало кто знает, потому что они мало кому
нужны" (или никто не знает - никому не нужны) - Kpoк(07.08.2023 13:18)
- есть еще - ты суслика видишь? нет? а он есть! - klen(07.08.2023 14:12)
- не вам ли знать что как раз деление на ноль, сингулярности и приводят к нарушению баланса во вселенной и как следствие движение материи. вот эти единицы людей из миллионов стада и производят это деление и дают функцию Дирака. это надежда и спасение. иначе все свиньи утопятся в море уходя в него строем в ногу. - klen(07.08.2023 12:59)
- делить на ноль можно. но не всемъ - Alex68(07.08.2023 13:55)
- Деление на ноль :-) - SciFi(07.08.2023 12:56)
- не поддержите что? факт на миру что в моем тезисе озвучен. фактам
неважно мнение субъекта. или Вы не согласны что пользователь будет
жрать? будет! - он такой. ленивый и бестолковый. он не хочет
боротся - это трудно и опасно. поэтму будет терпеть и жрать. - klen(07.08.2023 12:56)
- Я хоть и пессимист, но не поддержу. Да, пару сотен лет назад
мастер-одиночка мог полжизни работать и создать совершенство,
которое было бы востребовано. Да, сегодня это невозможно, потому
что когда мастер закончит, его совершенство будет никому не нужно.
Впрочем, никто не мешает вам создавать совершенство. Кто-то
кораблики в бутылках клеит. Наверняка такие мастера и сегодня есть,
просто о них мало кто знает, потому что они никому не нужны. - SciFi(07.08.2023 12:51)
- +100500. я полностью согласен - мир катится в говно, главное стало
уже даже не бабки, а бабки побыстрее, поэтому косячныйй продукт
занимает рынок первым и более дешевым. прорабатывать материал
вдумчиво не выгодно - ты неудачник, ты в пролете. пользовать
матерится? да хер на него - как жрал так и будет жрать говно. - klen(07.08.2023 12:47)
- Вы не забывате речь идёт о CH32, по цене рупь пучок. Там и на
кремнии вовсю экономят. Ну и я не согласен что это баг, вам копию
регистров никто не обещал, для того чтобы вам удобненько было
говнокодить "F9 - зависло - смыть-повторить". - Ralex(07.08.2023 11:47)
- Кстати, откуда взялась "копия регистров"? Не нужна она. Просто
сделать так, чтобы чтение регистров не меняло состояние периферии.
Менять его явным образом путём записи в регистры. Правда, там будут
свои заморочки с DMA, но вполне решаемые. - SciFi(07.08.2023 11:56)
- Да нет никаких проМблеММ. У АВРа всё точно так-жэ и все прекрасно
отлаживались. - mse homjak(07.08.2023 12:14)
- может и так - но я пока не понимаю что я должен деоать в коде -
чтоб было также как с отладчиком но без него. - klen(07.08.2023 12:48)
- Например, устанавливать интересный флаг ручками. Оппа, прерывание,
устанавливаем регистр данных чем-то и идём дальше. Вышли из
прерывания, ручками флаг, опять туду, опять данные опять идём
дальшэ. Так какой-нить протокол отлаживаю. Или ставить брякпойнт в
интересную точку. В общем, я не стесняюсь в срецтвах, когда чо-нить
отлаживаю. Внаглую меняю адреса-данные и флаги. Любой ЖТАХ это
позволяет. - mse homjak(07.08.2023 12:57)
- ага щазззз - регистры RO, устанавливаются аппаратурой или
сбрасываются при чтении. можно хоть обустанавливаться.. должен быть
какой путь объехать все это - я просто еще не разобрался и
подсказать некому. - klen(07.08.2023 13:02)
- Тут ХЗ. Но, помница, TWI у АВРа я отлаживал через самописный
монитор, просто читая и записывая байтики в порты. Причом, на живой
ЕЕПРОМке. И датафлэшь АТ45, ещо с двумя буферами. В те времена с
ЖТАХами было трудненько. Ну то АВР, конешно. А так, походу, только
брякпойнты после ветвлений или что там получается при чтении. Можно
ещо сперва считывать флаговый регистр и запоминать его. Собсно,
считывание и происходит, а потом кладутся маски. - mse homjak(07.08.2023 13:11)
- я уже и так и сяк, напомню, проблема выглядит на входе так - при
записи байта в регистр данных, бит txe не всегда после
устанавливается. как так может быть. сегодня буду лог анализатором
электричество смотреть в двух проводах. может байт и не высылается
вовсе изза какойто другой причины? - klen(07.08.2023 14:10)
- Ну, txe, если я думаю про СН32Ф/В, он полюбому будет торчать в "1",
если буфер СПИ на запись пустой. Пусть отлаччик хоть обчитается
весь. Я вот не упомню, чтобы в СН32 были флаги прерываний, которые
автоматически падают по чтению-заходу в прерывание, хотя и не
исключаю. - mse homjak(07.08.2023 14:23)
- не spi а i2c, не флаги прерываний, а биты состояния i2c
state-машины. - klen(07.08.2023 14:28)
- А-а... У СПИ тожэ ТХЕ флаг есть. - mse homjak(07.08.2023 14:31)
- не spi а i2c, не флаги прерываний, а биты состояния i2c
state-машины. - klen(07.08.2023 14:28)
- Ну, txe, если я думаю про СН32Ф/В, он полюбому будет торчать в "1",
если буфер СПИ на запись пустой. Пусть отлаччик хоть обчитается
весь. Я вот не упомню, чтобы в СН32 были флаги прерываний, которые
автоматически падают по чтению-заходу в прерывание, хотя и не
исключаю. - mse homjak(07.08.2023 14:23)
- я уже и так и сяк, напомню, проблема выглядит на входе так - при
записи байта в регистр данных, бит txe не всегда после
устанавливается. как так может быть. сегодня буду лог анализатором
электричество смотреть в двух проводах. может байт и не высылается
вовсе изза какойто другой причины? - klen(07.08.2023 14:10)
- Тут ХЗ. Но, помница, TWI у АВРа я отлаживал через самописный
монитор, просто читая и записывая байтики в порты. Причом, на живой
ЕЕПРОМке. И датафлэшь АТ45, ещо с двумя буферами. В те времена с
ЖТАХами было трудненько. Ну то АВР, конешно. А так, походу, только
брякпойнты после ветвлений или что там получается при чтении. Можно
ещо сперва считывать флаговый регистр и запоминать его. Собсно,
считывание и происходит, а потом кладутся маски. - mse homjak(07.08.2023 13:11)
- ага щазззз - регистры RO, устанавливаются аппаратурой или
сбрасываются при чтении. можно хоть обустанавливаться.. должен быть
какой путь объехать все это - я просто еще не разобрался и
подсказать некому. - klen(07.08.2023 13:02)
- Например, устанавливать интересный флаг ручками. Оппа, прерывание,
устанавливаем регистр данных чем-то и идём дальше. Вышли из
прерывания, ручками флаг, опять туду, опять данные опять идём
дальшэ. Так какой-нить протокол отлаживаю. Или ставить брякпойнт в
интересную точку. В общем, я не стесняюсь в срецтвах, когда чо-нить
отлаживаю. Внаглую меняю адреса-данные и флаги. Любой ЖТАХ это
позволяет. - mse homjak(07.08.2023 12:57)
- может и так - но я пока не понимаю что я должен деоать в коде -
чтоб было также как с отладчиком но без него. - klen(07.08.2023 12:48)
- Да нет никаких проМблеММ. У АВРа всё точно так-жэ и все прекрасно
отлаживались. - mse homjak(07.08.2023 12:14)
- Кстати, откуда взялась "копия регистров"? Не нужна она. Просто
сделать так, чтобы чтение регистров не меняло состояние периферии.
Менять его явным образом путём записи в регистры. Правда, там будут
свои заморочки с DMA, но вполне решаемые. - SciFi(07.08.2023 11:56)
- Я думаю что серьезных мешающих причин три или около того: 1я это
следование архитектуре ARM, в которой они должны написать
Verilog-код периферала отвечающий требованиям шин ARM. ARM не
заложили никаких обходных шин и спецификаций на этот счет для
debug-модуля. Является ли это проблемой даже непонятно, потому что
в том что debug-модуль "видит" внутренний мир в точности также как
его видят все остальные можно найти свои плюсы хотя бы с точки
зрения упрощения проектирования RxTx(699 знак., 07.08.2023 12:17)
- вы даже на Ватсона не тяните... элементарно - если периферийный
модуль имеет общий интерфейс управления и для CPU и для отладочного
модуля - в данном случае адреса на шине apb1 и R/W операции имеют
побочные эффекты кроме знанчений аргуменов операций, ТО - от модуля
TPI/DWT/etc(всех отладочных) - тянется сигнал что это отладочное
обращение по шине!!! и модуль должен выдать или записать свой стейт
без побочных эффектов (по крайней мере выдать его ). вот так это
делается. - klen(07.08.2023 12:39)