jcxz 234 27 декабря, 2023 Опубликовано 27 декабря, 2023 · Жалоба 17 минут назад, fpga_student сказал: и кажется есть пара файлов что не в бакапе. Это board.c и board.h. Как раз так неудачно вышло что между рабочими бакапами и сегодня произошла смена либы с 1.4 на 1.6, и также я поправил имя головной папки (что уж никак влиять не должно). Я сейчас сравнил старые новые файлы, в старых было несколько директив про компиляторы, в 1.6 эти директивы выпилили. На всякий случай вернул старые файлы - поведение не изменилось. Ну вот... Да уж... Сперва надо с бардаком в своих исходниках, "либах" и прочих калокубах разобраться. Прежде чем пенять на UARTы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 27 декабря, 2023 Опубликовано 27 декабря, 2023 · Жалоба On 12/27/2023 at 10:54 PM, jcxz said: Ну вот... Да уж... Сперва надо с бардаком в своих исходниках, "либах" и прочих калокубах разобраться. Прежде чем пинять на UARTы. Согласен( 15 лет пока сидел в конторе не писал( разучился(( Нету культуры( Очень благодарен что няньчитесь. Нашел порт рабочий Ардуины на артери и стм. Доки Плата Тесты на любой ногодрыг собираются в Keil за 30 секунд. Божественно там сделан хал внутри. И ардуиновская экосистема с JTAG на армах On 12/27/2023 at 10:23 PM, HardEgor said: Выглядит как случайно вставленный в текст символ выключающий тактирование. Потому что всё порты не могли одновременно умереть Вторая плата есть? Мда вторую плату полностью сбросил на ней не работает ни один UART(( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 79 27 декабря, 2023 Опубликовано 27 декабря, 2023 · Жалоба 1 час назад, fpga_student сказал: Мда вторую плату полностью сбросил на ней не работает ни один UART(( Однозначно глупый косяк в коде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 27 декабря, 2023 Опубликовано 27 декабря, 2023 · Жалоба А тупо под отладчиком (скажу страшное - с остановленным ядром), прям руками, в регистрах UARTа нужные данные выставить и осциллографом посмотреть - запись в TDR будет данные отправлять, и будет ли приём в RDR одиночных байтов от ПК. Кстати, если тактирования нет, то и регистры в отладчике будут недоступны. Минут 40 на всё-про-всё нужно, зуб (ТСа) даю (((-8Ж Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 28 декабря, 2023 Опубликовано 28 декабря, 2023 · Жалоба On 12/28/2023 at 12:05 AM, HardEgor said: Однозначно глупый косяк в коде. код-то родной пример от Artery On 12/28/2023 at 12:58 AM, Obam said: А тупо под отладчиком (скажу страшное - с остановленным ядром), прям руками, в регистрах UARTа нужные данные выставить и осциллографом посмотреть - запись в TDR будет данные отправлять, и будет ли приём в RDR одиночных байтов от ПК. Кстати, если тактирования нет, то и регистры в отладчике будут недоступны. Минут 40 на всё-про-всё нужно, зуб (ТСа) даю (((-8Ж код исполняется вот такой while(1){ while(usart_flag_get(USART1, USART_TDBE_FLAG) == RESET); usart_data_transmit(USART1, USART1_tx_buffer[1]); //while(usart_flag_get(USART1, USART_TDBE_FLAG) == RESET); //usart_data_transmit(USART1, USART1_tx_buffer[USART1_TX_BUFFER_SIZE-data_count]); //while(usart_flag_get(USART3, USART_RDBF_FLAG) == RESET); //usart3_rx_buffer[USART1_TX_BUFFER_SIZE-data_count] = usart_data_receive(USART3); //data_count--; } под отладчиком. По шагам. Можно смотреть в ассемблере как все дрыбает. Можно в кейле. Можно в иаре. Осцилл есно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 55 28 декабря, 2023 Опубликовано 28 декабря, 2023 · Жалоба Проверил на своём AT32. Все UART работают отлично. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 28 декабря, 2023 Опубликовано 28 декабря, 2023 · Жалоба On 12/28/2023 at 11:20 AM, x893 said: Проверил на своём AT32. Все UART работают отлично. Везет( Я щаз залил ногодрыг во вторую плату. все пины дрыбают нормально в портах 1-3. USART1 не работает(( Остальное вангую тоже( Причем я вдруг понял что вообще весь cmsis обновлением библиотеки заменил на 1.6 с 1.4. Откатил щаз его обратно на 1.4. Толку 0. Какой у вас проц ? У меня 403а Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 55 28 декабря, 2023 Опубликовано 28 декабря, 2023 · Жалоба 5 minutes ago, fpga_student said: Везет( Я щаз залил ногодрыг во вторую плату. все пины дрыбают нормально в портах 1-3. USART1 не работает(( Остальное вангую тоже( Какой у вас проц ? У меня 403а На 403А давно работал. Сейчас 415СС Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sidy 1 28 декабря, 2023 Опубликовано 28 декабря, 2023 · Жалоба Проверьте тактирование USART модуля Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 28 декабря, 2023 Опубликовано 28 декабря, 2023 · Жалоба On 12/27/2023 at 10:54 PM, jcxz said: Ну вот... Да уж... Сперва надо с бардаком в своих исходниках, "либах" и прочих калокубах разобраться. Прежде чем пенять на UARTы. Вы как всегда правы(( Сделал я следующее. У меня есть пунктик, связанный с синтаксисом. Я не могу видеть в коде такое: if(*pbuffer1 != *pbuffer2) { return 0; } А мне нужно чтобы оно было такое: if(*pbuffer1 != *pbuffer2){ return 0; } Типа плотность кода на экране так выше( В определенный момент как раз накануне UARTa, я решил наконец-то навести полный порядок, и натравил на все исходники любимый notepad++, которым сделал примерно 5000 замен скобок. Потом вошел во вкус, и сделал тоже самое со скобками в операторах file do else while. И если первое преобразование прокатило - я его и до этого многократно делал, то после второго рухнул CMSIS. Он продолжал собираться, но молча перестал работать. Я этот момент толком не отловил. Потом, в процессе мучений и ковыряний попортил еще и файлы конфигов проектов. Дабы, как правильно сказал JCXZ не сделано нормальное древо проекта и бакапы были неполные(( Спасибо уважаемые простите за беспокойство( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 28 декабря, 2023 Опубликовано 28 декабря, 2023 (изменено) · Жалоба On 12/28/2023 at 12:58 AM, Obam said: А тупо под отладчиком (скажу страшное - с остановленным ядром), прям руками, в регистрах UARTа нужные данные выставить и осциллографом посмотреть - запись в TDR будет данные отправлять, и будет ли приём в RDR одиночных байтов от ПК. Кстати, если тактирования нет, то и регистры в отладчике будут недоступны. Минут 40 на всё-про-всё нужно, зуб (ТСа) даю (((-8Ж код исполняется вот такой while(1){ while(usart_flag_get(USART1, USART_TDBE_FLAG) == RESET); usart_data_transmit(USART1, USART1_tx_buffer[1]); //while(usart_flag_get(USART1, USART_TDBE_FLAG) == RESET); //usart_data_transmit(USART1, USART1_tx_buffer[USART1_TX_BUFFER_SIZE-data_count]); //while(usart_flag_get(USART3, USART_RDBF_FLAG) == RESET); //usart3_rx_buffer[USART1_TX_BUFFER_SIZE-data_count] = usart_data_receive(USART3); //data_count--; под отладчиком. По шагам...} НЕ надо в меня кодом самого высокого уровня тыкать (((-8Ж - толку от этого ноль. Речь шла об проверке настроек УАППа - живой он или вообще даже не тактируется. А GPIO перенаправлены на УАПП? Тема то как ваша названа? ;-) И что в результате? Починилось? (((-; Изменено 28 декабря, 2023 пользователем Obam Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arhiv6 18 29 декабря, 2023 Опубликовано 29 декабря, 2023 · Жалоба В 29.12.2023 в 02:48, fpga_student сказал: я решил наконец-то навести полный порядок, и натравил на все исходники любимый notepad++, которым сделал примерно 5000 замен скобок. Зачем такое делать вручную, если специально для этого существуют стилизаторы кода? Попробуйте Astyle, он очень простой в использовании. Выберите готовый стиль, похожий на свой (что-то вроде --style=kr ), потом при желании можно под себя его донастроить. Уверен, для notepad++ есть плагины для работы с astyle. Но даже если нету - то можно простой макрос сделать, который будет вызывать astyle для текущего файла по какому-нибудь сочетанию клавиш. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dOb 10 29 декабря, 2023 Опубликовано 29 декабря, 2023 · Жалоба 5 часов назад, Obam сказал: while( Это дурная привычка. А представьте себе, что где нибудь в другом месте, с другим устройством сделать так же. Они друг друга заблокируют. Нужно использовать прерывания, DMA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 49 29 декабря, 2023 Опубликовано 29 декабря, 2023 (изменено) · Жалоба 15 часов назад, fpga_student сказал: if(*pbuffer1 != *pbuffer2){ return 0; } Типа плотность кода на экране так выше( Никогда не понимал такого "уплотнения", всегда переправляю, чтобы скобки были видны лучше... Если уж хотите плотности, пишите if(*pbuffer1 != *pbuffer2) {return 0;} Изменено 29 декабря, 2023 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 29 декабря, 2023 Опубликовано 29 декабря, 2023 · Жалоба On 12/29/2023 at 2:34 PM, mantech said: Никогда не понимал такого "уплотнения", всегда переправляю, чтобы скобки были видны лучше... Если уж хотите плотности, пишите if(*pbuffer1 != *pbuffer2) {return 0;} Я думаю это зависит от головы( Я не могу патч себе на башку поставить, поэтому у меня должно быть так как я написал( Тогда читаю текст программ чужих легко, иначе не могу(( On 12/29/2023 at 2:11 AM, Obam said: НЕ надо в меня кодом самого высокого уровня тыкать (((-8Ж - толку от этого ноль. Речь шла об проверке настроек УАППа - живой он или вообще даже не тактируется. А GPIO перенаправлены на УАПП? Тема то как ваша названа? 😉 И что в результате? Починилось? (((-; Честно, не буду так глубоко рыть в природу глюка. Сделал сегодня следующее. Отладил регеэкспы для notepad++ и прошел исходники снова ими, контролируя финальный hex проекта, и дополнительно функционал 5 UART-ов (1,2,3,6,8), последовательно патча всю либу подменами: 1. \)\s*\r\n\s*{ или \)\s*\n\s*{ на \){ -успех 2. do\s*\r\n\s*{ на do{ -успех 3. else\s*\r\n\s*{ на else{ -успех После всех правок .hex проекта и функционал UART-ов остались неизменными. Как ни странно регэкспы while\s*\r\n\s*{ - маска не найдена file\s*\r\n\s*{ на else{ - маска не найдена в AT32F403A_407_Firmware_Library_V2.1.4 и AT32F403A_407_Firmware_Library_V2.1.6 ничего не нашли. Ну и хрен с ними( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться