数据结构之堆栈
1 | typedef struct dataStruct |
堆栈定义
堆栈我在早年学习微机原理的时候就已接触过。在对寄存器操作的时候,为了避免某些指令对寄存器中原先的值产生影响,在执行指令前,要进行入栈push操作,会将某些寄存器的值push到内存中,执行指令之后,执行出栈pop操作,主要作用就是现场保护与现场恢复。
1 | typedef struct dataStruct |
堆栈我在早年学习微机原理的时候就已接触过。在对寄存器操作的时候,为了避免某些指令对寄存器中原先的值产生影响,在执行指令前,要进行入栈push操作,会将某些寄存器的值push到内存中,执行指令之后,执行出栈pop操作,主要作用就是现场保护与现场恢复。
1 | typedef struct dataStruct |
线性表分为顺序表和链表,链表分为单链表、双链表、循环链表(单循环链表和双循环链表)。
1 | typedef struct |
顺序表的存储单元是连续的,也就是在内存中,表的元素顺序摆放。过于简单了,随便康康定义就行了。
在存储单元之中不连续,通过指针连接起来,像链条一样故称之为链表
OpenWRT是一个高度模块化、自动化的嵌入式Linux系统,拥有强大的网络组建和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中,其中在智能路由器上有广泛使用。同时它还提供了100多个已编译好的软件,而且数量还在不断增加。
OpenWRT支持各种处理器架构,无论是ARM、X86、PowerPC或者MIPS都有很好的支持。其多达3000多种软件包,囊括从工具链(toolchain),到内核(Linux Kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,是的开发者只需要简单的一个make命令就可以方便快速的定制一个具有特定功能的嵌入式系统。
对于想学习嵌入式Linux开发的工程师来说,OpenWRT是非常适合的(引用)
。
我第一次接触Openwrt是在2013年,那是正是高二,家里有一个TP-Link的wr740路由器,mips架构,4M的Flash,16M的内存,当时刷过dd-wrt和openwrt。
第二次是在大二了,当时为了用路由器上校园网,撸了几台k2,研究了如何在openwrt等第三方路由器固件下实现锐捷和安腾的认证。
今天我要给k2编译一下Openwrt最新的Snapshot固件,顺便解决一下不识别16M闪存的问题。
Wi-Fi芯片,内封 8 Mbit Flash,去年买的。
Scan for WiFi devices, block selected connections, create dozens of networks and confuse WiFi scanners!
扫描周围的wifi,屏蔽选择的连接,创建一系列Wi-Fi信号,混淆连接,嘻嘻。
GitHub地址:spacehuhn/esp8266_deauther
于是我把这个固件烧录到我的ESP8266-01上(GPIO口很少的那个,如下图),感觉挺好玩的,确实可以干扰Wi-Fi信号,于是写下了这篇文章记录一下。