摘要:
大部分情况下都是使用 C 语言去编写的。只是在开始部分用汇编来初始化一下 C 语言环境,比如初始化 DDR、设置堆栈指针 SP 等等,当这些工作都做完以后就可以进入 C 语言环境,也就是运行 C 语言代 码,一般都是进入 main 函数。所以我们有两部分文件要做: ①、汇编文件 汇编文件只是用来完成 阅读全文
摘要:
嵌入式Linux学习第四天 今天学习I.MX6U 启动方式详解。I.MX6U有多种启动方式,可以从 SD/EMMC、NAND Flash、QSPI Flash等启动。 启动方式选择 BOOT 的处理过程是发生在 I.MX6U 芯片上电以后,芯片会根据 BOOT_MODE[1:0]的设置来选择 BOO 阅读全文
摘要:
嵌入式linux学习第三天汇编语言点灯 今天学习如何在linux板子上点灯。 I.MX6U GPIO 详解 我们发现I.MX6U GPIO是分为两类的,:SNVS 域的和通用的。在讨论i.MX6U或类似的复杂微处理器时,了解其GPIO(通用输入输出)引脚的不同分类是很重要的。i.MX6U的GPIO引 阅读全文
摘要:
今天学习linuxC编程。首先要熟悉linux下编写c程序的过程。 编写程序Hello World! 首先创建存放程序的文件夹,如下图所示: 接下来在创建一个文件夹来保存这节要编写的代码。指令:mkdir 3.1 接下来我们要设置VIM编辑器的一些配置,比如设置tab的字符数为4、以及设置VIM编辑 阅读全文
摘要:
参考正点原子Linux开发文档。记录下知识点。 Shell 基本操作 前面我们说 Shell 就是“敲命令”,那么既然是命令,那肯定是有格式的,Shell 命令的格式 如下: command -options [argument] command: Shell 命令名称。 options:选项,同一 阅读全文
摘要:
FreeRTOS 软件定时器 FreeRTOS 也提供了定时器功能,不过是软件定时器,软件定时器的精度肯定没有硬件定时器那么高,但是对于普通的精度要求不高的周期性处理的任务来说够了。当 MCU 的硬件定时器不够的时候就可以考虑使用 FreeRTOS 的软件定时器 软件定时器简介 软件定时器允许设置一 阅读全文
摘要:
FreeRTOS任务通知 FreeRTOS 新增了任务通知(Task Notifictions)这个功能,可以使用任务通知来代替信号量、消息队列、事件标志组等这些东西。使用任务通知的话效率会更高,任务通知在 FreeRTOS 中是一个可选的功能, 使用队列、信号量、事件标志组时都需另外创建一个结构体 阅读全文
摘要:
FreeRTOS 事件标志组 使用信号量来完成同步,但是使用信号量来同步的话任务只能与单个的事件或任务进行同步。有时候某个任务可能会需要与多个事件或任务进行同步,此时信号量就无能为力了。 事件位用来表明某个事件是否发生,事件位通常用作事件标志,事件标志组是一组事件标志位的集合, 可以简单的理解事件标 阅读全文
摘要:
优先级翻转实验以及分析现象 优先级翻转指的是高优先级的任务反而慢执行,低优先级的任务反而优先执行。优先级翻转在抢占式内核中是非常常见的,但是在实时操作系统中是不允许出现优先级翻转的,因为优先级翻转会破坏任务的预期顺序,可能会导致未知的严重后果。 上图中三个任务的优先级的顺序为H>M>L,L 获取信号 阅读全文
摘要:
信号量常用于控制对共享资源的访问和任务同步。 其中控制共享资源可以从停车场的例子去理解。比如现在这个停车场最大容量为100。这个100就是共享资源。假如要把车停进去这个停车场,就需要查看当前停车场中的数量。当前的停车数量就是信号量。信号量的增加对应停车场的车开出停车场。信号量减少代表新的车进入了停车 阅读全文