Перейти к содержанию
    

Aal6

Участник
  • Постов

    45
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Aal6

  • Звание
    Участник
    Участник
  1. В проекте стоит флаг -g3, насколько я понимаю, это как раз максимальный уровень отладочной информации. Флаги компиляции: -x c -mthumb -D__SAMD10D14AM__ -D__SAMD10D14AM__ -DDONT_USE_CMSIS_INIT -DF_CPU=8000000 -I"../../include" -I"../.." -O1 -ffunction-sections -fdata-sections -funsafe-math-optimizations -g3 -Wall -mcpu=cortex-m0plus -c -std=gnu99 -nostdlib -flto -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" Флаги линковки: -mthumb -Wl,-Map="$(OutputFileName).map" -Wl,--start-group -Wl,--end-group -L"D:\disk_f\projects\Shkratov\orange\BootLoader_d10\astudio\Device_Startup" -Wl,--gc-sections -mcpu=cortex-m0plus -Wl,--script=../../linker/samd10_bl.ld -nostdlib -flto
  2. Полностью пересобрал проект, оставив только .c, .h, .ld файлы. Размер в -О1 на 6 байт больше получился. Отладка заработала, хотя и несколько странно, но брекпоинты ставятся и в некоторых местах на них процессор останавливается. Код исходный в дизасемблере подтягивается. Очень хочется понять, почему не работает в исходном проекте.
  3. Именно загрузчик и нужно отладить. В нем не работает отладка. При попытке загрузки своего кода вылетает с ошибкой, поймать не смог пока. Работа отладки в загрузчике сильно бы поспособствовало.
  4. Avr Studio отладка

    Добрый день! Помогите, пожалуйста, понять как включить отладку в дебагере. При компиляции кода по ссылке сразу влетаю в запущенный проект без остановки в начале программы. Остановка через BreakAll дает остановку в Ассемблер, абсолютно без привязки к исходным кодам(их в disasembly просто нет). Брекпоинты в си коде не работают. Собственно, необходимо чтобы заработал си отладчик. Вроде уже все попробовал, включая компиляцию с нулевой оптимизацией и максимальными опциям по дебагу. Проект бутлоадера для D10. Получен от Микрочипа, изменений нет, внизу по ссылке. https://yadi.sk/d/V6RvXvli3Y5LgC Заранее спасибо! :1111493779: С уважением, Алексей.
  5. Добрый день! Подскажите, где взять файлы к Secure UART Bootloader for SAM D10? http://www.microchip.com/wwwappnotes/appno...ppnote=en603279 Не могу понять. Буду благодарен за ссылку или сами файлы. С уважением, Алексей.
  6. Добрый день! Нет ли у кого бутлоадера под SAMD10/11, которым не жалко поделится? Из примеров ASF уж очень большой компилится(4.5k без шифрования под i2c), задача влезть в 4к из 16 на борту c шифрованием под Uart или i2c. И хорошо бы файл для линкера, который переносит компиляцию основной задачи на 4к выше. С уважением, Алексей.
  7. Интересует pullup для UART RX. В общем-то все равно проверю, ошибка на плате будет себе дороже. Хотя доп резистор ставить не хочу. Для I2C там пулапы прописаны в стандарте функции. Странно, что в даташите в таблице мультиплексора функций указано в графе type только 4 пина с типом I2c. При том, что в чипе 3 SerCom модуля.
  8. Обычно сперва думаешь, что сам ошибся. Особенно, когда чип не знаком. Вопросы которые мне бы немного помогли: Работает ли PullUp/Down при определении периферийной функции на входах? Достаточно ли стабильности внутреннего генератора для работы с UART? (Стоит ли ставить внешний кварц) С уважением, Алексей.
  9. Все оказалось просто. В даташите в таблице PORT Function Multiplexing указано, что AC CMP[0]-CMP[1] относится к Peripheral function B, а по факту к Peripheral function G. Раскопал в define на чип. Относится к samd10-samd11 семейству. В обоих даташитах имеется определение CMP[0]-CMP[1] в группе B. Блин... Спасибо за ответ! Так все и оказалось. Жаль ответ прочитал позже, чем нашел сам.
  10. Добрый день! Помогите победить компаратор в ATSAMd11d14am. Не могу вывести на выходные пин сигнал выхода сравнения компаратора. Основа проекта, пример работы с компаратором из AFS(Atmel Studio7). Изменены режимы ac_chan_conf.sample_mode = AC_CHAN_MODE_CONTINUOUS; ac_chan_conf.output_mode = AC_CHAN_OUTPUT_ASYNCRONOUS; Все транслируется на биты в установке компаратора(картинка вложена). PORTIO->WRCONFIG.reg = PORT_WRCONFIG_PMUXEN | ((PORT_PMUX_PMUXE_B_Val)<< PORT_WRCONFIG_PMUX_Pos)|PORT_WRCONFIG_WRPMUX| PORT_WRCONFIG_WRPINCFG| (1<<PIN_PA10) ;//(1<<PIN_PA14);. В установках пина Pin_PA10 PORT_PMUX_PMUXE_B_Val и PORT_PINCFG_PMUXEN выставляются(в дебагере видно), хотя ASF это программно не поддерживает. На выводе постоянный 0. (осцилограф) При программной трансляции статуса компаратора на произвольный выход - все нормально работает(осцилограф), выходной пин повторяет вход. if(AC->STATUSA.bit.STATE0) PORTIO->OUTCLR.reg = 1<<PIN_PA17; else PORTIO->OUTSET.reg = 1<<PIN_PA17; Т.е. проблема в районе железной трансляции выхода компаратора на пин. Не могу понять в чем дело. Помогите, кто сталкивался, второй день пляшу с бубном. Видимо, бубен держу не в той руке. С уважением, Алексей.
  11. В Аргуссофте они были или можем sam3s8b. Правда не уверен насчет того корпуса. Я два раза за последние три мес покупал себе образцы с дижикея, никаких проблем - две недели на доставку. Только просят фирму конечную назвать.
  12. Никто не спотыкался о такое : SAM3S8c, Studio6, отладка через SAM-ICE код p_adc->ADC_MR |= ADC_MR_PRESCAL(ul_prescal) | ((uc_startup << ADC_MR_STARTUP_Pos) & ADC_MR_STARTUP_Msk); asm disassembly p_adc->ADC_MR |= ADC_MR_PRESCAL(ul_prescal) | 0040019E ldr r5, [r0, #4] ul_prescal = ul_mck / (2 * ul_adc_clock) - 1; 004001A0 lsl.w r2, r2, #1 004001A4 udiv r1, r1, r2 >>> Вылетаем здесь в HardFault_Handler(), стабильно, добавлял код перед ней, все равно падаем здесь. Reg R01 = 0x03D09000 R02 = 0x0004E200 SCB->HFSR бит FORSED=1 SCB->SFSR бит UNDEFIMSTR = 1 SCB->ССR бит STKALIGN =1 До какого то момента код работал и вылетал редко(Несколько раз ловил в Dummy_Handler). После незначительных изменений кода далеко за этой командой стал стабильно вылетать, отмена изменений не влияет. Интересно, что при отключении SAM-ICE от устройства ARM это место исполняет. Возможно, дело во взаимодействии с JTAG.?
  13. Спасибо! Я и не знал что есть столько методов. Да, clz не особо нужен, хотя код с ним будет обладать примерно той же эффективностью на ARM. Посмотрим, это пока на потом оставил. Если скорости хватит, сделаю расчет через софт или, если останемся в этом кристалле, выделю канал UART-SPI и таймер исключительно под эту задачу и сделаю аппаратный подсчет.
  14. Судя по всему не то. Хотя помочь немного может, если гасить единицы последовательно.
×
×
  • Создать...