Gradient 1 19 июля, 2021 Опубликовано 19 июля, 2021 · Жалоба Да. Вот например макро для отладки программного пин-UART для 51го ядра Кипарис. Очень помогло. //============================================================================== //File name: ".mac" //Processor: CY7C68013A //Toolkit: IAR Systems //Purpose: Header File //Version: 1.00 //============================================================================== __var _file_handle; __var _interrupt_Timer0; __var _read_break_ID; __var _write_break_ID; //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ execUserReset() { __message "execUserReset() called\n"; if( _file_handle ) { __resetFile( _file_handle ); } } //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ execUserSetup() { __message "execUserSetup() called\n"; SimulationSetup(); } //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ execUserExit() { __message "execUserExit() called\n"; SimulationShutdown(); } //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ SimulationSetup() { //---------------------------------------------------------------------- //System Timer interrupt //---------------------------------------------------------------------- _interrupt_Timer0 = __orderInterrupt("TF0_int", 4000, 8000, 0, 1, 0, 100); if(_interrupt_Timer0 < 0) { __message "ERROR: failed to order System Timer0 interrupt"; } /* _read_break_ID = __setSimBreak("SBUF", "R", "ReadSBUF()"); if(_read_break_ID == -1) { __message "ERROR: failed to set ReadSBUF()"; } _write_break_ID = __setSimBreak("SBUF", "W", "WriteSBUF()"); if(_write_break_ID == -1) { __message "ERROR: failed to set WriteSBUF()"; } */ //------------------------------------------------------------------- } //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ ReadSBUF() { // read the uart value from file __var _value; if( 0 == __readFile( _file_handle, &_value ) ) { SBUF = _value; } else { __message "\nerror reading value from file, cancel interrupt\n"; __cancelInterrupt( _interrupt_ID ); } __message "ReadSBUF() called << 0x", _value:%X; } //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ WriteSBUF() { //SCON = 0x02; // Simulate UART filled at once. ///SCON1.TI_1 = 1; //SCON1_bit.TI_1 = 1; __message "WriteSBUF() called", " >> 0x", SBUF:%X; } //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ SimulationShutdown() { __cancelInterrupt(_interrupt_Timer0); __clearBreak(_read_break_ID); __clearBreak(_write_break_ID); __closeFile (_file_handle); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 19 июля, 2021 Опубликовано 19 июля, 2021 · Жалоба 18.07.2021 в 01:28, Obam сказал: Периферию в симуляторе? Ну таймеры ещё туда-сюда, а SPI, I2c (ведомого ;-) ), UART и особенно кварцевый генератор... \-8Ж А вот алгоритмы (чисто ядро) - это да: даже без железа чётко результат будет. Алгоритмы (если так уж нужно отдельно) гораздо удобнее отлаживать на ПК. Тем более если речь о 32-битном коде. А отладка периферии: полностью согласен - симулятор тут совершенно бесполезен, а иногда и вреден. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 30 19 июля, 2021 Опубликовано 19 июля, 2021 · Жалоба программного пин-UART Нуууу, это и есть алгоритм в чистом виде; так не интересно. Алгоритмы (если так уж нужно отдельно) гораздо удобнее отлаживать на ПК. Тем более если речь о 32-битном коде. Дык оно так и получается, что на ПК ( ;-) iar на xbox ещё не портировали), только сразу на "целевом ядре" (вы ж чуть что, сразу ассемблерным кодом оппонента, а тут... ((-8Ж ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dr.Alex 0 27 июля, 2021 Опубликовано 27 июля, 2021 · Жалоба Подтверждаю, IAR 8 и 9 - глюкалово, на 2 разных машинах с 2 разными j-линками (один из которых настоящий :-)) валится на прошивке, причём если данный прожект начал валиться, то это уже навсегда (больше ни разу не прошьётся, хоть 100 раз запусти). Пересоздашь прожект с нуля - какое-то время поработает. Откатился на 7.40. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 27 июля, 2021 Опубликовано 27 июля, 2021 · Жалоба 37 minutes ago, Dr.Alex said: IAR 8 и 9 - глюкалово IAR 8.32, IAR 8.40 используются более года на рахных машинах с разными ОС (7, 10). Никаких проблем нет, кроме редких глюков типа подвисания среды или ошибки прошивки. Но это было и на предыдущих версиях. Возможно, в Вашем случае действительно как-то окружение системы влияет. 39 minutes ago, Dr.Alex said: валится на прошивке А из сеггеровской утилиты шьётся? Может быть проблема с их ПО? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 6 августа, 2021 Опубликовано 6 августа, 2021 (изменено) · Жалоба Нашел очередная IAR ошибка. Файл дебагера для семейства g071 - кривой. В SPI регистрах управления нет поля DFF, а есть оно в I2S... Изменено 6 августа, 2021 пользователем Gradient Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 6 августа, 2021 Опубликовано 6 августа, 2021 · Жалоба 1 час назад, Gradient сказал: В SPI регистрах управления нет поля DFF, а есть оно в I2S... Вы не поверите, но в самом свежем STM32G0x1 Reference manual RM0444 версии 5 от ноября прошлого года его тоже нет. Между CRCNEXT и RXONLY там описан битик CRCL: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 6 августа, 2021 Опубликовано 6 августа, 2021 · Жалоба 17.02.20 уже исправил это в STM32G07x.svd надо вместо него вписать поле CRCL: CRC length Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться