Пн янв 16, 2023 14:13:15
Разумеется, нет. Зачастую отладка это анализ записи последних действий, или состояния памяти, или еще что-то. И всегда - вдумчивое курение исходников.VladislavS писал(а):Отладка это возможность получить полную информацию о состоянии и поведении системы во времени в любой момент времени.
Пн янв 16, 2023 14:17:50
Пн янв 16, 2023 14:25:15
Пн янв 16, 2023 16:06:26
Пн янв 16, 2023 16:26:41
VladislavS писал(а):Я, кстати, собрал GCC 12.2 с поддержкой WCH-Interrupt.
VladislavS писал(а):А вот вы как раз сужаете набор инструментов отладки.
VladislavS писал(а):а решаю её и иду дальше.
VladislavS писал(а):Что-то ты фантазируешь. OpenOCD в исходниках есть.
VladislavS писал(а):Кто тебе сейчас не даёт прошивать в линуксе?
Eddy_Em писал(а):И когда будет полностью все прозрачно. А не через жопу, как сейчас.
Пн янв 16, 2023 16:56:40
Пн янв 16, 2023 17:54:57
#define __interrupt extern "C" void __attribute__((interrupt("WCH-Interrupt-fast")))
__interrupt SysTick_Handler()
{
SysTick->SR = 0;
LED_BLUE::Toggle();
}
#define __interrupt extern "C" void __attribute__((used, interrupt("machine")))
template<typename F>
void TVecoredIRQFunc(F f)
{
riscv::StackMove(-12);
Nuclei::push_mcause(0);
Nuclei::push_mepc(1);
Nuclei::push_msubm(2);
__enable_irq();
f();
__disable_irq();
riscv::CSR<Nuclei::CSR_REGS::msubm>::write(riscv::StackRead(8));
riscv::CSR<Nuclei::CSR_REGS::mepc>::write(riscv::StackRead(4));
riscv::CSR<Nuclei::CSR_REGS::mcause>::write(riscv::StackRead(0));
riscv::StackMove(12);
}
#define IRQ_VECT(HANDLER, F) __interrupt HANDLER() { TVecoredIRQFunc( F ); }
void OnSysTick()
{
MTimer::Clear();
LED_BLUE::Toggle();
}
IRQ_VECT(CLIC_INT_TMR_IRQHandler, OnSysTick);
Пн янв 16, 2023 23:06:37
Вт янв 17, 2023 00:01:31
Боюсь, не скоро научатся. Хотя раз GD справились, возможно, не все так плохо.Eddy_Em писал(а):Пусть сначала культуре научатся
Какой-то линуксовый софт у них тоже есть, но я его пока не ковырял.Eddy_Em писал(а):И слезут с гребаной мастдайки уже, заколебали, чесслово!
Я, в отличие от вас, без информации никаких выводов и не делаю. Что вам пришлось возиться с gcc чтобы запустить там прерывания - ваши слова. Именно об этом я спрашивал. Как вам удалось интерпретировать вопрос в качестве утверждения, надо у вас спрашивать.VladislavS писал(а):Вы всегда судите о вещах с которыми даже не соизволили ознакомиться?
Спасибо.VladislavS писал(а):Но компилятор у них не первой свежести, поэтому хотелось бы это добавить и в актуальную версию. Вот тут есть патч. Сейчас там можно и готовые сборки скачать, а когда я начинал надо было самому собирать.
VladislavS писал(а):Желаете без WCH-Link обойтись? Ну желайте дальше пока другие работают. На одном WCH-Link можно $3 сэкономить, а на 33 почти соточку
Вполне допускаю, что и такая проблема есть. Вроде бы JTAG предполагался как универсальный интерфейс, и достойной причины городить кто во что горазд, я не вижу.VladislavS писал(а):Если бы у всех адаптеров были одинаковые функции, зачем бы было столько интерфейсов в OpenOCD плодить? То есть, выдумали проблему там где её нет в принципе.
VladislavS писал(а):А сколько для GD32VF103
eclic_set_vmode( TIMER3_IRQn );
eclic_enable_interrupt( TIMER3_IRQn );
eclic_global_interrupt_enable();
...
void TIMER3_IRQHandler(){
...
TIMER_INTF(TIMER3) = 0;
}
__attribute__((interrupt)) void TIMER3_IRQHandler(void);
VladislavS писал(а):А для невекторизированного ещё и регистры push/pop надо сделать ракуми. Вы Всего этого в своих лекциях, кстати, не сделали. А это всё в документации описано.
VladislavS писал(а):Ты за китайцев не бойся, бойся за соотечественников, которые в километре от меня прямо сейчас вот такое делают и на сайт как рекламу выкладывают.
Вт янв 17, 2023 00:49:50
Вт янв 17, 2023 06:20:59
Вт янв 17, 2023 08:39:24
Вт янв 17, 2023 09:16:03
Вт янв 17, 2023 09:23:31
Вт янв 17, 2023 10:08:59
VladislavS писал(а):Ваш вопрос уже содержит утверждение, что они что-то там не по-человечески сделали.
VladislavS писал(а):Опять напрашивается вопрос, а вы спецификацию хоть краем глаза смотрели?
VladislavS писал(а):Недостаточно. Открываем доки
VladislavS писал(а):Спрячьте и никому не показывайте.
VladislavS писал(а):Открываем доки снова
VladislavS писал(а):Обычно это делают перед написанием статей...
VladislavS писал(а):С "безупречным" качеством пайки и старательно размазанной по плате канифолью. И это на главной странице сайта про этот микроконтроллер!
VladislavS писал(а):У них код на github есть, можете ознакомиться самостоятельно.
Eddy_Em писал(а):Ну какой HS чипу с тактовой в сотню-две мегагерц?
Вт янв 17, 2023 11:16:37
Вт янв 17, 2023 12:07:21
VladislavS писал(а):Ну вот, вопрос уже стал утверждением. При том что документация ещё, судя по всему, не прочитана.
VladislavS писал(а):Но, осуждаю. Классика.
VladislavS писал(а):Это говорит о том, что документ, с которого надо было начать изучение, вы даже не открывали. Ясно, понятно.
VladislavS писал(а):Да мне всё равно, это не я неправильный код выкладываю.
...
Просто он настолько примитивный, что не наступило условие, когда он перестанет работать. Что-то сложнее блинка работать не будет, по причине, изображённой на картинках, которые вы раньше в глаза не видели.
VladislavS писал(а):Вы количество SRAM на борту видели? У него ещё 1 ГБит ETH-MAC есть
Вт янв 17, 2023 13:42:03
Вт янв 17, 2023 14:22:17
VladislavS писал(а):Что? Где?
VladislavS писал(а):Во-вторых, если речь о прошивке, то у него DFU хоть через USB, хоть через UART - шей, не хочу.
VladislavS писал(а):На доводы "сам дурак" опускаетесь? Некрасиво!
...абсолютно бесполезны без контекста. Я не собираюсь угадывать что же вы хотели ими сказать.VladislavS писал(а):Эти два скриншота...
То есть не будет. А жаль.VladislavS писал(а):Кроме пустословия от вас хоть что-то будет?
У вас что-то со зрением?
Повторяю: сказать может кто угодно и что угодно. Но пока вы голословно утверждаете, что код работает неправильно, я столь же голословно могу утверждать, что все в порядке. Более того, мои утверждения в данном случае имеют даже больший вес, поскольку есть видеосвидетельство, что код работает.VladislavS писал(а):Можете показать где я называл ваш код этим самым словом? Я сказал, что он неправильный и в более сложных условиях работать не будет.
VladislavS писал(а):Моего пустословия? Да ещё и я же его доказывать должен?
VladislavS писал(а):Любое прерывание поверх вашего всё сломает (а скорее всего даже не сработает).
USART0_IRQHandler:
csrrw sp, mscratchcsw, sp //вот это уже не помню зачем делал. Возможно, экспериментировал со сменой режимов U-M.
push t0, t1, a0, ra
csrr t0, mepc
csrr t1, mcause
csrr a0, msubm
push t0, t1, a0
uart_puts_P "UART( "
csrs mstatus, MSTATUS_MIE
//собственно код обработчика
csrc mstatus, MSTATUS_MIE
uart_puts_P " )UART\r\n"
pop t0, t1, a0
csrw mepc, t0
csrw mcause, t1
csrw msubm, a0
pop t0, t1, a0, ra
csrrw sp, mscratchcsw, sp
mret
Вт янв 17, 2023 18:07:09