读Marlin代码理解

1、工作原理

Marlin固件分前后台系统。前台系统即主程序,后台系统则是中断程序。在Marlin中用到了两个定时器中断:定时器0和定时器1。
主程序在前台的任务有:
1、 与上位机进行通信,获得G指令
2、 进行G指令解析,区分指令内容及指令参数,并将参数换算为整数
3、 G指令的分类执行
4、 温度管理、限位开关和LCD的控制
在G指令的分类执行中,Marlin固件用到了队列的概念,将每条G指令变成一个运动block,一个block包含的与该G指令下运动所需的所有参数(终点坐标、速度、加速度、挤出丝量等)。在前台系统中,程序只负责对G指令进行分析,并计算和生成一个block,并将block打入block缓冲池中。其他,则是与上位机进行交互。
定时器0主要负责对挤出头的温度进行控制。在主程序中设置好定时器0的定时时间,等待定时中断的产生,并在中断中进行温度检测控制。
定时器1主要负责对步进电机进行控制,是Marlin中运动控制部分的核心。在主程序中先设置好定时器1的初始定时时间,等待中断后,在中断执行block中的运动。首先从block缓冲池中取一个block,分析该block中的运动参数,设置运动方向,然后调控步进电机运动。定时器1的定时时间就是步进电机的运动速度,所以在控制步进电机的速度方面,可以通过时间计算来实现。每个中断执行一个block中的1步或几步,这个参数在系统初始化时进行相关设置。
1.将arduino驱动stm32的库文件至于目录
C:\Users\anycubic.platformio\packages\framework-arduinoststm32后,

Marlin代码分析一些记录相关推荐

  1. 20145236《网络攻防》Exp4 恶意代码分析

    20145236<网络攻防>Exp4 恶意代码分析 一.基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些 ...

  2. 20145328 《网络对抗技术》恶意代码分析

    20145328 <网络对抗技术>恶意代码分析 ------看到这句话说明还没写完-------- 实践内容: 使用schtasks指令监控系统运行 使用sysmon工具监控系统运行 使用 ...

  3. 2018-2019-2 网络对抗技术 20165324 Exp4:恶意代码分析

    2018-2019-2 网络对抗技术 20165324 网络对抗技术 Exp4:恶意代码分析 课下实验: 实践目标 是监控你自己系统的运行状态,看有没有可疑的程序在运行. 是分析一个恶意软件,就分析E ...

  4. 2018-2019-2 网络对抗技术 20165320 Exp4 恶意代码分析

    2018-2019-2 网络对抗技术 20165320 Exp4 恶意代码分析 一.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行 分析一个恶意软件,就分析Exp2或Exp3中生成后门软 ...

  5. Exp4 恶意代码分析 20164303 景圣

    Exp4 恶意代码分析 实验内容 实验点一:系统运行监控 (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分析该文件,综述一下分析结果.目标就是找出 ...

  6. 20155317《网络对抗》Exp4 恶意代码分析

    20155317<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用 ...

  7. CC2431 代码分析③-忍辱负重的CC2430

    这节主要分析CC2430的代码,是参考节点的代码,协调器代码我们放到最后分析. 代码分析的原则是事件为导向,我们从CC2431 盲节点code的分析中发现CC2431 向CC2430参考节点发送的信息 ...

  8. angular代码分析之异常日志设计

    angular代码分析之异常日志设计 错误异常是面向对象开发中的记录提示程序执行问题的一种重要机制,在程序执行发生问题的条件下,异常会在中断程序执行,同时会沿着代码的执行路径一步一步的向上抛出异常,最 ...

  9. 模块加载过程代码分析1

    一.概述 模块是作为ELF对象文件存放在文件系统中的,并通过执行insmod程序链接到内核中.对于每个模块,系统都要分配一个包含以下数据结构的内存区. 一个module对象,表示模块名的一个以null ...

  10. kernel 3.10代码分析--KVM相关--虚拟机创建\VCPU创建\虚拟机运行

    分三部分:一是KVM虚拟机创建.二是VCPU创建.三是KVM虚拟机运行 第一部分: 1.基本原理 如之前分析,kvm虚拟机通过对/dev/kvm字符设备的ioctl的System指令KVM_CREAT ...

最新文章

  1. linux 发送邮件
  2. webpack4 系列教程: 前言
  3. 九十分钟极速入门Linux——Linux Guide for Developments 学习笔记
  4. 自由自在意式手工冰淇淋式的生活方式
  5. Android第十期 - 百度地图
  6. ssh登录服务器提示错误no hostkey alg
  7. day1 -- Python变量、注释、格式化输出字符串、input、if、while、for
  8. 链表中倒数第 k 个节点
  9. 小米路由器安装MT工具
  10. Matlab:数据包络分析(DEA)企业效率
  11. markdown表情大全
  12. word图文混排复制到CuteEditor图片不显示
  13. python占内存吗_为什么我的python进程会占用这么多内存?
  14. AutoCAD Civil 3D-超高及数据编辑输入
  15. 微信挂号抢号软件c语言,有号提醒、预约抢号使用方法
  16. Mac和Deepin共享键盘鼠标Synergy
  17. 以太坊白皮书[中文]
  18. docker公共仓库:创建docker hub公共仓库 / 登陆docker hub仓库报错解决/ 上传拉取镜像 / 配置阿里云镜像加速器
  19. 如何评价 CVPR 2020的论文接收结果?有哪些亮点论文?
  20. eis电子防抖好还是光学防抖好_【玩码】OPPO Reno2 搭载超级视频防抖技术,视频拍摄稳得很...

热门文章

  1. 如何查找论文是否被SCI,EI检索
  2. 汽车之家字体反爬破解实践
  3. word稿件转化 成html格式后 图片很模糊是什么原因,你保存的word和pdf文档图片为什么变模糊了?...
  4. html中修改图片大小的标签,css如何设置图片的大小?
  5. js制作动态图片时钟
  6. android 外接扫码枪_Android设备获取扫码枪扫描的内容与可能遇到的问题解决
  7. excel服务器表格显示不出来,excel表格内容显示不全的解决方案
  8. C#正则表达式(来源:侧身向南边博客)
  9. Mongodb 设置过期时间Expire Date
  10. api质量等级_API质量等级与机油选用指引