自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 UC/OSIII -3- 任务的定义与任务切换的实现

一、任务的代码表现形式通常使用一个死循环包含需要执行的任务代码1 void Task (void *parg)2 {3 /* 任务主体,无限循环且不能返回 */4 for (;;) {5 /* 任务主体代码 */6 }7 }二、创建任务的需要注意的事项2.1 定义任务堆栈* 1. 裸机在运行对于堆栈的分配问题我们并不关心,除了全局变量外,其他变量放入栈中* 2. 在RTOS需要严格小心分配堆栈2.1.1 裸机系统中的栈分配1 Stack_Size EQU 0x0

2020-09-08 14:43:10 263

原创 UC/OSIII -2- 裸机系统与多任务系统

一、裸机系统裸机系统包括 轮询系统 和 前后台系统1.1 轮询系统弊端:若跑到一个时间久的循环中容易丢掉触发事件int main(void){ /* 硬件相关初始化 */ HardWareInit(); /* 无限循环 */ for (;;) { /* 处理事情 1 */ DoSomethin1(); /* 处理事情 2 */ DoSomething2(); /* 处理事情 3 */ DoSomething3(); }

2020-09-07 14:59:25 187

原创 UC/OSIII -1- 新建基本工程及对应文件的作用

一、新建 KEIL 工程` 1. 新建一个 关于 UC/OSIII 的KIEL工程,文件结构如下:· 2. 关于对应文件的作用· 3. 移植芯片是 STM32F103ZET6· 内核:Cortex-M3 · RAM: 64KB ,ROM:512KB · 引脚数:144二、修改时钟频率· 在时钟相关文件 system_ARMCM3.c 的开头,有一段代码定义了系统时钟的大小为25M· 在软件仿真中必须与其的始终频率一致,所以将默认的 12Mhz 改为 25Mhz#define _

2020-09-07 13:59:07 194

原创 STM32 - 4 - startup_stm32f10x_hd.s 启动文件解析

主堆栈指针 MSP进程堆栈指针PSP;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************;* File Name : startup_stm32f10x_hd.s;* Author : MCD Application Team;* Version : V3.5.0;* Date : 11-Ma.

2020-05-17 15:32:05 263

原创 STM32 - 3 - 位带操作实现点亮LED

位带的映射在 STM32 中,有两个地方实现了位带,一个是 SRAM 区的最低 1MB 空间,令一个是外设区最低 1MB 空间。这两个 1MB 的空间除了可以像正常的 RAM 一样操作外,他们还有自己的位带别名区,位带别名区把这 1MB 的空间的每一个位膨胀成一个 32 位的字,当访问位带别名区的这些字时,就可以达到访问位带区某个比特位的目的公式:1 // 把“位带地址+位序号”转换成别名地址的宏2 #define BITBAND(addr, bitnum) ((addr & 0.

2020-05-17 13:20:06 576

原创 STM32 - 2 -按键检测点亮 LED

使用开发板:STM32F103ZET6编译环境 :keil 5一、原理图使用上次的led原理图和 这次按键原理图本次使用到的使 LED2 , K2二 、需要操作到的寄存器1.由芯片手册的可知2.控制PE5、输出低电平,需要配置相对应的寄存器3.控制PE4、设置为输入模式,从引脚中获取值由存储器映射表可知, GPIOE 寄存器的首地址4.使用寄存器输出低电平的方法步骤 偏移地址: 0x18APB2 外设时钟使能寄存器(RCC_APB2ENR)端口配.

2020-05-17 12:16:27 846

原创 STM32 - 1 - 使用固件库点亮LED

使用开发板 : STM32F103ZET6编译环境: keil 5一、 LED 原理图本次点亮 最小系统板上的 1个led,原理图如下:由原理图 可知,要点亮 LED1 和 LED2 分别要 使 LED0-PB5 , LED1-PE5 输出低电平,才可点亮 LED二 、需要操作到的寄存器1.由芯片手册的可知,控制PE5、输出低电平,需要配置相对应的寄存器由存储器映射表可知, GPIOE 寄存器的首地址2.使用寄存器输出低电平的方法步骤 偏移地址: .

2020-05-16 23:40:38 573

原创 第十一章-- 测试代码

11.1 测试函数

2020-01-11 17:42:55 97

原创 第十章-- 文件和异常

10.1 从文件中读取数据10.1.1 读取整个文件创建pi_digits.txt3.1415929535 8979323846 2643383279file_reader.pywith open('pi_digits.txt') as file_object: contents = file_object.read() """restrip()函数删除后面的空行"...

2020-01-11 17:40:28 127

原创 第九章-- 类

9.1 创建和使用类9.1.1 创建 dog 类创建一个Dog类class Dog(): """一次模拟小狗的简单尝试""" _init_、self 一定要有,不可缺少 def _init_(self, name, age): """初始化属性name 和 age""" 获取存储在形参name中的值并将其存储到变量name中,然后该变量被关联到当前创建的实例 self.na...

2020-01-11 14:56:22 186

原创 第八章-- 函数

8.1 定义函数定义函数def greet_user(): """文档字符串的注释,描述函数是做什么的""" print("Hello my baby!\n")调用函数 greet_user()结果为8.1.1 向函数传递信息def greet_user(username): """文档字符串的注释,描述函数是做什么的""" print("Hello, " + us...

2020-01-07 17:10:31 123

原创 第七章-- 用户输入 和 while 循环

7.1 函数 input() 的工作原理例子要加双引号 或 单引号 把输入内容包括message = input(" Tell me something, and I will repeat it back to you : ")print(message)结果为7.1.1 编写清晰的程序prompt = "If you tell us who you are, we ...

2020-01-05 16:01:55 154

原创 第六章--字典

6.1 一个简单的字典alien_0 = {'color':'green','points':5}print(alien_0['color'])print(alien_0['points'])结果为6.2 使用字典字典名 = {’ 键 1’ : 值,’ 键 2’ : 值}6.2.1 访问字典中的值alien_0 = {'color':'green','points':...

2020-01-05 04:15:25 79

原创 第5章--if 语句

5.1 一个简单的示例cars = ['audi','bmw','subaru','toyota']for car in cars: if car == 'bmw': print(car.upper()) else: print(car.title())结果为5.2 条件测试5.2.1 检查是否相等>>> car = 'bmw'>>&...

2020-01-05 02:43:31 155

原创 第四章--操作列表

4.1 遍历整个列表for 变量名 in 列表名 :[tab键] print(变量名)magicians = ['alice','david','carolina']for magician in magicians: print(magician)结果为4.1.1 深入地研究循环4.1.2 在for循环中执行更多的操作`magicians = ['alice','d...

2020-01-04 18:17:24 81

原创 第三章--列表简介

##3.1 列表是什么列表由一系列特定顺序的排列元素组成其中的元素之间可以没有任何关系bicycles = ['trek','cannonable','redline','specialized']print(bicycles)结果为3.1.1 访问列表元素[0,4)bicycles = ['trek','cannonable','redline','specializ...

2020-01-04 16:06:02 160

原创 第二章--变量和简单数据类型

2.1 运行 hello_world时发生的情况hello_world.pyprint("Hello Python world!")2.2 变量# 输出为 Hello Python worldmessage = "Hello Python world!"print(message)# message变量只会保存最近更新后的值message = "Hello Python C...

2020-01-04 14:57:12 360

原创 十一、UNIX-LINUX---Makefile笔记二-使用函数(5-6)-if函数-call函数

五、if 函数if 函数$( if <condition>,<then-part> )或$( if <condition>,<then-part>,<else-part> )根据<condition>真或假<then-part>和<else-part>只能执行一个if为假,<e...

2019-12-10 16:51:31 135

原创 十、UNIX-LINUX---Makefile笔记二-使用函数(3-4)-文件名操作函数-foreach函数

三、文件名操作函数取目录函数- dir$(dir <names…> )功能:从文件名序列<names>中取出目录部分。目录部分是指最后一个反斜杠“ / ” 之前的部分.如果没有反斜杠,那么返回 “ ./ ”返回:返回文件名序列<names>的目录部分例子# 返回值是 “ src/ ./ ” $(dir src/foo.c hacks )...

2019-12-10 16:36:32 154

原创 九、UNIX-LINUX---Makefile笔记二-使用函数(1-2)-函数的调用语法-字符串处理函数

一、函数的调用方法调用函数使用 $( ,,…)或使用 ${ ,,…}函数与参数之间用 “ 空格 ”隔开参数与参数之间用 “ ,0 ”隔开例子 comma :=, # 定义一个, empty := #定义一个空格 space :=$(empty) $(empty)#引用2个空格 foo :=a b c # $(subst 被替换的字串,替换的字串,替换操作作用...

2019-12-09 17:15:23 81

原创 八、UNIX-LINUX---Makefile笔记二-使用条件判断(1-2)-示例-语法

一、示例使用 ifeq 、else、endif 来执行满足条件的语句# 定义库的变量 libs_for_gcc = -lgnu normal_libs# 生成的目标 foo : $(objects)# 判断$(CC)是否为gcc ifeq($(CC),gcc) $(CC) -o foo $(objects) $(libs_for_gcc)# $(CC)不是gcc els...

2019-12-09 15:42:59 92

原创 七、UNIX-LINUX---Makefile笔记二-使用变量(9-)-模式变量

1.模式变量(Pattern-specific Variable)制定一种“模式”,可以把变量定义在符合这种模式的所有目标上例子 %.o : CFLAGS = -O模式变量的语法和目标变量一样:override 同样是针对于系统环境传入的变量,或是make命令行指定的变量 <pattern..> : <variable-assignment> &lt...

2019-11-30 16:37:25 119

原创 六、UNIX-LINUX---Makefile笔记二-使用变量(7-8)-环境变量-目标变量

1.环境变量并不推荐把许多的变量都定义在环境变量中make -e 可以用系统环境变量覆盖Makefile中定义的变量默认情况下,只有通过命令行设置的变量会被传递2.目标变量可以和全局变量同名,因为它的作用范围只在这条规则以及连带的规则中有效语法# <variable-assignment> : 可以前面讲过的各种赋值表达式# 如“=”,“:=”,“+=”或“?=...

2019-11-30 16:29:25 111

原创 五、UNIX-LINUX---Makefile笔记二-使用变量(5-6)-override指示符-多行变量

五、override指示符如果有变量是通常make的命令行参数设置的,那么Makefile中对这个变量的赋值会被忽略如果想在Makefile中设置这类参数的值,可以使用“ override ”指示符# 语法: override <variable> = <value> override <variable> := <value>#追...

2019-11-30 15:57:36 152

原创 四、UNIX-LINUX---Makefile笔记二-使用变量(3-4)

使用变量三、变量高级用法第一种 :变量值的替换# 把变量“var” 中所有以“a”字符串“结尾”的“a”替换成“b”字符串 $(var:a = b) 或 ${var:a = b}例子 foo := a.o b.o bar := $(foo:.o = .c) #现在bar = a.b b.c 或者 foo := a.o b.o bar := $(foo:%.o...

2019-11-30 13:21:16 107

原创 三、UNIX-LINUX---Makefile笔记二-使用变量(1-2)

使用变量

2019-11-29 19:10:06 107

原创 二、UNIX-LINUX---Makefile笔记一(3-4)

3.Makefile的书写规则总述:规则包含 依赖关系 和生成目标的方法 两部分若第一条规则的目标很多个,则第一个目标会成为make最终的目标3.1规则举例foo.o: foo.c defs.h #foo模块 gcc -c -g foo.cfoo.o文件依赖于 foo.c 和 defs.h ,若foo.c 或defs.h文件日期比foo.c 新,或者foo.o 不存在,则依赖关...

2019-11-28 18:19:11 183

原创 一、UNIX-LINUX---Makefile笔记一(1-2)

1.Makefile 概要1.1 Makefile 规则make的基本格式目标文件可以是个标签或者伪目标target... : prerequlsites... command目标文件 :依赖文件 make要执行的命令1.2 一个示例试把下列的 .c .h 文件合并输出一个目标文件make : 生成目标文件editmake clean :清除执行文件和所有的中间目标...

2019-11-22 21:55:06 103

原创 五、Openwrt Linux 嵌入式驱动系统调用

Linux 系统调用结构0.11内核文件里 的 kernel.h 里系统调用号 -->是sys_call_table[]—>执行不同的 sys_…特点一 :系统调用就像快递员 ,只传送命令 ,不实现相关命令,接口特点二 : 回调用VFS进行分类字符设备驱动内核 的对象为 struct cdev每个字符 设备驱动都有 主设备号 从设备号主设备号 :类型---从内...

2019-11-19 15:59:59 522

原创 四、openwrt 嵌入式系统启动流程

嵌入式系统启动流程分析目的:通过分析启动流程,了解各类嵌入式系统的启动方法、启动步骤、代谢文件、达到什么目的、逐步掌握分析内核源码的能力Linux 启动流程Bootloader (Uboot):启动引导代码Bootloader 是 与内核不能同时存在的,在内核启动完成后Bootloader 会关闭Bootloader 会初始化内核所运行需要的硬件环境, 比如初始化C...

2019-11-17 08:03:00 349

原创 三、openwrt嵌入式驱动设计

EXAMPLE需要实现对某种特定的包进行劫持、替换、丢弃需要实现某个文件的隐藏需要实现某个端口的隐藏需要实现某个进程的隐藏实现虚拟网卡加密传输、虚拟网卡免流量通信、虚拟网卡恶意流量隐蔽通信串口驱动 iic驱动 spi驱动硬盘启动进程管理dns劫持的中间人攻击程序...

2019-11-16 16:16:05 372

原创 二、openwrt自定义编译包的过程

Examaple如何开发一个自定义应用一定要在编译好的SDK环境进行1. 在packet下建立相关的自定义的包mkdir srctouch Makefile同时在window在开始操作2. 拷贝一个makefile模板,进行修改$(eval (callBuildPackage.(call BuildPackage.(callBuildPackage.PKG_NAME)))...

2019-11-14 13:50:27 1007

原创 一、openwrt结构分析

openwrt 系统宏观结构openwrt目录结构config 存着系统的配置文件.in ---> .config---->编译脚本解析 CONFIG_HAVE_DOT_CONFIG = y 等等作用:控制整个编译过程,是整个系统的配置文件,如果需要增加新的编译选项,需要按照config.in文件格式进行设计Config-build.in //单纯去编译的...

2019-11-14 13:49:52 2729

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除