尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

STM32 裸机 Blink 的坑 你确定你的向量表能跑起来

STM32 裸机 Blink 的坑 你确定你的向量表能跑起来
📅 发布时间:2026/7/7 2:12:55

一句话:从零写一个 STM32F103 的裸机 Blink 很简单,但 binary 里的向量表字节顺序错了,你的芯片根本不会跑。

前言

很多嵌入式开发入门都是从 HAL 库或者标准外设库开始的 —— 点个灯,调个时钟,看个寄存器。这些都没问题,但如果你像我一样曾经好奇过"不用库,纯裸机能有多复杂",那你大概率会碰一下arm-none-eabi-gcc+ 裸机工程。

上周我写了一个最精简的 STM32F103 Blink,main.c不到 30 行,startup 用纯汇编写的,linker script 自己手搓。整个工程编译通过,size一看才 120 字节,感觉稳了。

结果用xxd看了一眼 hex 的前几字节 —— 发现向量表压根没在 binary 开头。

这篇文章就是记录这个坑和它的解决方案。


一、极简裸机工程长什么样

先交代一下我在做什么。这是嵌软世界最经典的 Hello World:PC13 引脚接了一个 LED,低电平点亮。

main.c

#defineRCC_APB2ENR(*(volatileunsignedint*)0x40021018)#defineGPIOC_CRH(*(volatileunsignedint*)0x40011004)#defineGPIOC_ODR(*(volatileunsignedint*)0x4001100C)voiddelay(volatileunsignedintcount){while(count--);}intmain(void){/* 1. 使能 GPIOC 时钟(APB2 上的第 4 位) */RCC_APB2ENR|=(1&l

相关新闻

  • AI之后,核聚变迎来第二个“加速器”?
  • 计算机毕业设计之基于大数据的抖音音乐播放数据分析可视化
  • 【Bug已解决】Codex CLI 报错 conversation interrupted 解决方案

最新新闻

  • 8G显存本地部署AI漫剧生成:角色一致性、分镜与视频全流程测试
  • PCB差分对布线避坑指南:3种拓扑结构对比与5%长度匹配实测
  • 基于MP8859与PIC18F的智能DC-DC降压电源设计
  • 企业级Agent平台技术解析:从语言理解到任务闭环的工程实现
  • GeoTools 实战(二):空间数据格式转换全解析——Shp ↔ GeoJSON ↔ WKT(GeoTools 29.3 + JTS 1.19.0 实战版)
  • 知识的符合程度或者匹配程度度量方法

日新闻

  • Android逆向分析全能助手:集成化工具链与自动化工作流设计
  • 面搜索(Faceted Search)原理与工程实践指南
  • 神经网络调参避坑指南:从5个常见Loss曲线形态定位超参数问题

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号