07 2021 档案
摘要:内容 显示全局变量、函数位于哪个地址和section 链接了哪些 .o 文件 生成 通过gcc参数-Wl,-Map,: gcc -o helloworld helloworld.c -Wl,-Map,file_name.map 或者 gcc -o helloworld helloworld.c -W
阅读全文
摘要:objdump 可以用来反汇编: objdump -l -S XXX.elf > a.c 把可执行文件 XXX.elf 反汇编出文件 a.c -S : 输出文件包含源代码 -l : (字母 L 的小写)输出文件包含文件名和行号 查询更多使用方法:objdump -H objdump <option(
阅读全文
摘要:产生 hard fault 方法: 对不可访问的内存地址进行写操作 uint32_t *addr = (uint32_t *)0x20100000; *addr = 0x12; STM32 定位导致发生 hard fault 的代码段 ~ 流程: 1、获得进入中断服务函数 HardFault_Han
阅读全文
摘要:比 nodepad++ 更方便的软件,支持函数名跳转到定义
阅读全文
摘要:本文以Linux3.14版本源码为例分析其启动流程。各版本启动代码略有不同,但核心流程与思想万变不离其宗。 内核映像被加载到内存并获得控制权之后,内核启动流程开始。通常,内核映像以压缩形式存储,并不是一个可以执行的内核。因此,内核阶段的首要工作是自解压内核映像。 内核编译生成 vmlinux 后,通
阅读全文
摘要:编写程序之前,需要对SD卡有一个了解,建议先搜搜网上各种牛人的笔记,然后去看官方的SD卡资料,这样理解起来比较容易(https://www.sdcard.org/home/ 官网)。在查找文档之前,需要选择适合自己SD卡的文档,因为卡有不同的版本,不同存储量大小的SD卡支持的命令不同,比如有的SD卡
阅读全文