Hi,

Yes, I got your input and will try to factor it in.

- Vipul

On Fri, May 3, 2019 at 12:32 AM Andrzej Kaczmarek <
andrzej.kaczma...@codecoup.pl> wrote:

> Hi,
>
> I already put some of comments below in (already merged) PR which seems to
> add this functionality, but this gives more context about the change itself
> so I have few more comments.
>
> On Fri, May 3, 2019 at 1:57 AM Vipul Rahane <vrah...@gmail.com> wrote:
>
> > Hello,
> >
> > So, we are running into an issue where some peripheral needs to get shut
> > down before the breakpoint gets hit. this only happens when the debugger
> is
> > connected and so, it quite isolated in terms on functionality.
> >
>
> It would be better to have such callback/whatever as a general option, not
> only while debugger is connected, since this makes it more generic and you
> can easily check if debugger is connected in your callback.
>
>
> > There are different approaches we could follow:
> >
> > 1. Have a macro (syscfg) define that function and call that macro
> >
> > 154 #ifdef MYNEWT_VAL_HAL_SYSTEM_PRE_BKPT_CB
> > 155        HAL_SYSTEM_PRE_BKPT_CB();
> > 156 #endif
> > 157
> > 158 #if !MYNEWT_VAL(MCU_DEBUG_IGNORE_BKPT)
> > 159        asm("bkpt");
> > 160 #endif
> >
> > 2. Have a `hal_system_pre_bkpt_cb()` function, register a callback and
> have
> > one specific MCU call it only if a syscfg is set, something like:
> >
> > 154 #ifdef MYNEWT_VAL(HAL_SYSTEM_PRE_BKPT_CB)
> > 155        hal_system_pre_bkpt_cb();
> > 156 #endif
> > 157
> > 158 #if !MYNEWT_VAL(MCU_DEBUG_IGNORE_BKPT)
> > 159        asm("bkpt");
> > 160 #endif
> >
>
> I am not a fan of injecting code via syscfg, so definitely would prefer
> callback approach or just have a function declaraction that application
> should define if those callbacks are enabled. - this is quite low level API
> so user-friendliness of a callbacks is not something I'd require, but otoh
> there may be some scenarios where callbacks could be useful (I don't have
> anything specific in mind).
>
> Also refering to what was done in PR, I do not think that having a single
> syscfg defined in MCU which controls code in both hal_system and kernel/os
> is a good idea. I'd prefer separate options for callback in
> hal_system_reset (like MCU_PRE_RESET_CALLBACK) and __assert_func (like
> OS_ASSERT_CALLBACK).
>
> These are just some simple suggestions we could follow, obviously there is
> > a hard way of doing this thing where we change APIs and register a
> callback
> > and have assert take that callback as an argument but I am not a big fan
> of
> > changing standard APIs.
> >
> > If others have a suggestion, please let me know. If not I am going to
> > assume everybody is fine with option 2.
> >
> > --
> >
> > Regards,
> > Vipul Rahane
> >
>
> Best,
> Andrzej
>
-- 

Regards,
Vipul Rahane

Reply via email to