1.首先要定义可以当作段的内存空间。这段空间应该由系统来分配。assume cs:codesgcodesg segmentdw 123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdw 0,0,0,0,0,0,0,0,0,0,0... Read More
1.当设置OS_CFG.H中的OS_CFG_ISR_POST_DEFERRED_EN为1时, uC/OS-III就会创建一个任务,它的作用是尽快完成ISR中对post函数的调用, 将信号量、消息等对象先存在媒介中, 退出中断后,由中断处理任务完成将这些对象提交给任务。 2.正如“ 临界段” 所介绍的 Read More
{这节所说的定时器都是软件定时器} 1.uC/OS-III为用户提供了定时器任务,相应代码在OS_TMR.C中。定时器任务是可选的,通过将OS_CFG.H中的OS_CFG_TMR_EN设置为1使能。当设置为1时,它的代码才会被添加到最终代码中。 2.当定时器任务递减计数变量到0时,任务中就会调用回调 Read More
1.这个任务能够统计总的CPU使用率(0到100%),每个任务的CPU使用率( 0到100%),每个任务的堆栈使用量。 2.统计任务在uC/OS-III中是可选的,当设置OS_CFG.H中的OS_CFG_STAT_TASK_EN为1时,统计任务的代码会被包含在程序中。当然, 统计任务的优先级和它的任 Read More
几乎所有的实时系统都需要有一个能提供周期性时间的时间源,叫做时基周期或系统周期。 uC/OS-III的时基周期处理程序封装在OS_TICK.C文件中。 OS_TickTask()任务被uC/OS-III创建, 其优先级是用户可配置的。(通过配置OS_CFG_APP.H中的OS_CFG_TICK_TA Read More
1.内部任务-空闲任务 在uC/OS-III初始化的时候,它会创建至少2个内部的任务(OS_IdleTask()和OS_TickTask()), 3个可选择的任务 ( OS_StatTask(),OS_TmrTaks(), OS_IntQTask())。这些可选择的任务在编译时由OS_CFG.H中的 Read More
任务控制块 TCB 1.任务控制块是被uC/OS-III用于维护任务的一个结构体。每个任务都必须有自己的 TCB。 uC/OS-III 在 RAM 中分配 TCB。当调用uC/OS-III提供的与任务相关的函数(以OSTask???()形式命名)时,任务的TCB地址需会被提供给该函数。 TCB的结构 Read More
1.我们如果要一个程序在加载的时候取得所需要的空间,则必须要在源程序中做出说明。我们通过在源程序中定义段来进行内存空间的获取。 2.我们不能自己随便决定哪段空间可以使用,应该让系统来为我们分配。我们可以在程序中,定义我们希望处理的数据,这些数据就会被编译、连接程序作为... Read More
1.在操作系统的环境中,合法的通过操作系统取得的空间都是安全的,因为操作系统不会让一个程序所用的空间和其他程序以及系统自己的空间相冲突。在操作系统允许的情况下,程序可以取得任意容量的空间。 2.程序取得所需要空间的方法可以有两种方法:一是加载程序的时候程序分配,再就是... Read More
1.任务状态 从用户的观点来看,任务可以是有 5种状态,见图 5-6。展示了任务状态间的转换关系。 {休眠状态,就绪状态,运行状态,挂起状态,中断状态} (1).处于休眠状态的任务驻留于内存但未被uC/OS-III使能。通过调用OSTaskCreate()函数uC/OS-III创建任务。 任务代码是 Read More
1.设置任务优先级 嵌入式系统中的重要的应用应该被设置为高优先级,一些显示操作就应该被设置为低优先级。 然而, 由于实时系统的复杂性, 在大多数情况下任务的优先级是不能被事先确定的。多数系统中,不是所有的任务都是重要的,不重要的任务应该被设置为低优先级。 2.堆栈空间大小的确定 堆栈的大小取决于该任 Read More
1.要完整的描述一个内存单元,需要两种信息:1.内存单元的地址;2.内存单元的长度(类型)。 2.“()”表示一个寄存器或一个内存单元中的内容。如:(ax)表示ax中的内容。 “()”中的元素可以有3种类型:1.寄存器名;2.段寄存器名;3.内存单元的物理地址(一个2... Read More
1.实时应用中一般将工作拆分为多个任务,每个任务都需要是可靠的。任务(也叫做线程)是简单的程序。单CPU中,在任何时刻只能是一个任务被执行。 2.uC/OS-III支持多任务且对任务数量没有限制, 任务数仅取决于处理器内存的大小(RAM)。多任务调度是任务间占用CPU的过程。 3.任务用于监控输入、 Read More
1.临界段 (临界段代码,也叫临界区,是指那些必须完整连续运行,不可被打断的代码段) 锁调度器,可以执行ISR,开启调度器不可执行ISR; (1).临界段代码,也称作临界域,是一段不可分割的代码。 uC/OS-III中包含了很多临界段代码。 如果临界段可能被中断, 那么就需要关中断以保护临界段。 如 Read More
1.app.c: ( 1) .分别为每个任务分配一个OS_TCB。 (2). 斥信号量( mutex)是一个内核对象(一个结构体),用于保护共享资源。任务要访问共享资源就必须先获得 mutex。 mutex的拥有者使用完这个资源后就必须释放这个mutex。 这个例子示范了这个过程。 (3). 消息队 Read More
1.单任务应用 app.c文件: (1).APP_CFG.H 是用于配置的头文件。例如, APP_CFG.H 中包含的#define常量确定了任务优先级,堆栈大小,以及其他特性。 BSP.H 是 BSP 的头文件,包含了 #define 及函数原型如BSP_Init(),,SP_LED_On(), Read More
本文章都是基于学习野火STMF4系列的开发板的学习做的,大部分都是开发手册的内容,做笔记用,具体请参考野火官方的开发手册。 1. uC/OS-III 文件结构 ①配置文件,通过定义这些文件里宏的值可以轻易地裁剪 uC/OS-III 的功能。 ②用户应用文件, 定义和声明应用任务。 ③内核服务文件,其 Read More
1.C/OS-III是一个可扩展的, 可固化的, 抢占式的实时内核, 它管理的任务个数不受限制。 它是第三代内核, 提供了现代实时内核所期望的所有功能包括资源管理、同步、内部任务交流等。 uC/OS-III也提供了很多特性是在其他实时内核中所没有的。比如能在运行时测量运行性能, 直接得发送信号或消息 Read More
1.汇编程序写出到执行过程 1.编写汇编程序 使用文本编辑器编辑源程序 2.编译链接 对源程序文件中的源程序进行编译,产生目标文件;再用连接程序对目标文件进行连接,生成可执行文件。 可执行文件: (1).程序(从源程序中的汇编指令翻译过的机器码)和数据(源程序中定义的... Read More
1.接口说明 GT9 非单层多点系列(以下简称 GT9 系列) 与主机接口共有 6 PIN,分别为: VDD、 GND、 SCL、SDA、 INT、 RESET。 主控的 INT 口线需具有上升沿或下降沿中断触发功能,并且当其在输入态时, 主控端必需设为悬浮态,取消内... Read More
1.内存中字的存储 CPU中,用16位寄存器来存放一个字。高8位存放高位字节,低8位存放低位字节。在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字节要用两个地址连续的内存单元来存放,这个字节的低位字节存放在地址单元的低地址单元中,高位字节存放在... Read More
1.触摸屏简介 触摸屏又称触控面板,它是一种把触摸位置转化成坐标数据的输入设备,根据触摸屏的检测原理,主要分为电阻式触摸屏和电容式触摸屏。 电阻屏造价便宜,能适应较恶劣的环境,但它只支持单点触控(一次只能检测面板上的一个触摸位置),触摸时需要一定的压力,使用久了容易造... Read More
1.字符编码 由于计算机只能识别 0 和 1,文字也只能以 0 和 1 的形式在计算机里存储,所以我们需要对文字进行编码才能让计算机处理,编码的过程就是规定特定的 01 数字串表示特定的文字,最简单的字符编码例子是 ASCII 码。 2.中文编码 (1).GB2312... Read More
1.计算机系统简介 计算机系统由”硬件“和”软件“两大部分组成。 (1).硬件,是指计算机的实体部分,它由看得见摸得着的各类电子元器件组成。 (2).软件,看不见摸不着,由事先编制的具有各类特殊功能的程序组成。通常把这些程序寄属于各类媒体(如RAM,ROM,磁带,磁盘... Read More
1.显示原理 (1).液晶显示是分2层显示的,配置层级结构体参数再将数据输出到混合器合成,显示再液晶上。 (2).LTDC初始化结构体 控制 LTDC 涉及到非常多的寄存器,利用 LTDC 初始化结构体可以减轻开发和维护的工作量, LTDC 初始化结构体见代码清单 ... Read More
在实际使用 LTDC 控制器控制液晶屏时,使 LTDC 正常工作后,往配置好的显存地址写入要显示的像素数据, LTDC 就会把这些数据从显存搬运到液晶面板进行显示,而显示数据的容量非常大,所以我们希望能用 DMA 来操作,针对这个需求, STM32 专门定制了DMA2... Read More
STM32F429 系列芯片内部自带一个 LTDC 液晶控制器,使用 SDRAM 的部分空间作为显存,可直接控制液晶面板,无需额外增加液晶控制器芯片。 STM32 的 LTDC 液晶控制器最高支持 800x600 分辨率的屏幕;可支持多种颜色格式,包括RGB888、 ... Read More
1.液晶面板的控制信号 (1) RGB 信号线 RGB 信号线各有 8 根,分别用于表示液晶屏一个像素点的红、绿、蓝颜色分量。常见的颜色表示会在“RGB”后面附带各个颜色分量值的数据位数,如 RGB565 表示红绿蓝的数据线数分别为 5、 6、 5 根,一共为 16... Read More
1.显示器简介 (1).显示器属于计算机的 I/O 设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。 (2).液晶是一种介于固体和液体之间的特殊物质,它是一种有机化合物,常态下呈液态,但是它的分子排列却和固体晶体一样非常规则,因此取名液... Read More
1.OS-III是一个第 3代的系统内核,支持现代的实时内核所期待的大部分功能。 例如资源管理, 同步, 任务间的通信等等。然而, uC/OS-III提供的特色功能在其它的实时内核中是找不到的, 比如说完备的运行时间测量性能, 直接地发送信号或者消息到任务,任务可以同时等待多个内核对象等。 2.在 Read More
1.操作系统实质上就是一种管理软件。而所谓的管理,就是在了解管理对象的基本信息之后在需要时,按照某种规则对这些管理对象进行分配、调度等操作。对所有的被管理对象登记造册,建立一些管理用表并在这些表格中记录被管理对象的信息。在某种意义上说,操作系统就是由各种表格和对这些表格的操作组成的。 在操作系统中的 Read More
1.一个CPU由运算器、控制器、寄存器等器件组成,这些器件由内部总线相连。相对于CPU内部总线来说是外部总线。内部总线实现CPU内部各个器件的联系,外部总线实现CPU和主板上其他器件的联系。 (1).运算器进行信息处理; (2).寄存器进行信息存储; (3).控制器控... Read More
1.汇编工作过程 程序员–>汇编指令–>编译器–>机器码–>计算机 2.汇编语言组成 (1).汇编指令:机器码助记符,有对应的机器码。 (2).伪指令:没有对应的机器码,由编译器执行,计算机不执行。 (3).其他符号:如+,-,*,/等,编译器识别,没有对应的机器码。... Read More
1.做电源设计,或者做驱动方面的电路,难免要用到MOS管。MOS管有很多种类,也有很多作用。做电源或者驱动的使用,当然就是用它的开关作用。 2.MOS管的三个极,G、S、D分别代表是什么? (1).判断栅极G MOS驱动器主要起波形整形和加强驱动的作用:假如MOS管... Read More
31-ADC模拟/数字转换 (1).ADC的IO分配 Read More
43-CAN通讯 1.CAN 协议简介 CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子 产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519),是国际上应用 最广泛的现场总... Read More
1-注释符 1).单行注释符:// 2).多行注释符:/**/ 3).文档注释符:// 2-常用快捷键 3-变量类型 4-转义字符 5-语句 1.将相应内容打印到控制台:Console.WriteLine(); 2.等待用户按任意键继续:Console.ReadK... Read More
10-固件库文件分析 1-汇编编写的启动文件 startup_stm32f10x_hd.s:设置堆栈指针、设置PC指针、初始化中断向量表、配置系统时钟、对用C库函数_main最终去到C的世界2-时钟配置文件 system_stm32f10x.c:把外部时钟HSE=8M... Read More
1..Net (1).Net平台 (2). FrameWork框架 2..Net应用 (1).桌面应用程序(Win form(.Net开发的桌面应用程序叫做Win form应用程序))。 (2).Internet应用程序 ASP.Net(.Net开发的Internet... Read More
7-通用GPIO 1.I/O 端口控制寄存器 每个 GPIO 有 4 个 32 位存储器映射的控制寄存器(GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR、GPIOx_PUPDR),可配置多达 16 个 I/O。GPIOx_MODER 寄... Read More