如何在 macOS 上进行 STM32 开发 All In One

如何在 macOS 上进行 STM32 开发 All In One

网上好多 STM32 的教学视频的开发环境都是基于 Windows 系统的,对 macOS 用户直接劝退了

solutions

  1. 在 Mac 上安装虚拟机,在虚拟机中运行 Windows 系统 ?

VirtualBox / VMWare

http://www.virtualbox.org/

http://www.vmware.com/sg.html

  1. 使用 STM 官方免费开发工具 STM32CubeIDE, 基于 Eclipse IDE ✅ (3 GB, 占用存储空间太大 ?)

image

Integrated Development Environment for STM32

STM32CubeIDE-Mac STM32CubeIDE macOS Installer 1.12.1

http://www.st.com/en/development-tools/stm32cubeide.html

STM32 的集成开发环境

STM32CubeIDE是一体式多操作系统开发工具,是STM32Cube软件生态系统的一部分。

STM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。

STM32CubeIDE集成了STM32CubeMX的STM32配置与项目创建功能,以便提供一体化工具体验,并节省安装与开发时间。在通过所选板卡或示例选择一个空的STM32 MCU或MPU,或者预配置微控制器或微处理器之后,将创建项目并生成初始化代码。在开发过程的任何时间,用户均可返回外设或中间件的初始化和配置阶段,并重新生成初始化代码,期间不会影响用户代码。

STM32CubeIDE包含相关构建和堆栈分析仪,能够为用户提供有关项目状态和内存要求的有用信息。

STM32CubeIDE还具有标准和高级调试功能,其中包括CPU内核寄存器、存储器和外设寄存器以及实时变量查看、串行线传输监测器接口或故障分析器的视图。

所有功能
通过STM32CubeMX来集成服务:STM32微控制器、微处理器、开发平台和示例项目选择引脚排列、时钟、外设和中间件配置项目创建和初始化代码生成具有增强型STM32Cube扩展包的软件和中间件
基于Eclipse®/CDT™,支持Eclipse®插件、GNU C/C++ for Arm®工具链和GDB调试器
STM32MP1 系列:支持OpenSTLinux项目:Linux支持Linux
其他高级调试功能包括:CPU内核、外设寄存器和内存视图实时变量查看视图系统分析与实时跟踪(SWV)CPU故障分析工具支持RTOS感知调试,包括Azure
支持ST-LINK(意法半导体)和J-Link (SEGGER)调试探头
从Atollic® TrueSTUDIO®和AC6 System Workbench for STM32 (SW4STM32)导入项目
支持多种操作系统:Windows®、Linux®和macOS®,仅限64位版本

http://www.st.com/zh/development-tools/stm32cubeide.html

  1. VSCode + PlatformIO extension ? (高度自定义,非常轻量化 ?)

http://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide

http://platformio.org/

http://github.com/platformio

demos

STM32CubeIDE 使用例程

下面我们通过一个LED闪灯的例程,来体验一下使用STM32CubeIDE进行软件开发的流程。
例程使用NUCLEO-H743ZI开发板,通过STM32CubeIDE从零开始新建工程。该工程就实现一个简单的功能:板载的LED1以500ms的间隔自动翻转。
通过这个例程,你可以了解到以下内容:
• 新建一个STM32CubeIDE工程
• 对STM32芯片进行配置
• 添加用户代码并编译
• 设置调试参数
• 调试代码(查看变量及寄存器)
• 设置断点

image

image

image

image

image

相关资源

  1. 如何查看STM32CubeIDE文档集
    第一次打开STM32CubeIDE时,首先显示的是“Information Center”页面。这个页面提供了创建工程的快速通道和使用STM32CubeIDE的文档入口。用户不需要在使用STM32CubeIDE之前阅读所有这些文档,但可以把这里作为一个入口,在需要的时候从这里进入去搜索相关文档。

image

http://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE

http://space.bilibili.com/2100019006

微信公众号/视频号

image

image

image

http://github.com/topics/stm32cubeide

