- printf(), __io_putchar, _write(), --specs=nosys.specs,
--nano.specs и вот это вот всё: хочу сделать печать на UART при использовании printf(). Что для этого надо для arm-none-eabi? Понятно, что можно сделать через snprintf() и свой буфер, но есть впечатление, что это изобретение велосипеда.
Вот только беда - к существующему нет внятного описания. Или я
поисковикам вопрос не смог задать правильно. - Dingo(13.04.2023 15:34, ARM, полностью)
- Так получилось в итоге? - RxTx(27.07.2023 20:04)
- Немного по поискам, может кому-то облегчит их и сократит путь. И о
причинах. Главное - хотелось как и задумано пользоваться printf() как стандартной и всем понятой функцией просто подключив <stdio.h>. У меня - не получилось. Потому что не "просто вывести на
консоль", а консоль это stdout, который есть файл, который есть устройство, ... в доме который
построил Джек. В моём случае FILE (в т.ч. stdout) содержит поле _write с Dingo(524 знак., 15.04.2023 18:05, ссылка)
- Конкретно printf() в конце концов вызывает write(), и тебе надо
переопределить write() так, как тебе надо. VVB(315 знак., 14.04.2023 06:38)
- Эта штука компиляторазависимая, для ИАР нужно переопределить
putchar() для stdout, для вывода по дескриптору переопределить
fputc() IBAH(2256 знак., 13.04.2023 19:22)
- В песках что-то такое было давным-давно >>> SciFi(1 знак., 13.04.2023 15:49, ссылка)
- Переопределяешь функции передачи символов. Чтобы перебить
библиотечные... что-то типа Putchar ... POV(90 знак., 13.04.2023 15:38, ссылка, ссылка)
- stm32.. счетчик импульсов. Ничего из rfm008 понять не могу. Как
настроить 3 канал таймера 4 на счет импульсов? - POV(26.07.2023 15:45, ARM, полностью)
- RTC в STM32F405: оно несовместимо ни с time_t ни со struct tm. Во
что они курили когда рожали RTC который не совместим со
стандартными структурами? И еще: не пойму в чем прикол запихивать в
кремний календарь ? Транзисторы девать некуда ? - 3m(25.07.2023 19:17, ARM, полностью)
- Вот что им помешало сделать просто двоичный счетчик в дополнение
этому изврату или вместо него? - LightElf(26.07.2023 12:35)
- Я как почитал документацию к RTC STM32F103, вот уж знатно
подохренел: это ж каким рукожопым надо быть, чтобы так убого
сделать? Eddy_Em(447 знак., 26.07.2023 11:14, ссылка)
- то, что обычный счетчик не положили, то, грусть. с другой стороны,
не помню внешних мелкосхем RTC со счетчиком. а форматы и кремний
дружить руками нужно. посмотрите форматы старого-доброго MC146818 -
там и месяцы 1...12, и день недели 1...7, и т.д.. а ещё часто
старшие битики зачищать на всякий случай нужно, ибо кремниеваятели
ничего не гарантируют всякими магическими don`t care. более грустно
когда значения считываются из асинхронных счетчиков и/или фризятся
сами счетчики на Vit(25 знак., 26.07.2023 08:40)
- так вроде это (календарь) везде в STM32. Мне нравится. :-) Кварц
прицепил - и даже високосные года соблюдает. - Лaгyнoв(25.07.2023 21:18)
- представление даты времени в BCD формате довольно стандартно - 0men(25.07.2023 21:08)
- Схему гальваноразвязки для SWD знает кто ни будь? Велосипед
изобретать не охота. Пару штук СТ-линков спалили из за Y капа в БП
и отсутствии заземления:-) - Visitor(24.07.2023 09:14, ARM, полностью)
- Если вам совсем лень, то берете I2C-шный изолятор с
однонаправленным SCL. Собственно и вся развязка, главное подтяжки
не забыть поставить. lloyd(40 знак., 24.07.2023 13:37)
- Klen предлагал всем нечто опторазвязанное. - Evgeny_CD(24.07.2023 13:26)
- Лол. Сколько можно говорить, кидай постоянный провод между корпусом
компа (читай средней точкой Y) и массой всех своих БП. Я как-то
провод от лени не кинул, глядь, а уже поздно. Сцуко, в фирменном
стлинке STMка дым пустила, вздулась, а позже обнаружил что вынесло
два USB порта на мамке. Сейчас вот придется перепаивать мать, а я
на ней работаю. - RxTx(24.07.2023 10:54)
- Я просто приобрел недорогой китайский модуль гальваноразвязки USB.
Втыкаю через него отладчики и "недоосциллограф". Так выходит
универсальнее... - Гyдвин(24.07.2023 10:47)
- Берете три одноканальных изолятора, один на чтение, другой на
передачу, третий - на включение драйвера передачи. lloyd(69 знак., 24.07.2023 10:04)
- Есть же изолированный ST-LINK. SciFi(1 знак., 24.07.2023 09:23, ссылка)
- stm32 и exti - не сразу начинает реагировать на фронты, пропускает
первые сигналы от внешнего источника (секунды не реагирует!)... POV(219 знак., 19.07.2023 15:09, ARM, полностью)
- Вопрос, как изнутри программно вызвать перезагрузку всего
микроконтроллера CortexM ? - sav6622(07.07.2023 09:28, ARM, полностью)
- Норот! Кто пишет под MounRiverStudio, что там за ебанутая система?
Подключаю в проект "*.h" файл с переменными и из других инклуденных
"*.с" эти переменные не вижу. Подключаю в эти "*.с" "*.h" файл с
определением переменных, студия начинает ругаться на множэственное
определение. Шо за ебала? - mse homjak(17.07.2023 11:31, ARM, полностью)
- Кароч, промблемма рассосалось, всем спасибо за участие. - mse homjak(17.07.2023 17:25)
- Где-то в одном месте в сишнике есть определение глобальной
переменной и без extern, NAUT(171 знак., 17.07.2023 15:35)
- а зачем у вас переменные в *.h? - RED_DRAGON(17.07.2023 15:23)
- Покажи краткий пример. VVB(107 знак., 17.07.2023 11:57)
- примерно так: mse homjak(342 знак., 17.07.2023 12:41)
- То есть вот так не умеет парсить? Неудивительно. Место для
переменной data выделяется и в модуле main и в модуле fun. Надо
где-то в одном месте выделить. VVB(209 знак., 17.07.2023 12:44)
- Должно быть вот так (тест на внимательность) Cкpипaч(237 знак., 17.07.2023 13:10)
- Нет, походу, не умеет. Ругается, как обычно. - mse homjak(17.07.2023 12:50)
- Надо убрать int data = 0; или int data = 1; в одном из модулей и
оставить только в одном. Я специально разные значения присвоил,
чтобы подчеркнуть, что компилятор не умеет за человека думать и
присваивать "правильное" значение (он не знает, какое: 0 или 1).
Переменная data примет нужное значение до запуска main() в "c
runtime". - VVB(17.07.2023 12:54)
- переменной не присваивается значение при определении. Переменная
принимает участие в вычислениях и к ней можэт быть доступ из разных
Ц-файлов. Что там присвоит ей компилятор до майн, значения не
имеет. mse homjak(24 знак., 17.07.2023 13:04)
- Тут вы не правы. Переменной всегда присваивается значение при
"определении". Если значение явно не присвоено, то присваивается
"0". VVB(441 знак., 17.07.2023 13:23, ссылка)
- Это я понимаю, упоролся ужэ. Я объявляю переменную в Н-файле и подключаю его в майн. По идее, этого должно
быть достаточно. Но МРС требует, чтобы этот Н-файл был подключён в
Ц-файле, где используется переменная, иначе, ругается, что она не
объявлена. А при подключении, ругается, что она переопределена. У
меня щас возникло нехорошее предчувствие, посмотрел внимательно на
заготовку проекта МРС-студии, а там такое: mse homjak(244 знак., 17.07.2023 13:48)
- Дык эта... Китайцы ни при чём. Это пророки Керниган и Ричи при чём.
И они ни в чём не уиноуаты, ибо пророки. А вы учите их священное
писание, и буде вам щастя. - SciFi(17.07.2023 14:06 - 14:32)
- Дык, ладно бы я, сирый и убогий. Тут местный гуру был необычайно
озадачен. Вот, ради прикола, совсем пустой проект: И сообщение, что
всё совсем плохо: mse homjak(316 знак., 17.07.2023 14:24, ссылка, ссылка)
- Переменная должна быть И объявлена (extern), И создана. Причем
создана ТОЛЬКО в одном месте. В вашем примере, или в addon.c, или в
main.c нужно добавить: Cкpипaч(64 знак., 17.07.2023 16:00)
- Всё правильно компилятор говорит. Всё-таки обратитесь к священным
текстам. Там вам разъяснят, что такое объявление, что такое
определение, в каких местах и в каком числе это всё должно
присутствовать. В этой ветке об этом уже говорилось, но вы успешно
проигнорировали. - SciFi(17.07.2023 14:30)
- Баним в майне addon() и всё, никто ни на что не ругается. Особенно,
на то, что в майне есть ундефинед референсе. - mse homjak(17.07.2023 14:29)
- Я извиняюсь за глупый вопрос, а #ifndef в *.h файлах имеется? - reZident(17.07.2023 11:41)
- Это нормально. ctl+f по всем файлам. Смотришь, где ещё вглубь это
всё. - Бapбoc(17.07.2023 11:39)
- А что "цтрл-ф"ить? В одном случае он не находит переменную, в
другом, говорит, что несколько раз переопределена. всё работает,
если всё писать в майн.ц. Это, бля, чо за дичь? - mse homjak(17.07.2023 11:44)
- При сборке консоль что выводит? Ругается на сборку или сам
индексатор? Что во всплывающей подсказке при наведении на ошибку? - Dingo(17.07.2023 12:21)
- похоже, что месье таки забыл, что выделить место (и, если нужно,
при этом задать значение) можно один раз в пределах области
видимости. а extern указывает, что место выделено где-то, потому в
хедере переменные без extern хоть и допустимо описывать (выделять
место), но только при включении хедера не более одного раза. - Vit(17.07.2023 12:10)
- Попробуй пересоздать проект, и снова туда добавить файлы, как-то
эта хрень очень похожа на новый Crosscore от андевиц... он на базе
эклипса... эта скотина иногда путается в своих же файлах, где-то
видит, где-то не видит (точнее та часть что добавляет, она видит
что файлы уже учтены в проекте... а та часть что собирает - говорит
нет и всё тут...и никакие условные @make clean не помогают)... и
всё, помогает только пересоздание проекта с импортом-вставкой всех
файлов... - sav6622(17.07.2023 11:50)
- Там, где-нибудь, в конце определений надо поменять 0 на 1. Или
наоборот. - Бapбoc(17.07.2023 11:48)
- Подскажите, как правильно использовать systick в risc-v для
формирования точного интервала? Peter_M(550 знак., 12.07.2023 17:14, ARM, полностью)
- Подниму еще разок тему. Приобрел в Чип-Дип "до-кучи" пяток
CH32V203F8P6 (еще не ведал о "токсичности"). Так и не понял как
заставить этих выкидышей от WCH отлаживаться в MRS. Отладка в
студии виснет после заливки. В DS есть картнка "BOOT0=GND". Т.е.
ожидается, что чип сразу переходит в загрузчик после сброса. Но и
загрузчик тоже не подает признаков жизни - ни usb, ни uart.
Cтереть/залить прошивку с помощью WCH-LinkUtility получается. И оно
работает. Куда еще копать? - Гyдвин(27.06.2023 14:20, ARM, полностью)
- Risc-V, CH32V203RBT6, MounRiver Studio IDE, Си. Отладчик WCH-Link. petrd(377 знак., 22.03.2023 12:26, ARM, полностью)
- GD32F103, DWT->CYCCNT перестает работать при отключенном
GD-LINK. При старте взвожу DWT_CTRL_CYCCNTENA. Куда еще посмотреть
можно? Bинни Пox(303 знак., 10.07.2023 16:41, ARM, полностью)
- Есть плата на каком-то Атмеловском SAM9X с самопальной сборкой
Linux. Из системы нужно добыть несколько исполняемых файлов. Пароль
для входа в Linux утерян, но есть доступ к U-Boot. Я правильно
понимаю, что можно слить образ через U-Boot, смонтировать в
десктопном Linux'е и дальше делать с файлами все, что хочется? - AlexG(03.07.2023 22:44, ARM, полностью)
- В каком документе описаны встроенные в IAR математические функции?
Нужен целочисленный квадратный корень. sqrt для float. А у меня
STM32F107 и использовать float совсем не хочется. - Sl(04.07.2023 14:57, ARM, полностью)
- СH32V203F8P6 - 96МГц. SPI - 12MГц, ENC28J60. Ping + UDP ping-pong
50 байт + UDP "спам" 1500 пак/сек. Вот такую вот картинку вижу...
На 144МГц вылетает в hard fault - проседает питанеие. Не тянет
питальник WCH-LinkE жручий ENC28... Гyдвин(1 знак., 03.07.2023 10:04, ARM, картинка, полностью)
- Вопрос по SPI. В stm32 такое же блядство, как встретилось в
китайском коде для СH32V ? Гyдвин(669 знак., 30.06.2023 11:59, ARM, полностью)