- 博客(60)
- 资源 (8)
- 收藏
- 关注

原创 由前序遍历序列和中序遍历序列重建二叉树
#include "iostream"using namespace std;typedef char ELEM_TYPE;typedef unsigned char INT8U;typedef unsigned short int INT16U;typedef struct BiTNode { ELEM_TYPE data; struct BiTNode
2014-12-16 21:24:17
656
原创 ARM Development Studio build编译报错
使用ARM Development Studio工具编译出现下面错误process_begain:CreateProcess(NULL,echo " ", ...)failed
2022-06-23 10:36:11
385
原创 ARM Development Studio build重复编译问题
背景:导入一个工程后,即使没有修改工程文件,重新编译还是全编解决方案:所在工程不能有中文路径注:用的工具自动生成的makefile
2022-06-09 10:21:51
194
原创 GCC详解
背景在项目开发过程中,会经常用到gcc进行代码编译,但是对其了解只是停留在表面,故希望通过本文梳理,对其有更深入的了解。简介(1)全称是GNU Compiler Collection,本质上是由GNU开发的编译器。(2)可以编译多种语言,典型的如C,C++,JAVA等。其已经被大多数操作系统(linux, windows)作为标准的编译器。(3)支持多种架构芯片(Mips,ARM)等。基本语法gcc [options] [filenames]执行过程1> 预编译..
2022-04-13 23:43:17
3037
原创 一. volatile关键字的作用
Volatile意思是“易变的”,应该解释为“直接存取原始内存地址”比较合适。“易变”是因为外在因素引起的,像多线程,中断等。编译角度:防止编译器对代码优化,避免生成的机器代码少了一些指令,如果这些缺少的指令刚好是控制硬件的时序逻辑,就会出错。应用场景:(1) 硬件寄存器int32* pnGpioB= (int32*)0xf0000000;//定义一个IO端口;*pnGpioB = 0x01;*pnGpioB = 0x02;*pnGpioB = 0x04;*pnGpioB = 0x
2022-03-31 10:58:45
799
原创 嵌入式实时操作系统uc/OS-II第7章课后习题1-4
一.什么叫内存分区?什么叫内存块?内存分区和内存块之间有什么关系?二.同一个分区的内存块是按什么组织起来的?三.什么叫内存控制块?内存控制块都记录了什么信息?四.设计一个有两个任务的应用程序,其中一个任务用来进行两个加数的运算,另一个任务用来显示结果,要求把加法运算的结果存放到动态内存当中。总结
2022-03-30 13:46:08
1056
原创 嵌入式实时操作系统uc/OS-II第5章课后习题5-9
五.什么叫消息邮箱六.能否用全局变量实现任务之间的通信?如果可以,他有什么缺点?七.使用消息邮箱实现任务之间通信有什么好处?八.什么是消息队列?九.在应用程序中消息队列可以做哪些工作
2022-03-05 16:59:43
738
原创 嵌入式实时操作系统uc/OS-II第5章课后习题1-4
一,叙述信号量的工作过程二,使用信号量可以在应用中完成哪些工作?三,什么叫优先级翻转现象?这种现象会在什么情况下发生?有什么危害?四,互斥信号量是如何防止优先级反转现象出现的?
2022-02-27 00:06:34
621
原创 嵌入式实时操作系统uc/OS-II第4章课后习题4-6
四. uC/OS-II的系统时钟是如何实现的?在时钟节拍服务中做了什么工作?五. 如何在中断程序中激活一个任务六.说明延时函数OSTimeDly与OSTimeDlyHMSM的区别
2022-02-26 17:36:48
776
原创 嵌入式实时操作系统uc/OS-II第4章课后习题1-3
一.简述uC/OS-II的中断响应过程二.全局变量OSIntNesting的作用是什么?三.uC/OS-II的中断服务程序何时返回被中断的任务?何时不返回被中断的任务?
2022-02-26 14:15:56
827
原创 嵌入式实时操作系统uc/OS-II第3章课后习题17
十七.编写一个有2个任务的应用程序,每一个任务每次运行显示一个字符当调度器进行了5次调度之后,这些显示的字符会在显示器上构成一个字符串"Hello, uC/OS-II!"。
2022-02-13 22:09:47
760
1
原创 嵌入式实时操作系统uc/OS-II第3章课后习题13-16
十三.编写一个有3个任务的应用程序,每个任务均会在显示器上显示一个字符,并让三个任务有不同的等待时间,观察应用程序运行中任务被调度的情况?十四.编写一个有3个任务的应用程序,每个任务均会在显示器上显示一个字符,并让一个任务查询另外两个任务的信息,并在显示器上显示出来。十五.编写一个有3个任务的应用程序,并让其中两个任务在合适的时候删除自己十六.编写一个有3个任务的应用程序,在调度器每进行一次任务切换后在显示器上显示正在运行任务的任务控制块指针
2022-02-11 23:21:56
1494
原创 嵌入式实时操作系统uc/OS-II第3章课后习题10-11
十.OSRdyGrp有什么用?十一.简述在任务就绪表中查找具有最高优先级的就绪任务的过程
2022-01-22 10:18:12
926
原创 嵌入式实时操作系统uc/OS-II第3章课后习题5-9
五. 在uC/OS-II中任务有哪五种状态六.任务控制块中记录了任务的哪些信息?七.什么是空任务控制块链表,什么是任务控制块链表?八. OSTCBTbl[] 有什么用途?九. 正在运行任务的任务控制块指针存放在哪个指针变量中?
2022-01-20 22:31:13
1126
原创 嵌入式实时操作系统uc/OS-II第3章课后习题1-4
一. 什么是可剥夺性内核二.一个应用程序为什么一定要使用空闲任务三.统计任务是必须使用的吗?四.什么叫做任务的优先权?uc/OS-II是用什么来描述任务优先权的?
2022-01-12 23:05:40
902
原创 UCOSII cpu利用率实现原理
目的:介绍UCOSII中 cpu利用率计算方法使用方法:1:在启动任务中调用OSStatInit();2:在合适的地方打印OSCPUUsage,就可以得到当前系统cpu的利用率。要特别注意的是系统调用OSStart()后只有3个任务处于 就绪态,分别是1>启动任务2>统计任务3>空闲任务...
2019-04-05 22:30:08
1862
原创 Cotrex-M3内核之NVIC
NVIC简介:其除了是熟知的嵌套向量中断控制器外,还包括Systick定时器和MPUNVIC功能: 中断在使用前应当先对其进行分组设置(确定抢占优先级和亚优先级的位数),原则就是根据当前系统方案的实际使用情况进行设定,比如当前系统一共使用了多少中断,对其进行优先级评估。众所周知,Cortex-M3使用8位来表达优先级,分为抢占优先级和亚优先级,所以其最对支持256种不同的优先...
2019-03-11 00:09:15
647
原创 通过MDK工具确定中断或异常发生的类型
环境:STM32F103中断的确定方法:准备:先触发uart1的接收中断方法1:观察下面的窗口(这种方法适合中断和异常)Register中的ISR表示当前发生中断的编号为53,然后在NVIC窗口中查53号对应的中断类型即可方法2:观察下面的窗口(这种方法仅适合中断)IABR:某个中断发生时,其对应的bit位就自动设置为1,然后查控制器对应的中断位置,就可以确定中断触...
2019-03-03 12:46:22
772
原创 通过stm32f103往W25Q128中写数据
背景:对于嵌入式项目而言,不可避免的要往备份数据,对于小系统而言,通常将数据备份到NorFlash中,本文就对华邦W25Q128这款Flash的写操作进行梳理。本文通过Page Program (02h)命令进行写入,其标准操作流程如下:根据操作流程,操作步骤如下:1>确保将要被写入的区域被擦除2>使能状态寄存器中的WEL位3>根据PageProgram时...
2018-10-28 17:06:59
4198
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人