Во блин прикольно открыл лог сборки, сначала компилится какая то шляпа к загрузчику - занимает 104 байта, сам загрузчик в памяти почти 1 кб весит (это тот который может стартовать загрузку с USART или с других портов
Во блин прикольно открыл лог сборки, сначала компилится какая то шляпа к загрузчику - занимает 104 байта, сам загрузчик в памяти почти 1 кб весит (это тот который может стартовать загрузку с USART или с других портов
короче оно сразу попадает в Reset Handler. далее копирует загрузчик из флешки !!! (вот этого я не знал) далее идет инит MSI... Читать далее
Господа. Ауди мотор bug 3.0 tdi какое давление в рампе на хх - 270-290? У меня под 480. Замена клапана на рампе который ничего... Читать далее
Доброго времени суток! Извиняюсь за, возможно, глупый вопрос. Хороший знакомый просил глянуть планшет, утопленник. Дисплей... Читать далее
Доброго времени суток проблема такова на Volvo s80 второго поколения 2007год 2.5т не работает климат печка дует горячим и... Читать далее
Всем доброе. По поводу акб. Не знаю как у кого но в GSM service больше их не беру. С 2мя самсунгами древними типа А300 и... Читать далее
вообще по факту, если бы государство платило бы деньги, точнее вкладывало бы в образование то был бы толк а так, фигня все... Читать далее
Комментарии: 82
Linxuil
Не ide генерит, а компилятор на сколько я погимаю все же. Просто когда я не вижу у себя на компе исходников того что попадает на мк, меня немного коробит. Не критично, но все же. Загрузчик который с плмощью уарта прошивает записан в области памяти которую мы не можем переписать, о нем отдельная область памяти есть на карте памяти мк в даташите врядли это он там при билде фигурирует.
Andrew
не знаю gcc везде а код везде разный абсолютно я про стартап, стартапы делает не компилятор
Aleksey
Не стартап его можно с сайта STM скачать либо выдрать из кейла :)
Linxuil
Стартап да, его не компилятор делает, а вот этот мистический __main генерирует компилятор в конце сборки. Но куда он его кладет я не понимаю. Не модет же он прям сразу в бинарник его писать налету. Должны быть какик то временные файлы
Andrew
у кубиде я такого не видел
Linxuil
Чего не видел?
Andrew
__main нет там такого а вы где встречали?
Linxuil
Там же в кейле, только давно его не писал руками, благо куб есть Раньше он фигурировал примерно так Riset_Homdler PROC EXPORT Riset_Homdler [WEAK] IMPORT __main IMPORT SystemInit LDR R0, =SystemInit BLX R0
Dmitriy
Может в дебаге сливается отдельный код, чтобы регистры вытянуть... Но это где нет jtag. Jtag вроде все аппаратом выплёвывает...
Andrew
это при прошивке ж-линком?
Aleksey
ага
Linxuil
Криво вставилось Вот тот стартап который я помню https://github.com/STMicroelectronics/STM32CubeF0/blob/master/Drivers/CMSIS/Device/ST/STM32F0xx/Source/Templates/arm/startup_stm32f042x6.s
Ogurezzz
Инициализация нормально видна. Чего ж экран-то не хочет взлетать? Без буфера работало...
Dmitriy
Таймауты выдержаны?
Ogurezzz
Инициализации? Да. По даташиту все.
Dmitriy
Ищи, гдето видать ацк пропустил
Linxuil
Там вроде есть биты ack которые выставляет переферия, может при введении буфера вы как то помнняли логику работы с ними?
Ogurezzz
Они аппаратно отрабатываются и если все ок - продолжается посылка.
Dmitriy
Да ну...
Ogurezzz
Ну вон они все.
Andrew
это и есть просто вызов main из сишной части
Aleksey
выше пример фрейма для дисплея
Ogurezzz
Не. По отправке STOP на шину. Сейчас сравню
Dmitriy
Там что-то банальное ))) Вот тут не понял.... Уарт?
Aleksey
проверяйте прямо по мануалу что должно быть и что приходит, В SPI может быть засада с CPHA, CPOL в i2C все просто он или пашет или сдох :)
Ogurezzz
Что-то заработало. Но где буква d?
Dmitriy
Гы ))))
Aleksey
Гы язнаю в чем косяк :) контроллер 32 битный ?
Andrew
так на hc595 проще и лучше, я делал вывод строки полностью на автомате аппаратно
Ogurezzz
Неа. 8ка
Andrew
а это АВР...
Aleksey
в выводе в конце попробуйте добавить перевод строки и посмотрите он управляющие символы переваривает или нет
Andrew
а в анализаторе что есть буква Д?
Ogurezzz
В буфер все правильно заливает. Сейчас все проверил. Четко по ASCII
Andrew
логического анализатора нету?
Ogurezzz
Вот косяк. С буфером. 3 байта похерил.
Linxuil
Нет, еще ращ повтрюсь 1) Прочтите коментарий сверху этого файла Где написано Branches to main in the C library (which eventually;* calls main()). Что ощначает, что этот main, это не метка на main(), а метка на некую инициализирующуб функцию, скажем в 200 строк, не знаю сколько она вреальности, так как она автогенерируемая. И вот эта функция в конце на 200 строчке вызывает main() 2) Прочтите ту главу из кники которую я скинул выше. Там четко сказано что такое main, даже примеры даны его вызова, но самих исходников main нету
Aleksey
Народ а кто нибудь прикручивал к микроконтроллеру STM32 стандартную либу из GCC ?
Ogurezzz
Тадам!
Aleksey
теперь подстроечник поставить на контраст и будет вообще бомба :)
Ogurezzz
Оно там есть
Ogurezzz
Вроде заработало. Было 2 проблемы: 1. Не запускалась нормально передача после первой остановки. Буфер переполнялся и все катилось псу под хвост. 2. При добавлении байта в буфер нужно отключать прерывания TWCR&=~_BV(TWIE); и после включать обратно. Иначе прерывание вылетало во время записи и все индексы "плыли". Ну и нужно учитывать необходимость задержки для команды очистки экрана и возвращения курсора. Но это уже очевидные вещи были... Пошел я спать...
Linxuil
Разве она стандартная? Это приблуда линукса, но к gcc и тем более к стандарту си не имеет отношения вроде?