Image
Image

药无尘

+ 关注

粉丝 3     |     主题 79     |     回帖 623

嵌入式软件中错误如何处理?
2022-9-2 13:12
  • ST MCU
  • 14
  • 1893
  3.3 封装 为减少错误检查和处理代码的重复性,可对函数调用或错误输出进行封装。 封装具有错误返回值的函 ...  
  使用断言时应注意以下几点: 断言用于检测理论上绝不应该出现的情况,如入参指针为空、除数为0等。 对比以 ...  
  3.2 断言(assert) abort()和exit()函数无条件终止程序。也可使用断言(assert)有条件地终止程序。 assert是 ...  
  三 错误处理 3.1 终止(abort/exit) 致命性错误无法恢复,只能终止程序。例如,当空闲堆管理程序无法提供可 ...  
  规避方法有两种: 将SIGFPE信号变成系统默认处理,即signal(SIGFPE, SIG_DFL)。 此时执行输出为"Floating ...  
  2.5 信号(signal/raise) 在某些情况下,主机环境或操作系统可能发出信号(signal)事件,指示特定的编程错误 ...  
  执行结果为: 通过组合使用setjmp/longjmp函数,可对复杂程序中可能出现的异常进行集中处理。根据longjmp( ...  
  2.4 非局部跳转(setjmp/longjmp) 局部goto语句只能跳到所在函数内部的标号上。若要跨越函数跳转,需要借助 ...  
  2.3 局部跳转(goto) 使用goto语句可直接跳转到函数内的错误处理代码处。以除零错误为例: 执行结果如下: ...  
  C标准定义strerror和perror两个函数,以帮助打印错误信息。 该函数将errnum(即errno值)映射为一个出错信息 ...  
  使用errno时应注意以下几点: 函数返回成功时,允许其修改errno。 例如,调用fopen函数新建文件时,内部可 ...  
  2.2 全局状态标志(errno) Unix系统调用或某些C标准库函数出错时,通常返回一个负值,并设置全局整型变量err ...  
STM32上实现驱动注册initcall机制
2022-11-2 20:57
  • ST MCU
  • 9
  • 823
  三、代码 gitee:https://gitee.com/schuck/cola_os girhub:https://github.com/sckuck-bit/cola_os ...  
  二、代码 头文件: 源文件: 在主进程中调用void do_init_call(void)进行驱动初始化,驱动注册初始化时调 ...  
一种嵌入式系统软件定时器的实现
2022-9-15 23:51
  • ST MCU
  • 10
  • 889
  3.3.3 更新本文中软件定时器有三种状态:停止,运行和超时,不同的状态做不同的事情。停止状态最简单,啥事 ...  
  3.3.2 启动启动一个软件定时器不仅要改变其状态为运行状态,同时还要告诉定时器什么时候到期(当前tickCnt值 ...  
  3.3 定时器操作3.3.1 初始化首先是软件定时器的初始化,对每个定时器结构体的成员赋初值,虽说static变量的 ...  
  3.2 数据结构软件定时器的数据结构决定了其执行的性能和功能,一般可分为两种:数组结构和链表结构。什么意 ...  
  33.基于STM32的软件定时器3.1 时钟节拍软件定时器需要一个硬件时钟源作为基准,这个时钟源有一个固定的节拍 ...  
  22.软件定时器的实现原理在Linux,uC/OS,FreeRTOS等操作系统中,都带有软件定时器,原理大同小异。典型的 ...  
2
3
近期访客