- 博客(13)
- 资源 (6)
- 收藏
- 关注
原创 X86 汇编基础
寄存器间接寻址:基址寄存器BX BP变址寄存器SI DI四选一隐含规则:指令中使用BP寄存器,隐含对应使用SS段寄存器其余情况隐含使用DS段寄存器基址寻址/变址寻址:BX/BP/SI/DI 四选一 + 地址偏移隐含规则:段寄存器隐含规则与寄存器间接寻址相同基址变址寻址基址+变址+偏移量BX与BP二选一SI与DI二选一另外再加上...
2019-04-24 14:16:08 301
原创 链接 集合
链接器的核心是两个:符号表重定位表工具:nm file.oobjdump -h a.outld --verbose > defaults.lds 查看默认的链接脚本gcc -fno-builtin -fno-builtin 用于关闭GCC内部函数功能gcc -v -nostartfiles -o hello hello.o不链接系统标准启动文件,...
2019-04-21 20:54:15 380
原创 深入理解计算机系统
我对于计算机系统中最核心的是 ----数据的流动和放置细说就是:数据代表信息,所有的信息是由数据表示的计算机只知道数据,处理的只是数据,不是信息,只有人才会认为数据是信息,机器不会数据一开始在什么位置,然后流向那个位置,这是计算机系统中的唯一的问题至于在流动的过程中,进行了怎样的处理,算法操作等,又是另一种研究领域了...
2019-04-21 09:51:34 160
原创 ucore 清华 操作系统 x86-32知识
线性地址空间是虚拟内存下的应用程序锁能访问的空间逻辑地址空间是应用程序直接使用的地址空间以上两个是靠段机制 和页机制处理的80386 寄存器分为8组用户开发用 -- 通用寄存器 段寄存器 指令指针寄存器 标志寄存器系统开发用 -- 控制寄存器 系统地址寄存器 调试寄存器 测试寄存器通用寄存器如下EAX 累加器 EBX 基址寄存器 ...
2019-04-09 11:41:49 445
原创 C++ 学习小结
//c++中动态内存分配用new,C中用malloc//内联函数--//函数重载 名字相同,参数个数或者参数类型不同,定义函数时最右边参数可以缺省//缺省参数提高程序的可扩充性//结构化程序设计没有封装和隐藏(接口)//面向对象程序设计 函数可重用性------程序规模大的时候//面向对象程序设计 = 类+类+类++++类//四大基本特点: 抽象 封装 继承 多态//面向对象的程...
2019-04-04 21:23:15 190
原创 关于 rtos 中断 任务 打断 优先级 的问答
低优先级任务执行出现高优先级任务,低优先级任务还会把时间片执行完吗?答:会,在时间片用完后才会进行任务切换.低优先级中断被高优先级中断打断,是怎样的过程?答:cortex-M3内核种咬尾中断,和晚到的中断 ,看权威指南里面有!高优先级中断时出现低优先级中断事件,这个事件会被忽略掉吗?答 :不会,中断标志位会记下这个低优先级中断!...
2019-03-24 10:28:30 1112
转载 ucos2,OSTaskStkInit 关于ucos2的移植函数的一些不解 - OSTaskStkInit
http://forum.eepw.com.cn/thread/91181/1
2019-01-04 15:31:42 550
原创 一个极简单的RTOS代码 STM32 借鉴UCOSII 汇编部分有详细注释
;/*********************** (C) COPYRIGHT 2010 Libraworks *************************;* File Name : os_cpu_a.asm ;* Author : Librae ;* Version : V1.0;* Date : 06/10/2010;* Description : μCOS-II ...
2019-01-04 15:26:10 458
原创 uCOS-II Cortext-M3(STM32) 任务切换 极简说明
比如现在有两个任务task1 和task2现在将运行着的task1 切换到 task2有图M3有PSP和MSP,任务是在PSP保存堆栈指针的,由一个任务切换到另一个任务,就是说要把PSP里面的指针由 task1的堆栈指针换成 task2的堆栈指针,这个过程就是上下文切换,对应UCOS里面的void OS_Sched (void)函数,这个函数里面的功能实际是由OSCtxSw...
2019-01-04 15:19:00 1070
原创 回调函数的作用
当函数不在同一文件时,如动态链接库,如果要想调用其他程序中的函数,就只能采用回调函数的形式了, 把函数指针经过外部函数地址的传入,来实现调用。...
2018-12-30 12:09:39 216
原创 结构体 里面的 函数指针
结构体里面的函数指针,结构体成员初始化的时候,函数指针成员被指向函数,从而可以调用函数。#include <stdio.h>#include <stdlib.h>#include <string.h>typedef void (*FunType_void_void)();typedef void (*FunType_intpchar_void)(...
2018-12-30 11:56:59 765
原创 函数指针数组
#include <stdio.h>void add(int x, int y){printf("x+y = %d\n",x+y);}void dec(int x, int y){printf("x+y = %d\n",x-y);}void max(int x, int y){printf("x+y = %d\n",x>y?x:y);}typedef void (*...
2018-12-30 10:51:51 152
原创 typedef 函数指针 地址
1,用typedef定义了一个函数指针类型2,函数指针的地址 和 函数指针取地址 的值相同。#include <stdio.h>typedef int (*FunType)(int ); //这样只是定义一个函数指针类型FunType FunP; //然后用FunType类型来申明全局FunP变量int MyFun(int x){...
2018-12-30 10:39:07 255
模拟 UCOSIII中的优先级及其每个优先级下一一对应的任务控制块链表实现
2019-03-28
YDOS-数组方式实现轮询时间片 最简单易学 的系统 基于ucosII 改写的简单任务调度实现 汇编代码有详细注释
2019-03-28
YDOS-无轮询方式 最简单易学 的系统 基于ucosII 改写的简单任务调度实现 汇编代码有详细注释
2019-03-28
ARM Cortex-M3 Keil5 汇编实现简单加法
2019-03-28
ARM Cortex-M3 Keil5 汇编实现 串口
2019-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人