- 博客(35)
- 收藏
- 关注
原创 毕业设计(2)AFLGO的使用
用于指定aflgo的目录根据自己电脑实际环境来,注意在安装完aflgo后会在aflgo同目录下生成build文件夹,安装好的aflgo在/build/llvm_tools/build-llvm/msan/aflgo下不在原来用来安装的aflgo下。因为没有找到AFLGO的文档,但在网上找到了很多AFL的使用和官方文档且两者使用基本一致,所以自己寻找AFL的使用方法,阅读了文档并初步测试了一下自己写的一个简单的C语言代码,并记录了相关AFL的相关使用方法和资料。
2023-03-04 14:40:12
421
原创 毕业设计(1)-AFLGO的安装
AFLGO是一个模糊测试工具,在CSDN上的安装教程不多,自己在安装过程中也出现了很多教程之外的错误,最后反复安装了2天终于安装成功这里记录一下安装工程中的错误使用的平台:Ubuntu18.04。
2023-02-22 12:35:40
966
3
原创 嵌入式计算机系统设计第五次实验报告
Keil程序仿真 & 算法及性能评估2022.4.18~2022.4.30实验环境:个人电脑、Keil、STC-ISP、STC-B学习板、步进电机实验目的:任务1:完善实验三(步进电机驱动)。任务2:在完善实验三基础上,实现蜂鸣器可控发声和指示。i.Beep模块按分层设计(底层驱动、向应用层提供API函数)ii.按键模块按分层设计(底层驱动、向应用层提供事件及API函数)iii.(选做)在Beep模块设计完成基础上,实现播放音乐的功能(参照STCBSP提供的Music模块API)实
2022-04-28 20:26:04
3692
4
原创 嵌入式计算机系统设计第四次实验报告
任务1:汇编程序及仿真假设Device:STC15F2K60S2系列,工作时钟频率:12MHz。汇编程序如下:MyID EQU 201909070110 ;以学号为201909070110的学生为例ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV A, #MyID ;A=2F 02B7 E9(1E)A累加器只有1字节 MOV B, #5
2022-04-15 09:06:57
681
1
原创 嵌入式计算机系统设计第三次实验报告
实验题目:驱动与API设计初步实验时间:2022.3.21(周一)~2022.4.3(周日)实验地点:在规定时间中自主寻找合适实验地点并在规定时间内完成实验条件:1.STC-B学习板(2021暑假小学期每个学生自己做的)2.个人电脑:自备3.Keil、ISP、CH340驱动软件:自备4.STC-BSP及Demo 程序:教师提供5.“STC_B学习板”软件支持包使用说明:教师提供6.C51语言语法:课程提供参考电子书籍,或自找自学7.STC_BSP源码示范_sys&显示模块(教师提
2022-03-31 12:56:45
2825
6
原创 信号处理基础实验1
1,绘制出冲激信号、复指数信号以及抽样信号的波形。(连续)冲激信号:function exp1_2(n)t=-5:0.01:5;y=0*(t>=-5&t<0)+1*(t==n)+0*(t>0&t<=5);plot(t,y)axis([-5,5,-1,1.5])end复指数信号:clear all;close all;t0=0;tf=5;dt=0.01;t=[t0:dt:tf];alpha=-0.5;w=10;x=exp((alpha+j
2022-03-18 17:43:15
548
2
原创 嵌入式计算机系统设计第二次实验报告
实验题目:STC-BSP 余下API函数及综合运用实验时间:2022.3.7(第3周周一)~2022.3.20(第4周周日)实验地点:在规定时间中自主寻找合适实验地点并在规定时间内完成实验条件:1.STC-B学习板(2021暑假小学期每个学生自己做的)2.个人电脑:自备3.Keil、ISP、CH340驱动软件:自备4.STC-BSP及Demo 程序:教师提供5.“STC_B学习板”软件支持包使用说明:教师提供6.C51语言语法:课程提供参考电子书籍,或自找自学7.Demo1~Demo5源
2022-03-16 11:02:54
6479
原创 嵌入式计算机系统设计第一次实验报告
实验题目:并行接口输出型API函数运用实验时间:2022.2.21(第1周周一)~2022.3.4(第2周周五)实验地点:在规定时间中自主寻找合适实验地点并在规定时间内完成实验条件:1.STC-B学习板(2021暑假小学期每个学生自己做的)2.个人电脑:自备3.Keil、ISP、CH340驱动软件:自备4.STC-BSP及Demo 程序:教师提供5.“STC_B学习板”软件支持包使用说明:教师提供6.C51语言语法:课程提供参考电子书籍,或自找自学实验目的:1.回顾与掌握集成开发环境K
2022-02-28 19:12:26
1956
原创 嵌入式计算机系统期末考点记录
1,嵌入式系统概念嵌入到设备,商品中,进行逻辑处理计算或智能控制的系统广义概念:用于控制、监视或者辅助操作机器和设备的装置狭义概念:嵌入式系统以应用为中心,以计算机技术为基础对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2,阻塞函数与非阻塞函数的区别阻塞函数是指调用该函数时,在函数返回之前,当前线程会被挂起。调用线程只有在函数返回之后才能运行。非阻塞函数指在函数及时没有返回之前,该函数调同样用不会阻塞当前线程。3,作业1相关内容(1) 什么是嵌入式计算机系统嵌入到设备,商品中,
2022-02-23 20:34:46
828
2
原创 操作系统实验--30天自制操作系统第综合设计及工程文件
一、实验目的通过对操作系统启动过程的模拟,以及软件功能设计与实现,进一步理解和掌握《操作系统实验》课程中学习到的各个功能模块的原理和用法,提高自己的系统设计能力。二、实验环境硬件环境:计算机,无特殊配置要求软件环境:QEMU虚拟机、批处理文件、相关编译工具等语言环境:C语言、汇编语言三、功能介绍及运行效果截图编程实现一台计算机从启动到输入密码进入桌面,到双击打开一个软件并实现该软件相关功能的整个过程。开机动画:首相上下放层层推进出背景颜色,然后五环从5个方向向中心移动,最终到达屏幕中央,随
2022-01-13 20:00:22
2799
1
原创 操作系统实验--30天自制操作系统第14天实验日志
一,主要内容1、内容1:继续测试性能前一天的程序进行性能检测时,效果并不理想,于是在真机上重新检测看下程序的运行结果。发现没有什么不同之后,原因在于在前一个程序的改进的地方是消除了移位处理,要想看到程序上的速度有明显变化,应该是进行了大量的移位操作之后,而一直只使用了三个定时器,所以并没有什么不同。因此增加定时器的个数,也就是增加移位的操作,再次测试程序的性能。a-bootpack.cmode代表着是否增加490个定时器。根据不同的设定,可以看出性能上的变化。从上述的测试中可以看出,线性表
2022-01-13 19:49:28
203
原创 操作系统实验--30天自制操作系统第12,13天实验日志
一、 实验主要内容定时器(1)1、 内容1:使用定时器定时器十分重要,但其原理较为简单,定时器的原理是每隔一段时间就发送一个中断信号给CPU,我们就可以每隔一定时间进行一次某种处理。我们可以设定PIT,让定时器每隔多少秒就产生一个中断。因为PIT连接着IRQ的0号。我们将周期设为11392(0x2e9c),中断频率是100Hz,即每10ms发生一次中断。我们编写IRQ0发生时所调用的中断处理程序,其与键盘的中断处理程序一样,只是中断号不一样。将这个中断处理程序加入到IDT2、 内容2:
2021-12-29 20:05:29
212
原创 操作系统实验--30天自制操作系统第11天实验日志(第3次节点考核代码)
一、实验主要内容1、 内容1:鼠标显示问题以前鼠标移动到边界就不能再继续移动了,原因如下:把鼠标左上角坐标的横坐标的范围限制在320-16,纵坐标的范围限制在200-16之中所以我们可以讲鼠标左上角的坐标范围扩大到整个vram之内,但是这样会出现以下现象:2、 内容2:实现画面外的支持在上次实验修改后,鼠标的显示以及刷新放到了refresh函数中,所以需要修改该函数:对上面的刷新范围进行修改问题解决:3、 内容3: shtctl的指定省略很多函数的参数都有一个struct SHT
2021-12-15 18:30:44
809
原创 信息与通信基础第4次小班讨论课
mathmatic求解常微分方程(1)使用DSolve函数(或者DSolveValue,形式一样)如y’[x] = 2xy[x],求解y[x](通解)DSolve[y’[x] == 2xy[x], y[x], x]求出特解:上面是通解下面是特解多个通解的情况也可以求解:使用/.赋值语句提取出每个通解:画出图像:求解微分方程组:特解:可以使用D[y[x],x]来代替y’[x]:(2)使用NDSolve,数值解,特解(用数值表达)通过Plot可以看到具体的图像:偏微
2021-12-09 16:00:44
135
原创 操作系统实验--30天自制操作系统第10天实验日志
一、实验主要内容1、 内容1:内存管理为了减少内存碎片,我们要编写一些以4kb为单位进行分配和释放的函数,把指定的内存按4kb单位向上舍入。向下舍入:以某个单位向下舍入就是将不足一单位的的数字舍去,对二进制或者十六进制来说就是将后面几位变为0。可以通过与运算来获取结果。例如以0x1000为单位向下舍入:i=i&0xfffff000向上舍入:与向下舍入相反,它是将不足一单位的数据补齐一单位。所以对不是一个单位的整数倍来说,一个数向下舍入就是将其先向上舍入再加上一个单位数据。例如以0x100
2021-12-07 20:00:09
367
原创 信息与通信的数学基础——第1次实验
第一部分1,(1)对于没有变量的复数直接使用Re,Im,Abs,Arg即可算出1,(2)对于含有变量的复数我们需要先进精化定义变量的范围为实数,然后可以正常使用前面的命令(这里Abs换成了Norm)1,(3)1,(4)2,第2题同理要先规定范围,不过直接运算出来的结果没有化简,这里可以使用复展开来实现化简操作3,使用Sovle解方程通过/.将结果转换为一个序列然后画出这个序列中的点集(1)(2)(3)(4)(5)这里是一个无限的点,所以这里使用循环来完成一个近似的情
2021-12-04 18:11:24
824
原创 信息与通信基础第3次小班讨论课
一,计算卷积:(1)分段函数写法:使用If语句If[条件式,为真,为假]x[t_] := If[0 < t && t < 1, 1, 0];h[t_] := If[0 < t && t < 2, t, 0];(2)在一个图中画出两条线Plot[{x[t], h[t]}, {t, -2, 2}, PlotStyle -> {Thick, Dashed}](3)求卷积(0微分方式)f0 = Integrate[x[w]*h[t - w
2021-12-02 15:59:39
2567
原创 操作系统实验--30天自制操作系统第9天实验日志
一、实验主要内容1,整理源文件:现在我们由于我们昨天工作,我们的源文件已经很多了,这里进行一些整理整理的情况如下:由于我们修改了很多.c文件,我们需要修改Makefile文件,修改指令如下:2,内存容量检查(1)我们要进行内存管理的第一步便是要确定内存有多大,这里我们通过自己编写程序去检查内存,而不是通过BIOS。因为虽然在最初启动时,BIOS会检查内存容量,我们只需要询问BIOS就可以知道内存容量有多大。但这样的做法,会使asmhead.nas变长,另一方面,因为BIOS的版本不同,BI
2021-12-01 22:02:08
364
原创 操作系统实验--30天自制操作系统第8天实验日志
一、实验主要内容1、内容1:鼠标解读(1)第七天已经实现了从鼠标中取得数据,因此这一天就是解读之前取得的数据,让鼠标能够动起来。所以我们需要HariMain函数进行修改,将读鼠标得到的最初的0xfa舍弃。将之后的鼠标传送的3个字节一组的数据,使其显示在屏幕上,代码修改如下:其中变量mouse_phase是用来标记鼠标接收的数据是第几个了。接收到的数据会放在mouse_dbuf中。对应不同的mouse_phase值(1、2、3),相应的做不同的处理。实验结果:其中,08部分对应的是mouse_d
2021-11-24 19:30:48
245
原创 操作系统实验--30天自制操作系统第7天实验日志(第二次节点考核代码)
一、实验主要内容1、内容1:获取按键编码将中断处理程序进行改善,使其在按下一个键后不结束,而是将按键编码在画面上显示出来。其主要是要修改int.c程序中的inthandler21函数,修改如下:io_out8(PIC0_OCW2,0x61)表示PIC将会继续监视IRQ1中断是否发生。如果不执行这句话,PIC只会接收一次中断信号,就不再监视IRQ1中断,不管下次键盘输入了什么信息,系统都不会感知到。0x61则表示是1号中断,相应中断的表示为0x60+中断号而编号为0x0060的端口输入的8位信息是
2021-11-15 23:17:40
806
原创 操作系统第一课程实验内核代码解析
完成第一次操作系统实验,使用rust语言构造最小核并最终输出字符串hello world下面是我们使用的内核代码的一部分,其余部分都是一些相关的设置,使用了rust语句逻辑的部分主要在_start函数中,代码如下:static HELLO: &[u8] = b"Hello World!";#[no_mangle]pub extern "C" fn _start() -> ! { let vga_buffer = 0xb8000 as *mut u8; for (i,
2021-11-14 22:51:05
510
1
原创 信息与通信的数学基础第二次讨论课
定义函数:分段:f[x] := If[x < 0, -x^2, x^2]绘图:Plot[f[x], {x, -5, 5}],函数,变量及变量范围求和命令Sum[x^n/n!, {n, 1, 7}]结果:x + x^2/2 + x^3/6 + x^4/24 + x^5/120 + x^6/720 + x^7/5040判断幂级数收敛SumConvergence[1/n, n]结果:False带参数时;SumConvergence[1/n^a, n]结果:Re[a] >
2021-11-11 18:19:32
270
原创 操作系统实验--30天自制操作系统第6天实验日志
一、实验主要内容1、内容1:分割源文件经过前几次的程序编写现在我们的bookpack.c程序已经很长了,所以我们需要就将其进行切割成几个部分以便于后续代码管理,分别是graphic.c、dsctbl.c和bootpack.c三个部分。这三个部分依次是关于画图的处理、以及关于GDT、IDT的处理以及其他部分的处理。分割源文件的优点和缺点如下:分割之后如果graphic.c也想使用naskfunc.nas函数的话,就必须加上void io_out8(int port,int data)函数声明。因为分
2021-11-10 20:00:25
556
原创 操作系统实验--30天自制操作系统第5天实验日志
一、实验主要内容1、内容1:接收启动信息为了保证在以后改变画面模式后,系统仍能正常运行,我们需要将显存首地址,画面长宽等数据0xa0000,320,200存入asmhead.nas文件中定义的地址。这里的0x0ff4之类的地址是为了与asmhead.nas中定义的地址保持一致的。2、内容2:试用结构体使用结构体将变量集中,以此简化程序,减少代码的行数结构体命令将一串变量的声明集中起来,统一叫做“struct BOOTINFO”。最初是一字节的变量cyls,接着是1字节的变量leds,最后是v
2021-11-03 16:34:56
508
原创 操作系统第2章作业题答案
题目一:请指出执行系统调用时向操作系统传递参数的三种常用方式分别是什么,并分别说明在哪些情况下适合采用哪种方式。三种方式分别为1,寄存器传递,在传递的参数占用空间较小,传递参较少时使用,比如在中断返回时传递一个参数时 使用eax寄存器传递中断类型2,内存的块和表传递,当需要传递的参数总大小大于寄存器数量时,可以通过将块的首地址和大小通 过寄存器传递,如使用I/O输出字符串时,通常使用两个寄存器一个存入起始地址,一个存入字符串长 度来作为参数传递。3,使用栈传递,通过将参数压入栈中然后通过操作系统弹出
2021-10-26 09:00:25
1153
原创 操作系统实验--30天自制操作系统第4天实验日志
一、实验主要内容1、内容1:用C语言实现内存写入如果想要在画面上显示东西的话,那么只需要向显存中写入适当的值(代表每个像素的颜色)即可。但是C语言没有直接写入指定内存地址的语句,便需要采用汇编语言创建一个有这种功能的函数。修改naskfunc.nas,向其添加以下部分代码:这个函数类似于C语言中的write_mem8(0x1234,0x56),其中addr是内存地址,data是数据,在这里指的是颜色的色号。在C语言中如果用到了write_mem8函数,就会跳转到_ write_mem8。此时参数
2021-10-20 19:22:01
304
原创 mathmatica使用入门
mathmatica使用入门1,语言规则1,所有命名和内置函数都是大写字母开头2,函数参数都是在方扩号中给出3,乘法运算可以用空格代替4,内置的函数名通常比较长2,命令执行shift+enter执行可以运行多个语句不需要输出的结果加分号3,数学公式输入1,直接输入2,面板里可以输入4,内部常数Pi,E,±*/^!(阶乘)5,变量以字母开头后面可以数字至可以中文x=.Clear[x,x2]Print[x1,x2]f=2*x+yf[x->2,y->3]N[
2021-10-14 16:01:57
4228
原创 操作系统实验--30天自制操作系统第3天实验日志
一、实验主要内容1、内容1:制作真正的IPL因为磁盘最初的512字节是启动区,但操作系统的大小远超过512字节,因此要装载操作系统后面的内容,于是在IPL.nas文件中添加以下指令用于装载下一个512字节的内容:其中JC为jump if carry”意思是如果进位标志(carry flag)是1的话,就跳转而CF的值表示装载是否成功,成功CF赋值为0,失败为1同时将错误号码赋值给AH(这里相当于提供一个失败原因)。INT 0x13表示调用BIOS的0x13号函数。在此函数下对于AH寄存器进行不同的赋
2021-10-12 23:08:13
2499
原创 操作系统实验--30天自制操作系统第2天实验日志
一、实验主要内容1、内容1:文本编译器notepad++下载。书上的网址已经失效,在网上另外找到的编译器,(不过注释仍旧是日文的我也看不懂,这里建议还是看书上的注释比较好):用他来打开一个nas文件,如helloos5中的ipl.nas看一下:2、内容2:学习相关知识。本次实验的主要核心内容是学习部分汇编指令,helloos.nas中的程序核心部分如下:其中entry,putloop,fin,msg用于指定jmp指令的跳转目的地址(其本质上就是一个标记不占地址空间,实际上是它下面第一个指令的地址
2021-10-04 17:53:46
390
1
原创 操作系统实验--30天自制操作系统第1天实验日志
一、实验主要内容1、内容1:BZ.exe编辑器下载。这里直接从书上的网站去找,网址为https://www.vcraft.jp/soft/bz.html(这里电子教材的网站有误现在进不去了,用纸质版的教材网站是可行的)。直接选择本地下载,然后解压即可使用。点击BZ.exe可以直接使用,界面如下,然后根据教材进行输入(这里可以直接用project中day1中的文件File->open->project->day1->helloos.img)内容2:安装tolset。书上的是软盘方
2021-09-25 21:59:27
526
1
原创 夏季小学期STC-B,基于485通信实现双模式(单机联机)拼图游戏
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录摘要绪论二、正文功能介绍:设计思路总体设计方案设计总结与心得摘要本课程设计旨在数码管上编写一个有完整环节的可联机游戏,在课程设计中采用了设置中断,编写回调函数的方法,将学习板的运行程序多线程化并使用485通信实现双机联机游戏的功能。并在本次课程设计中成功完成了一款有完整环节的可联机游戏。关键字:数码管,联机,游戏,485,回调函数,中断,多线程绪论课程设计的主题是实现一个在数码管显示通过按键操作的联机游戏;由于STC-
2021-09-16 10:58:02
1187
1
原创 全国物联网竞赛(华为杯)华为赛道 小熊派 使用Iot studio编写/烧写代码
全国物联网竞赛(华为杯)华为赛道 小熊派 使用Iot studio编写/烧写代码第一次参加物联网竞赛写一下参赛作品的完成流程文章目录全国物联网竞赛(华为杯)华为赛道 小熊派 使用Iot studio编写/烧写代码前言一、小熊派的编程二、使用步骤1.这里板端的开发其实是比较简单的但我们当时没有接触过的时候还是弄了很久。其实小熊派适配的传感器都是有相应的demo的我们并不需要从管脚开始编程我们可在原有的基础上进行我们想要的修改,这样代码难度就能大大的降低了2.这里是smoker的demo代码其中main函
2021-09-14 15:01:37
4271
原创 新手教学,使用c/c++制作简单的菜单面板(音乐播放器示例)
新手教学,使用c/c++制作简单的菜单面板(音乐播放器示例)我们需要的工具在大学学了一年的c++其实已经可以进行初步的软件设计了,但我们什么都不会的原因其实在于工具的欠缺,这里建议想继续深入学习c/c++的同学们在平时自己练习c/c++的时候最好是用VS系列,Visual Studio,不建议使用Dev,Visual Code,这两个软件已经很老了,很多现在的库都是用不了的。附上Visual Studiod的官方下载链接: l这里下载.然后我们还需要一个图形化的库:easyX,下载链接:https://
2021-01-29 20:25:44
2656
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人