Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Andrew Shvayka
@ashvayka
Reddit это мощь. Но трафик не всегда качественный
Maxim Olender
@forGGe
Ну наконец-то дока приобрела хоть какой-то вид :) прошу ревью! - forGGe/theCore#275 . все запаблишено в gh pages: https://forgge.github.io/theCore/index.html одностраничник тут: https://forgge.github.io/theCore/singlehtml/index.html
Maksim Shmalko
@Dubland
I2C_FLAG_TRA 1 это tx или rx?
Maxim Olender
@forGGe
@Dubland отвечаю сюда тебе по поводу дебага
ecl::cout это юзерская функция, её нельзя юзать в интерраптах и драйверах (хоть я и грешил таким)
Maksim Shmalko
@Dubland

"

у меня вопрос как сделать дебаг на борде
например я сделал что-то похожее на хендлинг ошибок"

Maxim Olender
@forGGe
зато есть bypass_putc(), который выводит аж один символ в консоль в poll-режиме :)
Maksim Shmalko
@Dubland
я уже понял, что не поможет cout :D
Maxim Olender
@forGGe
если ты находишся в интеррапте - я бы советовал тебе вообще ничего не выводить
Maksim Shmalko
@Dubland
я хотел проверить, что я вообще в него попадаю
Maxim Olender
@forGGe
ааа
окей, тогда решение, которое работает "сразу"
врубаешь gdb
`+ openocd
ставишь брекпоинт на интеррапт и запускаешь программу
можешь прямо ставить на конкретный номер строки в файле, типа b i2c_bus.hpp:123
вариант 2: "почти сразу" - мигаешь там GPIO, но надо будет несколько минут потратить на то, что бы добавить дебажный код. потом его надо будет убрать
вариант 3: bypass_putc() - выводишь один символ. можешь еще напилить bypass_puts() что бы вывести строку, но только ты рискуешь сильно затянуть обработку прерывания, и возможно, что сенсору это не понравится
Maksim Shmalko
@Dubland
мне кажется или экзампл htu21d не попадает в irq_er_handler?
Maxim Olender
@forGGe
всегда попадал
ааа
в er_handler?
Maksim Shmalko
@Dubland
да
который пустой был
Maxim Olender
@forGGe
не в курсе. в ev_handler попадал
btw вариант 4 "на будущее": подумать над красивым API для отладочной консоли, которую можно юзать в драйверах theCore. правда решить твою конкретную проблему это не поможет))
Maxim Olender
@forGGe
так, похоже понял в чем дело
драйвер разрешает только главный интеррапт i2c, а вот интеррапт для ошибок остается замаскированным
посмотри все вызовы irq::unmask в драйвере
не хватает что-то вроде
    constexpr auto err_irqn  = pick_err_irqn();
    // ...
    irq::unmask(err_irqn);
Maksim Shmalko
@Dubland
bypass_putc результата не дал
я попробывал в ev_handler вывести символ
Maxim Olender
@forGGe
да, потому что он выключен
Maksim Shmalko
@Dubland
не, я пробывал в ev, а не в er
хотел убедиться, что увижу вывод символа
Maxim Olender
@forGGe
хм
а дебаггер что говорит?
у тебя вообще что-то есть в консоли?
Maksim Shmalko
@Dubland
Welcome to theCore
Starting HTU21D sensor...
Maxim Olender
@forGGe
хм, i2c в режиме irq в этом примере, так что в irq_ev обязанно заходить
так что дебагер говорит?
Alexey Shmalko
@rasendubi

@forGGe Nixpkgs:

  gcc-arm-embedded = gcc-arm-embedded-6;

(6-2017-q2-update)

даже не я)
Maxim Olender
@forGGe
coool)
Maxim Olender
@forGGe
всем привет! :) решил поменять лицензию: forGGe/theCore#292 давайте все сделаем официально! ставте свои плюсики :)
more news to come, stay tuned
Maxim Olender
@forGGe
добавлю сегодня theCore на линкедин, кто хочет что бы его добавили туда ставте плюсики, на поорать
Maksim Shmalko
@Dubland
ca91bf37a462ce.jpg
напомнило
Maxim Olender
@forGGe
:D