Debug记录(1)
今天下午在给nRF52832写程序时,莫名遇到了这个错误
错误id是一个很奇怪的数。
原代码如下:
static void timers_init(void)
{
uint32_t timer_err_code;
// Initialize timer module.
APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_OP_QUEUE_SIZE, false);
//创建应用定时器
app_timer_create(&m_adc_sampling_timer_id,
APP_TIMER_MODE_REPEATED,
saadc_sampling_timeout_handler);
APP_ERROR_CHECK(timer_err_code);
}
修改后代码如下:
static void timers_init(void)
{
uint32_t timer_err_code;
// Initialize timer module.
APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_OP_QUEUE_SIZE, false);
//创建应用定时器
timer_err_code=app_timer_create(&m_adc_sampling_timer_id,
APP_TIMER_MODE_REPEATED,
saadc_sampling_timeout_handler);
APP_ERROR_CHECK(timer_err_code);
}
经过排查发现,错误id,即变量timer_err_code没有赋值就传递给APP_ERROR_CHECK这个宏,结果导致宏调用了错误处理函数,并进一步导致了程序卡死。
APP_ERROR_CHECK宏的作用:Macro for calling error handler function if supplied error code any other than NRF_SUCCESS
注意
1 变量声明要尽可能靠近第一次使用处,避免一次性声明一组没有马上使用的变量。
2 函数的返回值要清楚,明了,防止使用者误用,理解错误或忽视错误返回码。
Debug记录(1)的更多相关文章
- 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL
在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...
- sriov-网络问题Debug记录
我司容器云平台使用了sriov的底层网络模型,这个网络驱动的好处是配置少,转发效率高,但是缺点也很明显,出了问题比较难Debug. 现就工作中出现的问题记录如下: 容器删除后,或者docker进程异常 ...
- jsp 错误码debug记录与总结
500: 编码错误: 无法向cookie中写入中文字符串 需要使用URLEncoder.Encode()在写入处进行转码,使用URLDecoder.decoder()在读取处进行解码 或者使用requ ...
- 流媒体技术学习笔记之(十五)FFmpeg编码遇到的错误、警告、Debug记录
When encoding H.264 using ffmpeg I get the following type of warnings en masse: Past duration 0.6063 ...
- k8s debug记录之kubelet user.slice container monitor failure
在kubernetes中,如果使用其自带的单机启动脚本./hack/local-up-cluster.sh来启动一个本地集群的话,会在kubelet的日志中观察到类似以下内容的日志: Failed t ...
- 【Debug记录】Exeption thrown by glCreateVertexArrays
继在机场丢失笔记本后又一大灾难--小组项目无法在老电脑上运行. 位置:glCreateVertexArrays函数 报错:Exception thrown at 0x00000000 in Clien ...
- 第一篇博客关于Log4net的配置记录
说明:本程序演示如何利用log4net记录程序日志信息.log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括M ...
- 记录Log4Net的使用
最近项目中有一个记录错误日志的功能模块,以前采用的是写TXT的做法.代码如下 /// <summary> /// 写入日志 /// </summary> public stat ...
- 【TP3.2】:日志记录和查看
1.TP3.2手册日志类链接:http://document.thinkphp.cn/manual_3_2.html#log 2.日志默认路径:/Application/Runtime/Logs 3. ...
随机推荐
- python的paramiko模块-远程登录linux主机并操作
paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作. 如果python服务器对被远程控制机器开启了免密验证,即在python服务器上可通过ssh 用户名@被控制机 ...
- OSI七层协议与TCP/IP模型
OSI为Open System Interconnection的缩写,意为开放式系统互联,国际标准化组织(ISO,International Organization for Standardizat ...
- c#简单案例--单位转换器
经过几天学习,写出了一个简单的winform应用程序,贴出源码,以备不时之需. 软件启动后的界面如下图所示: 如图,该程序由6个label.8个comboBox.8个textBox和4个button组 ...
- 安装搭建Python2.* 和3.* 环境详细步骤
Python是跨平台的,它可以运行在Windows.Mac和各种Linux/Unix系统上. 安装Python 首先进入Python官方网站,将Python下载下来. win7安装python 在官网 ...
- bzoj 4585 烟火表演 - 动态规划 - 可并堆
题目传送门 传送门I 传送门II 题目大意 给定一棵带边权有根树,修改一条边的边权的代价是修改前和修改后的值的绝对值之差.不能将一条边的边权改为负数.问使得根节点到所有叶节点的距离相等的最小代价. 当 ...
- ODAC(V9.5.15) 学习笔记(四)TOraDataSet
名称 类型 说明 SequenceMode TSequenceMode ODAC可以直接利用Oracle中的序列对象为表的主键赋值,从而实现主键自动增长的功能.该属性决定了在什么场合下使用序列: sm ...
- php知识点-1
global 是在函数内部 声明一个 函数外部的变量(即所谓的全局变量, 而所谓的超全局变量是指 像 $_POST, $GLOBALS等之类的自动系统变量) 的一个别名. 在函数内部使用 unset( ...
- word如何替换行首?
在替换窗口, 要使用通配符 要使用 替换中的 分组, 高级替换 表示行首的符号, 使用 (<*) 表示 单词开始的位置, 使用 <, 表示单词结束的位置, 使用 > 替换的示例:
- HDU 6406 Taotao Picks Apples & FJUT3592 做完其他题后才能做的题(线段树)题解
题意(FJUT翻译HDU): 钱陶陶家门前有一棵苹果树. 秋天来了,树上的n个苹果成熟了,淘淘会去采摘这些苹果. 到园子里摘苹果时,淘淘将这些苹果从第一个苹果扫到最后一个. 如果当前的苹果是第一个苹果 ...
- Windows FindFirstFile利用
目前大多数程序都会对上传的文件名加入时间戳等字符再进行MD5,然后下载文件的时候通过保存在数据库里的文件ID读取文件路径,一样也实现了文件下载,这样我们就无法直接得到我们上传的webshell文件路径 ...