nrf51822代码阅读笔记一

作为一个失败的嵌入式程序员,菜鸟级别,项目中用到 nodic的nrf1822芯片,由于是偏维护性,没有对底层代码进行深究,这里主要是阅读底层代码部分笔记,没有什么顺序看到哪记到哪。

字对齐检查

51822 一个word是四个自己,在有些操作时需要检查传入的参数是否是字对齐,使用以下函数:

static __INLINE bool is_word_aligned(void * p)
{
    return (((uintptr_t)p & 0x03) == 0);
}

即去检查,地址的低两位是否为1,来判断地址是否是4整数倍。
存储单元的地址以字节为单位,一个word占4个字节,32位

CEIL_DIV
/**@brief Perform integer division, making sure the result is rounded up.
 *
 * @details One typical use for this is to compute the number of objects with size B is needed to
 *          hold A number of bytes.
 *
 * @param[in]   A   Numerator.分子
 * @param[in]   B   Denominator.分母
 *
 * @return      Integer result of dividing A by B, rounded up.
 */
#define CEIL_DIV(A, B)   ((((A) - 1) / (B)) + 1)

在分配空间的时候,按word分配吗,如果有不足的则补足一个word。

APP_BUTTON_INIT
#define APP_BUTTON_INIT(BUTTONS, BUTTON_COUNT, DETECTION_DELAY, USE_SCHEDULER)                     \
    do                                                                                             \
    {                                                                                              \
        uint32_t ERR_CODE = app_button_init((BUTTONS),                                             \
                                            (BUTTON_COUNT),                                        \
                                            (DETECTION_DELAY),                                     \
                                            (USE_SCHEDULER) ? app_button_evt_schedule : NULL);     \
        APP_ERROR_CHECK(ERR_CODE);                                                                 \
    } while (0)

APP_BUTTON_INIT 的初始化,其中USE_SCHEDULER参数是确认都是否是使用调度器,是如果软件上不想立即执行按键的触发逻辑,可以将触发事件放到调度里,之后再去执行。可以参见下面的网址上的解答。
https://devzone.nordicsemi.com/f/nordic-q-a/9046/app_button_init

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

002237

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值