(? 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 http://www.cnblogs.com/xgqfrms/ 查看原创文章!

STM32CubeIDE

STM32CubeIDE介绍

STM32CubeIDE是 ST官方提供的免费软件开发工具,也是STM32Cube生态系统的一员大将。
它基于Eclipse®/CDT框架,GCC编译工具链和GDB调试工具,支持添加第三方功能插件。
同时,STM32CubeIDE还集成了部分STM32CubeMXSTM32CubeProgrammer的功能,是一个 “多合一”的STM32开发工具。

image

image

工程管理

image

image

image

image

image

代码编辑

image

image

image

代码调试及烧录

image

image

image

插件的使用

image

http://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE

STMCU中文官网

ST中国大学计划简介

目标群体:全国2,000,000名高等院校电子相关专业学生

目的:培养与释放学生的创造力

ST是一家全球半导体公司,从2007年STM32发布之日起即开始走入中国校园,致力于为在校大学生和未来的工程师们提供一个开放的微控制器平台,进行课程学习与项目科研。

http://www.stmcu.com.cn/university

refs

STM32 单片机烧录程序的方式 All In One

http://www.cnblogs.com/xgqfrms/p/17414777.html

STM32 开发工具集 All In One

http://www.cnblogs.com/xgqfrms/p/17415229.html



©xgqfrms 2012-2021

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 ?️,侵权必究⚠️!


本文首发于博客园,作者:xgqfrms,原文链接:http://www.cnblogs.com/xgqfrms/p/17423097.html

未经授权禁止转载,违者必究!


本文转载于网络 如有侵权请联系删除

相关文章

  • lvm-snapshot:基于LVM快照的备份

    续lvm-snapshot:基于LVM快照的备份之准备工作 http://www.linuxidc.com/Linux/2014-05/101308.htmAttention,Please!重头戏开始啦3.基于LVM快照的备份lvm-snapshot:基于LVM快照的备份(1)事务日志跟数据文件必须在同一个卷上;(2)创建快照卷之前,要请求MySQL的全局锁;在快照创建完成之后释放锁;(3)请求全局锁完成之后,做一次日志滚动;做二进制日志文件及位置标记(手动进行);--------------------------------------分割线--------------------------------------MySQL管理之基于LVM实现几乎热备http://www.linuxidc.com/Linux/2014-04/99672.htmUbuntu12.04KVM之VM动态迁移-基于LVMhttp://www.linuxidc.com/Linux/2014-04/99894.htmRHEL5.9LVM的使用http://www.linuxidc.com/Linux/201

  • 云笔记横向评测:印象笔记、有道云笔记、为知笔记、OneNote、Notion、FlowUs、Wolai、飞书、语雀

    某款软件是否好用,既需要根据其功能特性评估其优点和缺点,也需要分析用户的基本需求。以下是常见云笔记的深度评测。 云笔记评测标准:分析每款笔记软件的核心特色、优点、缺点及使用场景。具体包括:印象笔记、有道云笔记、为知笔记、OneNote、Notion、FlowUs、Wolai、飞书、语雀印象笔记介绍老牌云笔记的代表。 核心特色印象识堂:实在不理解这个模块。有喜欢查看印象识堂的用户过来分享一下使用体验。超级笔记:不伦不类。思维笔记:录音笔记:双向链接:智能推荐:聊胜于无。收藏:微信、微博、得到印象笔记Verse:印象会员大礼包:时刻提醒充值;周边商品或者课程广告。印象笔记编辑器:启动速度过慢。 广告大礼包评价印象笔记是国外云笔记的明星产品Evernote的中国版本。然而,经过几年的发展,印象笔记已经成为了与Evernote迥异的产品。印象笔记依然拥有庞大的用户数量,但也是一款让笔记用户失望的产品。功能层面。1.1在Notion等新型笔记出现之前,印象笔记几乎无视用户的诉求。用户呼吁已久的Markdown语法久久都没有上线。更重要的是,编辑体验多年来十分糟糕,同步等核心功能也偶尔出现问题

  • EasyNVR非管理员登录查看录像列表为空是什么情况?

    EasyNVR平台具备分级管理的功能,同时还具备一个最高权限的管理员,该管理员下可以设置其他等级的管理员及普通用户。有用户反映如果使用非管理员登录EasyNVR,将昵称设置成中文,再进入录像回看之后,列表就会显示为空。对该情况我们进行了测试,发现确实如此,需要对这个地方进行修改:查看代码调试后发现是因为sql语句错误引起的,sql语句中用昵称字段(username)进行了sql查询,而使用的值则是name字段对应的值,只要两者不相同就会查找不到数据。将昵称字段换为登录字段后数据就出现了:wheresql:=fmt.Sprintf(`%s.name='%s'`,models.User{}.TableName(),uname)复制EasyNVR可以说已经成为国内视频互联网化基础建设的排头兵,几乎各个民生行业都已经有了EasyNVR视频能力输出的身影,EasyNVR多年服务于各行各业视频基础建设,其可靠性、完整性、稳定性已经受到了业界的广泛认可。同时为方便用户了解和使用EasyNVR,我们提供EasyNVR的试用版本,解压即用,欢迎测试。

  • 工作流和状态机

    起源因为工作相关的一些原因,最近开始看一些工作流的框架或者产品,有兴趣的可以看我这篇文章。任务流是一种很常见的任务组织形式:graphLR Start-->Step1 Step1-->Step2 Step2-->End复制这种例子充斥我们的生活,比如订单系统,Hr系统,审批系统,CI/CD系统,都是任务流的常见引用。Dag我们常见两种任务流的实现形式,一种是DAG,dag的表达的核心在于描述单个任务,比如描述一个Task他完成什么样的动作,以及他依赖什么样的动作,DAG的描述和他的名字一样,缺陷在于不支持有环的任务流转(这一点只是为了简化,实际上也有办法实现)TaskA: Actions: -动作A Dependencies: TaskB: Actions: -动作B Dependencies: -TaskA TaskC: Actions: -动作C Dependencies: -TaskA -TaskB复制对这个dag进行简单的拓扑排序,就能得到他大概的执行流程,下图为依赖图,首先会执行TaskA,然后TaskB,最后TaskCgraphLR TaskA-->

  • 利用Cobra实现自动化代码审计的经验分享

    前言本文介绍了笔者通过一个简单的方法利用Cobra工具来实现自动化代码审计的经验,以及对Cobra工具代码的一些定制改动。一、背景笔者在某甲方运维部负责信息安全,代码审计已经加入到上线流程里面,在没有引入Cobra之前用的是绿色版FortifySCA。公司是Java开发环境,每次上线前都需要开发人员单独把未编译的上线源码打包发送给我,手动执行审计任务,输出报告,上传SVN等一系列操作。原先的上线源码审计流程如下图:这样的弊端一是源码传输方式不可控,二是手动执行审计任务太繁琐,所以开始寻找实现自动化审计的方法。因为公司预算吃(mei)紧(qian),只能从开源工具上入手。二、需求分析前面有戳进传送地址的大佬们应该已经知道了Cobra的大概情况,它是python写的,支持扫描文件夹、压缩包、Github,支持多种报告格式输出及邮件发送等等。我这里需要实现的是上线源码自动采集、审计任务自动执行及审计报告自动发送邮件及上传SVN。Cobra的基础执行命令是这样的:pythoncobra.py-tcode_path-oreport_format-oemail_addr复制上线源码的自动采集已经在

  • 基于Hadoop生态圈的数据仓库实践 —— 进阶技术(九)

    九、退化维度 本节讨论一种称为退化维度的技术。该技术减少维度的数量,简化维度数据仓库模式。简单的模式比复杂的更容易理解,也有更好的查询性能。当一个维度没有数据仓库需要的任何数据时就可以退化此维度,此时需要把退化维度的相关数据迁移到事实表中,然后删除退化的维度。 1.退化订单维度 本小节说明如何退化订单维度,包括对数据仓库模式和定期装载脚本的修改。使用维度退化技术时你首先要识别数据,分析从来不用的数据列。例如,订单维度的order_number列就可能是这样的一列。但如果用户想看事务的细节,还需要订单号。因此,在退化订单维度前,要把订单号迁移到sales_order_fact表。下图显示了迁移后的模式。 按顺序执行下面的四步退化order_dim维度表: (1)给sales_order_fact表添加order_number列 (2)把order_dim表里的订单号迁移到sales_order_fact表 (3)删除sales_order_fact表里的order_sk列 (4)删除order_dim表 下面的脚本完成所有退化订单维度所需的步骤。 usedw; altertable

  • jmeter(四十六)参数化与断言实战

    概述今天用jmeter做一次参数化实战。通过计数器遍历参数表,然后查询jdbc进行beanshell断言。涉及元件用户参数,计数器,正则表达式,jdbc,beanshell脚本详细过程在我们的opms项目管理中,有一个项目状态的修正,四种状态分别为延期,挂起,进行,结束在接口自动化案例中,我们需要对这四种状态进行遍历,然后进行断言,判断状态是否正确修改我们通过抓接口,发现了传参的一个规律:除了项目id之外,四种状态的status分别是1,2,3,4我们把添加项目的返回id用正则表达式提取出来,作为项目状态接口的入参,参数名称为projectid,这个是主键id 现在思考一下,接下来的四种状态,你要如何去操作才能全部执行一次并断言结果???通常的做法是写四个接口,传四种参数,再添加四个断言,但是这种做法会造成大量的脚本冗余,在接口自动化中是会被鄙视的!如下:现在教大家用精简的脚本完成复杂的逻辑校验。1:添加一个循环控制器,让它循环四次,可以遍历四种状态2:添加一个用户参数,在参数表中配置四种项目状态 3:添加一个计数器,上限为4,递增1,用来遍历参数表中的四种状态4:添加一个http请求

  • Docker 从零开始制作基础镜像[centos]

    http://www.oschina.net/news/62897/docker-hub-contains-high-risk-vulnerabilities 这里有个统计,docker官方和个人发布的镜像由于版本等各种原因,漏洞较多,那我们如何自己从头开始做个定制的镜像呢?对,找官方文档 http://docs.docker.com/articles/baseimages/,这里说明的很清楚了试验如下:在centos7机器上做centos镜像直接参考这个脚本https://raw.githubusercontent.com/docker/docker/master/contrib/mkimage-yum.sh./mkimage-yum.sh -y /etc/yum.conf centos7执行如上脚本,成功后,就可以看到镜像了【docker images】,概要说明一下,主要是如下几步:1.tmp目录下建立临时目录和文件系统2.使用yum安装相关的软件包3.软件包安装和信息定制4.tar打包5.清理建立目录结构[rootfs]target=(mktemp−d−−tmpdir(mkte

  • 任性双11,服务半价买,还有百万Q币送

    测试开发者的共同关注! 明天就是一年一度的双11购物狂欢节,不仅各大零售电商瞄准了这一波营销大势,众多企业服务商也在这一天推出重大优惠。腾讯WeTest作为有着十年技术沉淀的一站式测试服务平台,将在双11期间,推出“狂送百万Q币”的活动以回馈平台用户。同时,更有专家兼容服务限时5折出售,由腾讯金牌测试团队,严格遵照腾讯标准流程,帮您解决游戏、应用兼容性问题。活动时间2016年11月11日至11月24日活动规则活动期间,平台认证用户购买任意服务,累计付费满100元,可领取50Q币,累计付费满200元,可领取100Q币,多买多送。百万Q币,送完为止。注意:累计付费不满百元部分,无Q币奖励。专家兼容测试精华版5折出售该项服务包括安装、启动、登录、新手引导、卸载、性能指标方面的测试。由腾讯金牌专家测试团队提供,享受如《王者荣耀》、《天天酷跑》腾讯顶级游戏同等待遇。双11来WeTest,享受被百万Q币围绕的喜悦!来一次跟腾讯专家的约惠!了解活动更多信息,请扫描下方二维码快点击左下角“阅读原文”参加活动吧关于腾讯WeTest腾讯WeTest是腾讯游戏官方推出的一站式游戏测试平台,用十年腾讯游戏测试

  • Shell编程实战

    为什么要学习Shell编程Shell脚本语言是实现Linux/Unix系统管理及自动化运维所必须的重要工具,Linux系统的底层以及基础应用软件的核心大都涉及Shell脚本的内容。一个合格的Linux系统管理员都必须熟练编写Shell脚本语言,从而提升运维人员的工作效率,减少不必要的重复性工作。学习Shell所需的基础知识熟练使用VIm编辑器,熟悉SSH终端等配置在Linux下开发shell脚本用的最多的就是vim编辑器,熟练使用vim可以使得shell脚本开发事半功倍!有一定的Linux命令基础,熟练掌握80个命令以上shell和其他脚本语言不同,如python,Shell缺少可以直接使用的外部函数库,因此Linux系统的命令就可以当做Shell的函数库!熟悉常见Linux服务部署,优化,分析与排错学习Shell直接的目的是在工作中对系统以及服务进行自动化管理,因此如果不熟悉服务操作,使用shell也就没有意义了什么是ShellShell存在于操作系统的最外层,负责与用户直接对话,把用户的输入解释给操作系统,处理操作系统的输出结果,然后反馈给用户。Shell是一个命令解释器,它的作用

  • 小白也能看懂的BP反向传播算法之Into-BackpropagationBackpropagation待续

    本文相关代码可以从Backpropagation下载 在上一篇文章小白也能看懂的BP反向传播算法之Towards-Backpropagation,我们学习了如何利用函数的微分来更新变量值,是函数值发生相应的变化! 例如,对于函数 image.png 我们想要更新变量a,b的值使f的值增加,就可以根据以下公式来更新 image.png实际上这就是反向传播的最基本的思想!我们试想假设f函数是一个代价函数,神经网络的训练就是将代价函数的值变小,那么就是问题就变成了,对于一个代价函数f,我们将改变f的变量,使其f能减小,而f不就是关于每个神经元权重和偏置的函数么,f=f(w,b)。只不过是代价函数的变量更多,函数形式更复杂,更新起来相对复杂,这个我们将在后面详细介绍!但其实反向传播的基本思想就是根据微分去更新!接下来,我们就将问题慢慢复杂化,一步一步接近最终的神经网络中的反向传播!前文中,我们利用的是一个神经元,这里我们讲问题变复杂,变成两个神经元,并且是有嵌套关系的两个神经元!如下图:image.png,将输入值相加然后输出到第二个神经元,同时第二个神经元还接受输入c,并将两个值相乘,最后

  • java学习:使用dom4j读写xml文件

    dom4j是一个优秀的开源项目,专用于xml文件的读写,而且支持强大的xpath.下面的代码演示了对xml文件demo.xml的读写demo.xml内容:1<?xmlversion="1.0"encoding="UTF-8"?> 2<address-list> 3<cardname="yangjm"id="1"> 4<sex>男</sex> 5<address><![CDATA[中国上海外滩No.01]]></address> 6<telephone>13916732212</telephone> 7</card> 8<cardname="zhangsan"id="2"> 9<sex>女</sex> 10<address> 11<itemtype="家庭地址">

  • CentOS7 部署 Enterprise Search(APP Search)

    1安装ElasticSearch8.2.0(单机版) 前置条件:已安装java 1.1创建普通用户 ES不能使用root用户来启动,必须使用普通用户来安装启动。这里我们创建一个普通用户以及定义一些常规目录用于存放我们的数据文件以及安装包等。 #使用root用户在机器上执行以下命令 useraddes passwdes #添加sudo权限 vim/etc/sudoers #先找到如下图所示的一行:(rootALL=(ALL)ALL),复制此行,在下一行粘贴并修改为 esALL=(ALL)ALL #使用es sues 复制 1.2安装ElasticSearch 1.2.1基础配置 #下载并解压压缩包 wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.2.0-linux-x86_64.tar.gz sudotar-zxvfelasticsearch-8.2.0-linux-x86_64.tar.gz-C/usr/local/ #修改elasticsearch.yml cd/usr/local/

  • 手下两个应届生:一个踏实喜欢加班,一个技术强挑活,怎么选??

    ​点击蓝色“程序员黄小斜”关注我哟 加个“星标”,每天和你一起多进步一点点! 本文来源 | 程序员求职面试(ID:CoderJob) 内容参考自| 脉脉 近日,有位阿里员工发帖称,自己手下有两个应届生,985本硕和985本,但两人无论性格、技术,还是家境都不一样,问大家如何选择。 原贴如下: 有不少人认为楼主应该考虑选择A。 @阿里巴巴员工:沟通能力强这个真的是练出来的,想法多一定是看到的东西足够多!A看着平凡,给他环境练一练,不平凡 @去哪儿网员工:当然a,不服管教就换人吧 @华为技术有限公司员工:B学好了就跑路了。 @作业帮员工:价值观都正向的情况下,肯定选A,目前这活还没到拼天赋的时候吧 @浪潮员工:肯定A呀,要知道A啥活都干,B挑活才跟人产出一样。这还选择不了。你不是当领导的,你是员工吧!别扯什么实现自身价值这些虚的。 但也有网友认为选B最恰当,我喜欢B,B适合单干 @程序猿:b,老实人走不远的,会折腾的才厉害 @字节跳动员工:事实上绩效好的是B而不是A,因为我就是A这个类型 @程序猿:产出相当啊,两个都留住好好培养。给一样的绩效。至于看好谁

  • ReactNative如何在JS中引用原生自定义控件(rn变化太快,网上很多教程有坑,这个我研究后可用,特意分享)

    直接写一个Demo例子,有相关功底的肯定明白,会对特别的地方进行提醒,本文基于https://blog.csdn.net/lintcgirl/article/details/53489490,但是按此链接文章不可用。   首先是JAVA部分: 1importcom.facebook.react.ReactActivity; 2 3publicclassMainActivityextendsReactActivity{ 4 5/** 6*ReturnsthenameofthemaincomponentregisteredfromJavaScript. 7*Thisisusedtoschedulerenderingofthecomponent. 8*/ 9@Override 10protectedStringgetMainComponentName(){ 11return"RNMyTest"; 12} 13}复制   1importandroid.app.Application; 2 3importcom.facebook.react.ReactApplicati

  • 防止重复提交

    简介    在现在的web开发中我们经常使用ajax从后端获取数据,提交数据。对于有些游戏爱好者或者手速甚快的同学来说,一个按钮触发click事件可以触发多次。有经验的前端开发者肯定会使用防止重复提交方式避免重复提交数据。有经验的后端则会在每次提交数据时加vision版本号。如果后端加版本号来验证,则需要前端每次提交时增加版本号这个字段。因此做防止重复提交还是交给伟大的前端同学哈!现在我就把我所使用的方式分享给大家。 <!DOCTYPEhtml> <html> <head> <metacharset="UTF-8"> <title>防止ajax重复提交</title> </head> <body> <buttonid="btn">提交</button> <script> /** *模拟ajax提交 *@fn回调函数 **/ functionAjax(fn){ setTimeout(function(){ vardata

  • 类——继承、复合、委托

    1、复合,表示hasa... 一个类里面有另外一个...  

  • 任务

    zojTreeofTree 1/*Author:usedrose*/ 2/*CreatedTime:2015/7/261:06:37*/ 3/*FileName:2.cpp*/ 4#include<cstdio> 5#include<iostream> 6#include<algorithm> 7#include<sstream> 8#include<cstdlib> 9#include<cstring> 10#include<climits> 11#include<vector> 12#include<string> 13#include<ctime> 14#include<cmath> 15#include<deque> 16#include<queue> 17#include<stack> 18#include<set> 19#include<map> 20#defineINF0x3f3

  • 指令和运算 - 编译、链接和装载之程序装载:640K内存真的不够用么

    指令和运算-编译、链接和装载之程序装载:640K内存真的不够用么 目录指令和运算-编译、链接和装载之程序装载:640K内存真的不够用么1.程序装载面临的挑战2.内存分段2.1内存分段2.2内存交换3.内存分页3.1RedisList3.2内存分页3.3缺页错误4.总结延伸 计算机组成原理目录:https://www.cnblogs.com/binarylei/p/12585607.html 在前面几节中,我们已经知道高级语言通过编译、链表生成可执行文件,但这个可执行文件只有先被加载到内存中,才能被CPU执行。但问题是内存是有限的,如何加载越来越多的程序呢? 比尔·盖茨在上世纪80年代说的"640Koughttobeenoughforanyone",也就是640K内存对所有人都够用了。那他是怎么做到的呢?硬件工程师巧妙的通过内存分段、内存交换、内存分页三项技术来解决这个问题。 1.程序装载面临的挑战 我们的代码通过编译和链接后,将多个文件合并成一个最终可执行文件。在运行这些可执行文件的时候,我们其实是通过一个装载器,解析ELF或者PE格式的可执行文件。装载器会把对应的指令和数据加载到内存

  • 机器学习(十二) 决策树(上)

    决策树(DecisionTree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy=系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。 决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。 分类树(决策树)是一种十分常用的分类方法。他是一种监管学习,所谓监管学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。这样的机器学习就被称之为监督学习。 一、什么是决策树 二、信息熵   三、使用信息熵寻找最优划分     灵台方寸莫染金,繁华尽去方显真

  • vue.js动态获取菜单

    https://www.jianshu.com/p/917a21e5f5e1   需求:用户登录后获取相应的菜单权限,这里已知后台获取的菜单树 这里介绍两种方式: 1、根据从后台获取的路由路径动态注册路由(import到项目),在前端配置菜单权限时需提交路由的路径给后台; 2、前端代码中将所有的路由路径注册好(全部import到项目),由于路由全部注册好了,根据后台返回的菜单显示即可;但这样在地址栏输入路由还是可以访问到,所以前端配置菜单权限时需要给后台提交相应的接口权限,用户登录后没有这个菜单的接口权限则输入地址栏也无权访问,保证正确性。 两种方式的区别: 第一种是通过后台获取菜单之后去注册路由,那么地址栏输入路由就会报404 第二种是全部注册好路由,地址栏输入不会报404,这时候需要控制接口权限 方式一:动态注册路由 loadingRoutes.js /* 动态注册路由 页面全在views文件夹下 如: importpage1from'./views/page1.vue' importpage2from'./views/page/page2.vu

相关推荐

推荐阅读