[学习笔记]使用GNU Toolchain在STM32上跑起一个最小OS

本文介绍了如何使用GNU Toolchain在STM32F429上构建一个简单的操作系统,包括从设置开发环境到实现任务切换。通过一系列的实验,如配置内存布局、中断处理、时钟源和多任务调度,逐步深入STM32的底层编程。实验涉及STM32的GPIO、时钟源、Systick定时器和预emption等概念,适合嵌入式系统初学者。
摘要由CSDN通过智能技术生成
前言:
       我是从小学2年级开始接触电脑的,那个时候的系统满大街都是windows95,如果再早一点,接触到的系统应该是在小霸王游戏机上。十几年过去了(好伤感XD),现在终于知道一个最简单的操作系统,从硬件到软件,完整的,是怎么怎么运作的。

———————————————————————————————————————————————————————————————————————————

这是我这学期旁听一门嵌入式系统课程的其中某一节课的作业笔记
从基本的寄存器开始到完整的跑起一个最最最基本的OS
整个学习过程感觉受益非浅
因此在这里,把学习心得分享给大家,特别是初学者啦
之前是在Hackpad上做的笔记
搬到这里来可能格式不太好看,还望见谅
(支持open source,若转载请注明出处)


最后要感谢这门课的老师——Jserv大,其教书育人的热血信念和对技术的严谨与痴迷令人佩服不已!
很难想象这是一门大学部的课,正是得益于他不断的鞭策,才让学生有更多前进的动力!



———————————————————————————————————————————————————————————————————————————

STM32 程式發開:以GNU Toolchain

———————————————————————————————————————————————

STM32F429驗證 Lab1

  • ld文件中,.text : {}的.text與:中間必須有空格
  • STM32F429的schematics在此文檔裏:
  • LED部分的電路圖如下(有沒有好用的pdf viewer推薦,官方文檔layout出來的圖居然是垂直方向的...)
  • Discovery所用的STM32F429ZIT6:
  • STM32F429ZIT6的Flash Memory也是從0x0800 0000開始, SRAM從0x2000 0000開始, 不過注意到不同是F429的SRAM分成了112KB、16KB、64KB,Google了一下也沒看到爲什麼要這麼分,好奇
  • 關於時鐘源:
  • 關於GPIO:
  • port13 14,output push-pull,high speed
  • make時提示:gcc: warning: ‘-mcpu=’ is deprecated; use ‘-mtune=’ or ‘-march=’ instead
  • 照貓畫虎,學着https://github.com/jserv/stm32f429-demos.git 中的Makefile的openocd加進了自己的Makefile裏(但是爲什麼要這麼設置其實不是太懂,只能大概猜出一些),僅供參考:
  • CROSS_COMPILE ?= arm-none-eabi-
  • .PHONY: all
  • all: blink.bin
  • blink.o: blink.c
  •         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值