本文主要分享一个Cache一致性踩内存问题的定位过程,涉及到的知识点包括:backtrace、内存分析、efence、wrap系统函数、硬件watchpoint、DMA、Cache一致性等。
本文介绍如何使用ARM平台的硬件watchpoint定位踩内存问题,特别是如何在运行过程中自动对特定内存区域添加watchpoint。
本文是对http://antoinealb.net/programming/2016/06/01/stack-smashing-protector-on-microcontrollers.html的意译,中间插入了较多作者自己的理解,主要介绍如何在嵌入式实时操作系统(RTOS)中使用GCC的栈溢出保护功能(Stack Smashing Protection,简称SSP),特别是编译器本身不支持的情况下。
C语言中,需要开发人员自己管理内存,不可避免的会引入一系列内存相关的BUG,比如:内存重复释放、野指针、栈溢出等。这些问题通常都比较难定位,因为出问题的地方一般都不是案发现场(比如A处发生内存越界写操作,可能在B处程序才异常)。
本文介绍一种通过文件描述符重定向终端输入/输出的方法。
近期换了华为手机,系统是EMUI 8.2.0,在安装google服务的时候颇费了一番周折。
随着IoT的兴起,越来越多的嵌入式设备内置了Wi-Fi模块,具备了网络接入能力。
在开发过程中,难免会遇到各种各样的网络问题,而抓包无疑是分析网络问题最直接、最有效的手段。因为通过抓包可以明确问题是处于发送端还是接收端,迅速缩小排查范围。
然而,许多嵌入式设备上运行的可能不是Linux系统,而是一些实时操作系统(RTOS),甚至根本就没有操作系统。而和设备通信的对端也不一定能运行tcpdump或者wireshark等抓包工具。这使得常见的点对点抓包手段失效。