课上内容

嵌入式C语言

位域

  • 一个整数按位分成几个部分,例子时分秒的分割。

保留位

强制访问

  • 强制类型转换:&取地址后可以任意转换(xxxx*)&var;
  • 使用Union

I/O速度匹配(对时序编程)

  • Delay
  • Sleep

C语言反思

  • 推荐看高质量C++编程

中断编程

  • 建立中断向量表
  • 设置中断源
  • 中断控制初始化
  • 中断服务程序

系统实现

I/O映射

  #define base 
  #define A (base+1)
  #define B (base+)

存储器测试

  • 在处理器与存储设备之间的连线问题(短路 开路)
  • 数据总线 地址总线 设备的测试
  • 数据总线测试方式: 走“1”测试;
  • 地址总线测试方式:
  • 设备测试:本身的完整性,确认的设备中每一位都能保持住 0
    短路 开路 会出现什么状况。回去重新理解着三个测试 下节课考点

验证存储器内容

  • 校验和
  • CRC校验

实时系统的概念

  • 嵌入式实时操作系统的重要指标:实时性、尺寸、可扩展性(内核、中间件);
  • 硬件抽象层HAL:是体系结构相关的底层程序
  • 处理系统启动 、硬件初始化及中断与异常

μC/OS-II

  • 自己尝试“写”RTOS

代码的临界段

  • 也叫临界区,指处理时不可分割的代码,运行代码不允许被打断

调度

  • 不可剥夺
  • 可剥夺
  • 可重入函数:任何时候都可以被打断!

任务切换

  • 任务运行环境:
  1. 处理器中的运行环境:Pc、SP
  2. 内存中的运行环境:任务代码、任务堆栈
  • 处理器通过两个指针寄存器(PC和SP)来与任务代码和任务堆栈建立联系并运行它。
  • PC 程序的断点地址
  • SP 任务堆栈指针

总结

  • 本次课程中,上半节课接着上次课程讲了位域,下半节课讲述了实时系统。从中反思了一下自己的C语言能力有哪些不足,对实时系统有了一定的了解,怎样去写一个简单的实时系统操作系统。老师页给出建议
原文地址:https://www.cnblogs.com/hpl20155329/p/8124236.html