- 博客(83)
- 资源 (1)
- 收藏
- 关注
原创 FAST-DDS and ROS2 RQT connect
type: gitfastcdr:type: gitfastrtps:type: gittype: gittype: git。
2025-01-24 15:52:40
469
原创 vscode自动生成ifndef , define , endif
参考:(22条消息) VSCode 自动生成头文件的#ifndef #define #endif_Static H的博客-优快云博客。
2022-08-22 09:31:58
1494
原创 GCC内嵌汇编相关语法
汇编语言中的'#'_转码的硅工的博客-优快云博客_汇编#" # " ,代表寻址方式为立即寻址MOV A, #21H意思是:将值21H传递给寄存器A暂存MOV A,21H,寻址方式变为直接寻址, 21H就不是值了,而是一个地址,意思是将 21H这个地址里面的内容给到寄存器A暂存。80x86汇编:操作系统原理:详解汇编语言基础知识(图文代码) - 知乎内联汇编:gnu汇编语言使用内联汇编 扩展asm_我是小x的博客-优快云博客_asm 扩展assembl.
2022-05-06 16:38:22
601
原创 Operating Systems: Three Easy Pieces__读书摘要
原书链接:Operating Systems: Three Easy Pieces介绍1.学生与老师的对话这一段主要讲学生应该如何学习。听过->忘了看过->记得做过->理解2.介绍操作系统本书是给知道操作系统怎么运行的人阅读的。当程序运行起来的时候,发生了什么?程序跑起来的时候只是做一件非常简单的事情:它执行指令。每秒几百万次的执行,处理器从内存中取指令,解码这条指令,执行这条指令。执行完当前这条指令后,处理器移动到下一条指令,直
2022-05-05 13:51:41
1571
2
原创 linux0.11中的进程相关总结
建议阅读这里列举的参考资料,本文仅用于备忘。参考资料本次的分享是非常浅的,更多内容请查看:具体的请阅读《Linux内核0.11完全注释_V3.0 by 赵炯 (z-lib.org).pdf》以及inter的官方英文手册: 《i386.pdf》要想理解机器怎么工作的,必须要读一遍汇编:《汇编语言(第3版) 》王爽著调汇编可以用vscode提供的插件,具体请参考这3篇文章:https://blog.youkuaiyun.com/weixin_45708190/article/details/121134296
2022-04-29 11:43:13
505
1
原创 Linux0.11 实验四 进程运行轨迹跟踪与统计
实验4 进程运行轨迹跟踪与统计pid X time其中:- pid是进程的IDX可以是N,J,R,W和E中的任意一个N 进程新建 ,newJ 进入就绪态 , JR 进入运行态 , runW 进入阻塞态, waitE 退出 ,exittime表示X发生的时间。这个时间不是物理时间,而是系统的滴答时间(tick)仔细阅读sched.c文件本实验主要分析整个的调度流程,主要方法是,当发生状态转换时,进程的state变化时,我们把这个记录记下来。打印函数先看看打印函数:st
2022-04-25 10:35:00
693
原创 linux0.11 sleep_on函数说明
/*这是一个非常复杂的函数:该函数与wake_up配合使用,我们用一个例子来说明这个复杂的问题sleep_on(&inode->i_wait);比如有任务在等待资源inode->i_wait,如果这个资源是NULL,也就是说,没有任何人在使用这个东西,那么就无需等待,如果这个队列里面有东西,那么就存在tmp里面,tmp此时指向原等待队列头,值得注意的是,这个地方,tmp是局部变量,而p是全局的。所有进程共用p , 每个进程都有自己的tmp讲本进程设置为TASK_UNIN
2022-04-24 17:43:55
754
原创 linux0.11_系统调用
系统调用系统调用的过程void sched_init(void){ ... set_system_gate(0x80,&system_call); //注册}system_call: cmpl $nr_system_calls-1,%eax ja bad_sys_call push %ds push %es push %fs pushl %edx pushl %ecx # push %ebx,%ecx,%edx as parameters pushl %eb
2022-04-19 14:47:44
634
原创 两数和&两数积的问题
问题:有两个数A和B,属于正整数集合[2,99],甲知道两数之和,乙知道两数的乘积,甲跟乙说:我肯定你不知道A和B是什么。乙说:你这么说,那我知道A和B是什么了,甲说:那我也知道了。问:A和B分别是什么?解答:# 有两个数A和B,属于正整数集合[2,99],# 甲知道两数之和,乙知道两数的乘积,# 甲跟乙说:我肯定你不知道A和B是什么。# 乙说:你这么说,那我知道A和B是什么了,# 甲说:那我也知道了。问:A和B分别是什么?# 我们先从两数和入手:# 第一轮筛选:# 甲知道2个数的和
2022-04-16 00:11:55
1735
原创 12个乒乓球称重问题
问题:有12个乒乓球,其中有一个次品,不知道轻重,用一台无砝码天平称三次,找出次品并告知轻重,怎么称?解答:先分3组,每组4个,随便拿两组来称第一次:情况1:天平平衡,则在剩下的4个球里,从4个中选3个,再加1个标准球,进行第二次称量:情况1.1 如果平衡,拿标准球跟最后一个球称就可以知道答案情况1.2 如果不平衡,选2个待测球那边的两个球称一下。情况1.2.1 天平如果平衡,则可以知道是没选上的那个球,是劣质品,而且在第二轮称量就知道了其是轻是重情况1.2.2 如果天平
2022-04-16 00:06:51
11829
原创 关于ptpd开源软件研究
目的及环境确认系统为:Ubunto14.04。目的:实现运输载体为Ethernet的p2p对时。使用软件包:GitHub项目ptpd具体安装安装前准备安装libtool:sudo apt-get install libtool另外由于需要用ethernet作为运输载体,所以要安装libpcap-dev:sudo apt-get install libpcap-dev开始安装ptpd开始执行以下命令实现安装:autoreconf -vi./configure --with-p
2022-04-14 23:23:45
1980
原创 scapy基本使用
scapy基本使用官方手册官方介绍文档python官网scapy模块from scapy.all import * //来自scapy.all文件,导入所有函数python交互模式中:ls()=Ether、IP、ICMP、TCP、UDP、ARP 等等,查看可以配置的参数1.构建包:不同层之间用/分隔(常用)Ether = Ether(src=“源mac”,dst=“目的mac”) //以太网层 = 二层IP = IP(src=“源ip”,dst=“目的ip或者URL
2022-04-14 23:19:54
5507
原创 ECMAScript6 __学习笔记
ECMAScript6资料来源6可以转为5.1,babel转码器可以完成。traceur转码器也可以let , constlet的特性如下:let命令生成的变量,只在let所在代码块有作用。for循环的特别之处,循环变量的部分是一个父作用域,循环体内部是一个单独的子作用域。let不能变量提升,let会绑定块作用域,不受外部影响(暂时性死区)不允许重复声明ES6中对块作用域的概念进行了强调,几乎禁止了变量提升,只有在定义了变量之后才能使用。声明函数必须要在大括号中,否则报错const
2022-04-14 23:17:16
423
原创 Javascript_ES5_学习笔记
Javascript基本认识资料来源入门立即调用的函数表达式IIFE = Immediately-Invoked Function Expression可避免污染全局变量。数据类型数组中空位(hole)length会算上空位。foreach,for…in, Object.keys方法遍历时会跳过空位。运算符指数 运算符是**,是右结合的运算符。2**4= 16 amazing2** 3** 2 =512 === 2** (3**2 )对象object的转化机制除
2022-04-14 23:16:19
1314
原创 C Primer Plus __ 读书笔记
C Primer Plus数据类型基本类型:intcharfloatdouble类型修饰符:longshortunsignedsigned其他:void_Bool_Complex 复数_Imaginary 虚数在计算机中存储这些数据类型之分两种:整数类型(integer),浮点数类型(floating-point)整数就是由一个二进制数,浮点数分为小数部分和指数部分,分别存储。位,字节,字位:bit,一个比特,存0 or 1字节:byte,一个字节,存8
2022-04-14 23:13:18
302
原创 古今中外数学思想__读书笔记
古今中外数学思想古巴比伦60进制,度数,圆的360°,会解二次方程分数的近似计算古埃及圆锥,圆柱计算公式用数学的办法去发工资,计算工作量,将数学应用到生活的方方面面分数的近似计算。古希腊古巴比伦,古埃及 == 粗陋的木匠希腊 == 大建筑师有比较多学派,立体几何,简单数论,平面几何,圆锥曲线将数学用于很多领域,包括,航海,建筑,机械希腊人的抽象能力很强,把数学与看到的事情分开。用几何意义去解决了无理数问题。演绎推理法,以公理为基础,进行推理。欧几里得《几何原本》,阿
2022-04-14 23:11:57
1178
原创 《HTTP权威指南》__读书笔记
http概述《HTTP权威指南》读书笔记。资源MIME:MIME type(Multipurpose Internet Mail Extension 多用途因特网邮件扩展)http会给web传输对象打上数据格式标签,对应的就是response headers的content-type的内容。浏览器会根据该类型调用不同的处理单元:显示图片,解析并格式化HTML文件,通过计算机声卡播放音频文件,或者运行外部插件软件来处理特殊格式化的数据。MIME类型是一种文本标记:主要对象类型/子类型,如:tex
2022-04-14 23:09:35
384
原创 C语言字符串操作
C语言字符串操作程序占用的内存分区形式一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未
2022-04-14 23:08:06
3103
原创 关于学习的看法
学习是人类的天性。 每个刚出生的小朋友都喜欢“搞破坏”,喜欢咬东西,扔东西,会盯着一个东西看等等。其实这就是小朋友学习去适应他所未知世界的一种方法。学习其实是我们人类的天性。学习会让人痛苦? 那为什么很多人说学习很痛苦?因为他们在学习这个项目上,输了。不是学习痛苦,是输很痛苦。而赢的人占少数,他们的声音没有被听到,就会让大家觉得学习很痛苦。 常常感到自己不如别人,这种挫败感,是一定会让人感到无比痛苦的。这样的学习,肯定是会让人想要逃离的,只有极少数的赢家会觉得学习有意思。真正的学习是让人快乐
2022-04-14 22:58:35
695
原创 Android通过交叉编译链编译出可执行文件的方法
android交叉编译/share/px30_from_weiqin/miro/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androidkernel-gcc \test_word_count.c \--static -o test_ndk \--sysroot=/share/px30_from_weiqin/miro/prebuilts/ndk/r11/platforms/android-21/ar
2022-04-02 14:02:55
1730
原创 《汇编语言(第3版) 》王爽著__读书摘要
汇编研究本文目的,总结汇编的使用方法,达到能无障碍阅读linux ,boot文件夹下的汇编代码,以及一些常用的C语言内联汇编。使用书籍《汇编语言(第3版) 》王爽著第一章 基础知识1.1 机器语言机器只认识电平脉冲,高低电平,也就是只有0->1 , 1 -> 0 , 0 , 1很难查错,机器语言1.2 汇编语言的产生汇编指令是机器指令便于记忆的书写格式。1.3 汇编语言的组成3类指令: 汇编指令: 机器码的助记符,有对应的机器码 伪指令
2022-04-02 13:59:43
2314
原创 elf可执行文件的生成及加载
The compiler, assembler, linker, loader and process address space tutorial - hacking the process of building programs using C language: notes and illustrations预编译,编译,汇编,链接预编译:处理 #include , #ifdef ,#ifndef ,#define 等语句,加载.h文件,条件编译,宏定义 编译:拿到预编译的输出和源码,
2022-01-05 12:16:27
4187
1
原创 大小端问题
参考:CPU的大端小端 endian - 孙登波 - 博客园常见的操作系统是小端,通讯协议是大端。常见CPU的字节序:大端模式:PowerPC、IBM、Sun小端模式:x86、DECARM既可以工作在大端模式,也可以工作在小端模式像以前做交换机是用PowerPC的,是不需要转序的,然后第二代板子想换到arm,切刚好arm的小端的,所以需要转序。用C程序去验证的办法:#include <stdio.h>int main (){ unsigned
2021-12-25 22:45:03
367
原创 github密码无法正常登录
Settings/Developer settings/Personal access tokens生成一个token当作密码登录即可。
2021-12-18 22:33:18
603
原创 08.如何处理编译器的警告
在编写代码时,我们常常为了方便去忽略编译器告诉我们的代码存在的警告。但其实编译器是非常有用的,如果我们使用得当,将会省去大量的debug时间。在gcc编译时,加上后缀 -Werror 把所有的警告都视作为错误。当我们遇到一些我们真的需要忽略编译器告警时,将这种忽略维持在局部。我们来看一个例子:-Werror=unused-resultgcc -O2 -Wall -Werror -o gen-expr gen-expr.cgen-expr.c: In function ‘m.
2021-12-16 09:42:14
2092
原创 05.多线程编程介绍
简单例子1:CPU不密集任务例子如果不使用线程,我们编写下面的测试程序:#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <time.h>void myfunc(void *arg){ sleep(5); printf("%s\n", (char *) arg); return ;}int main(int argc, c...
2021-12-16 09:40:59
447
1
原创 04.内核源码解析5.x
GitHub - sysprog21/lkmpg: The Linux Kernel Module Programming Guide (updated for 5.x kernels)
2021-12-16 09:37:51
129
原创 03.GDB调试Linux
GDB调试Linux本文主要根据文档:Debugging kernel and modules via gdb — The Linux Kernel documentation下载内核代码,对Linux内核代码进行单步调试。Linux内核下载:The Linux Kernel Archives搭建开发环境:???? Debugging the Linux Kernel with Qemu and GDB内核代码下载与编译参考文章:内核代码下载并编译如果你使用的是Ubuntu2
2021-12-16 09:36:37
199
原创 02.AOSP调试记录
参考文章: 官方文档:https://source.android.com/source/downloading#installing-repo 下载:AOSP 镜像使用帮助 — USTC Mirror Help 文档 参考文章:How To Download And Build AOSP Android 11 Custom ROM From Scratch | LionGuest Studios ...
2021-12-16 09:34:51
1717
原创 01.abstract_machine安装与调试
主要文档:Installing GNU/Linux · GitBook关于abstract machine :Abstract Machine -- from Wolfram MathWorld硬件指令集手册:在开始愉快的PA之旅之前 · GitBook进入NEMU 方法cd nemumake# make cleanmake ISA=mips32 run # 跑x86需要调试。make ISA=mips32 gdb # 进入调试页面GDB调试NEMUmak..
2021-12-16 09:33:24
654
原创 03.Android客户端-服务器交互应用
参考文章Client-Server Programming in Android. Send Message to the Client and Back. – MOBILE PROGRAMMING该文章提供的方法可以完成2个应用程序之间的socket通讯。服务器端的程序:https://ce4.midea.com:8078/huangjy138/Android_base_test/tree/master/client_server_demo客户端的程序:https://ce4.midea.
2021-12-16 09:30:35
110
原创 05.Android操作系统裁剪
此部分为Android项目中最困难与最复杂的部分,原则上,我们不掌握,由供应商提供底层能力即可,但为了能更好的掌握产品的各个技术点,我们还是要研究一下,对系统编译有一定的理解,这样更好的帮助我们理解Android系统。...
2021-12-16 09:30:10
192
原创 01.android 系统开发介绍
介绍ppt:https://www.slideshare.net/EmertxeSlides/embedded-android-system-development-part-i?next_slideshow=3https://www.slideshare.net/EmertxeSlides/embedded-android-system-development-part-ii-linux-device-drivershttps://www.slideshare.net/EmertxeSlide
2021-12-10 10:59:03
405
原创 Android系统开发
总体目标:使团队具备开发Android大屏项目:嵌入式软件目标:掌握系统源码的编译方法 掌握在应用层调用底层驱动的方法,以服务器的形式发布给其他应用使用 提供调用驱动服务器应用程序接口的demo程序 根据厂家提供的开机启动程序修改办法,能任意修改板子开机启动的应用及其启动顺序 提供性能优化服务,当用java实现某些功能出现性能瓶颈时,负责把相关代码改写成C/C++Android项目能力沉淀总结(嵌入式软件):Android系统的整体理解:01.android 系统开发介绍 系
2021-12-10 10:57:19
3137
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人