摘要:
在使用codeblocks编写程序时,发现其编译器对结构体的初始化编译报错,如下: 这个结构体初始化的方式使用了c99标准,此时编译报错,查看下编译器选项,发现如下: 尝试更改编译器,选择如下: 再次编译,问题解决了。 阅读全文
摘要:
1.添加设备树节点: 在.dti文件中添加如下节点: otg_sram: sram-section@0 { compatible = "allwinner,suniv-f1c100s-sram-d", "allwinner,sun4i-a10-sram-d"; reg = <0x0000 0x100 阅读全文
摘要:
逻辑表达式是指表示一个表示逻辑运算关系的式子,是一个抽象的类似数学表达式,下面我们重点说明下其表达式与逻辑门之间的关系。 对于一些简单的逻辑关系应该都有了解,比如最基本的逻辑运算,与或非这些。下面我们先看看一个简单的与非逻辑: 该逻辑输入分别是A和B,输出为Y,我们分析下这个简单的逻辑关系,对于线宽 阅读全文
摘要:
在使用F1C100S的时候常常会使用小尺寸的液晶屏,比如市场上比较常见的1.14寸液晶屏,下面我们来为该液晶屏添加驱动。 下面以内核Linux-5.7内核版本,液晶驱动芯片为ST7789V,四线SPI接口为例:(例中液晶引脚接到SPI1上) 注意:SPI总线的SCLK和SDA两个引脚必须接上拉电阻, 阅读全文
摘要:
在招聘笔试的时候常常会遇到软件类的笔试题,一般两小时4个题,这种题一般第一题是送分题,后面题就需要灵活求解,因此在笔试之前非常有必要复习下STL库的使用。 栈 stack 在C++中,使用栈需要包含其头文件,#include <stack> ,具体的栈操作如下: stack <int> st; // 阅读全文
摘要:
我们最终要设计的是一个完成的操作系统,因此我们最开始要做的就是构建整体的系统架构图,在构建系统框图之前我们需要先定义下我们操作系统的一些参数,也就是操作系统支持多少个任务,任务的调度方式,以及任务的一些结构体属性。对于嵌入式操作系统而言,其任务实际上对应着线程的概念,所有的线程都是共享一个硬件资源。 阅读全文
摘要:
在ucOSII的绪表中使用一个很妙的查找方式,下面对其查找过程进行详细分析(目的就是加快查找速度) 对于ucOSII而言,其最大的任务数是64个,因此为了标记其任务的状态,ucOSII使用了八个变量表示每个任务的状态,每个变量每个位对应任务的状态: 如果我们直接去查找就绪任务的最高优先级任务,那我们 阅读全文
摘要:
在开始设计操作系统之前,我们先来说下何为操作系统,操作系统的目的是什么,其优势和缺点有哪些? 操作系统对于大部分人来说都不陌生,大到互联网分布式操作系统,小到家用电器嵌入式操作系统,当然平时我们了解的最多的还是Windows和Linux发行版操作系统。这些操作系统虽然有很多地方差异很大,但是其本质的 阅读全文