RT-Thread 学习笔记(二)---配置github代码版本控制工具

RT-Thread源代码根目录详细说明 我从RT-Thread的GitHub官网上面下载了3.1.2的内核源码,下载链接如下 https://github.com/RT-Thread/rt-thread/tags 解压出压缩包后发现主目录下有很多文件下,查阅了一些资料后才搞明白,特将目录层级说明如下: 目录 说明 github 打开里面只有一个readme文件,可以删除; bsp 顾明思议,是包含了很多平台的扳级支持... 阅读详情

在上一篇文章中,我们学习了如何获取RT-Thread源码,以及如何构建一个自己想要的开发环境,用版本控制工具软件SVN创建一个自己的分支,这一节还要引入另一个版本控制工具软件git。因为git有着众多的优点,促使我想要尝试去学习和使用它。

1参考文章:

http://www.open-open.com/lib/view/open1332904495999.html

Github for Windows——来自Github官方的Git客户端

GitHub详细教程

github版本库使用详细教程(命令行及图形界面版)

2 建立自己的代码仓库

登录www.github.com网站,输入自己的用户名和密码,然后点击登录的用户名后面的“+”号下拉列表中的New repository,进入如下界面

在上面的编辑栏中分别输入仓库的名称和描述,当然可以勾选"Initialize this repository with a README",然后点击Create repository 按钮完成仓库创建,如下图。


3  安装Github for Windows

下载地址: https://windows.github.com/ ,下载完毕后开始安装,第一次安装会出现如下界面
这时需要打开控制面板→ Internet 选项→“安全”选项卡,然后选择“受信任的站点”→点击“站点”按钮。并按下图输入"  https://github-windows.s3.amazonaws.com"
然后在前面图中点击安装按钮开始安装,如下图。

等待几分钟,安装完毕,自动打开如下界面。
分别在上面信息栏中输入用户名和密码,如果没有需要到 www.github.com官网上注册一个,然后点击Log in 按钮,进入下图。
点击Continue,提示没有找到本地的Repositories,如下图
点击Skip按钮跳过,出现如下界面。
点击右上角的设置->options,在Clone path 栏选择 Browse 按钮定位到项目代码所在位置,然后点击Update确认,如下图。

然后在上面图中单击左上角的+号,出现如下界面


选中之前创建的仓库,然后点击Clone按钮弹出如下如下对话框,选中自己代码所在位置目录点击确认。


然后开始从服务器中的apingrtt仓库中下载代码,如下图。
这个持续过程需要根据代码量大小确定,下载完成后如下图。

这样就在所在的位置目录下成功复制成了一个代码仓库,这里是E:/RTT/apingrtt.然后就可以在apingrtt目录下加入自己的项目代码了。

4 使用git在本地创建一个项目的过程

如果您的电脑配置不太高,而且代码量有比较大话,使用git 图形界面虽然方便但太耗内存,我的电脑配置有些低,对于有几千个文件的项目来说,GitHub图形界面程序内存吃紧,无法完成sync操作,下面只能给出在gti-shell创建本地项目过程和步骤。
        $ makdir RTT        //创建一个根目录RTT
    $ cd RTT        //进入RTT这个目录

    $ makdir apingrtt    //创建一个项目目录apingrtt
    $ cd apingrtt       //进入这个项目apingrtt

    //如果您按前面的步骤做了,那么上面几步操作不必执行
    $ git init             //初始化 
    $ touch README.txt          //您可用编辑器打开并输入相关描述
    $ git add README.txt        //更新README文件
    $ git commit -m 'commit info'     //提交更新,并注释信息“commit info”
    $ git remote add origin https://github.com/username/projectname.git//连接远程github项目是远程username下的projectname项目

     //如果您已经建立了和github远程服务器的连接,这步执行后会提示fatal: remote origin already exists.
    $ git push origin master     //将本地项目中被git add进提交列表中内容更新到github项目的默认分支master上去,其命令格式为

                            //git push [remote-name] [branch-name]

这里提示一点:在正常开发过程中,git init 和 git remote add origin ...一个工作过程启用一次就可以了,用的较多就是git mommit 和 git push。

下面是我用git add .和git push origin master 的执行过程。

下面是执行结果。

git 更多命令可参考GitHub详细教程和其他一些相关教程。



5 如何删除已经提交并push远程机当中的文件夹

git远程操作的示意图如下。

在操作的过程中我误将RTT_1.2.1当成最新版推送到远程机当中,现在又把它删除,在把目前最新版RTT_1.2.2推送到远程机当中,操作如下:

git commit -a -m 'rm -rf RT-Thread_1.2.1' //注意单引号,删除本地的文件夹,参数-a告诉Git提交全部修改过的文件。
git push origin master //更新到远程端

然后再把rt-thread_1.2.2代码加进来
git add .
git commit -m 'original code of rtt_v1.2.2'//提交
git push origin master //推送到远程端
结果如下。

如果操作不当,会出现,无法提交的错误,如下图:

有网友给出解决办法:
我操作的是ubuntu环境。window远程
1 若在window下远程打开操作窗口(不是console),进入.git目录删除index.lock文件,删除后再commit会自动再次生成index.lock。无法提交。
2 使用putty console下操作,进入.git目录执行 rm -f index.lock 删除index.lock 虽然能删除,但是也是每次都会再生成。无法提交
3 在.git同级目录,执行rm -f .git/index.lock (或者rm -f git/index.lock) 删除后可提交。成功!
在Git的power shell终端操作的结果如下图:

在经历两次失败后,操作成功。
然后进入到bsp目录下面,执行git  add ./stm32f103ze-ek/*,出现一些告警,如下图

然后执行git status 查看下

可以看到,更改后的目录下所有文件被加入到了index列表,

Git有三个地方可以存放代码。

第一个地方是工作目录树,编辑文件时可以直接在这里操作;

第二个是索引(index),也就是暂存区(staging area)。暂存区是工作目录树和版本库之间的缓冲区。

第三个,也就是最终的一个,是版本库。

 命令git add,可以暂存对文件刚做的修改。它跟前面添加一个新文件时使用的是同一个命令,只不过,这次它告诉Git要跟踪的是一个新的修改而非新的文件。

然后可以提交到数据仓库中了,执行如下命令:git commit -m 'rename the dirctionary into stm32f103ze-ek',
然后推送到远程端:git push origin master

在远程端可以看到如下结果:

实际上,如果在git中进行文件或目录管理,根本不用上面那么麻烦,在提交命令git commit -a-m 'rm/或mvdir 文件或目录‘ '就可以了,然后再推送到远程端。
RT-Thread开发环境搭建:从零开始配置STM32高效工具链 实时操作系统(RTOS)是嵌入式开发中实现多任务调度与资源管理的核心组件,其原理在于通过内核调度算法高效管理CPU时间片与外设资源。在物联网与智能硬件领域,RTOS的技术价值在于提供稳定、可预测的实时响应能力,并简化复杂应用的开发流程。对于STM32等ARM Cortex-M系列微控制器,选择合适的开发环境与工具链是项目成功的关键应用场景。本文聚焦于RT-Thread这一国产开源RTOS,深入解析其开发环境配置,涵盖RT-Thread Studio一站式IDE与VSCode+ENV定制化方案两套主流工具链的 阅读详情

相关推荐

嵌入式开发中版本控制实践:Keil与RT-Thread Studio集成Git/SVN指南

版本控制系统是软件工程的基础设施,用于追踪和管理代码变更历史。其核心原理在于记录文件的每一次修改,形成可追溯的版本树,从而实现团队协作、代码回滚与并行开发。在嵌入式开发领域,版本控制的技术价值尤为突出,它能有效管理工程文件、链接脚本及硬件设计文档,确保项目在多人协作与长期迭代中的稳定性与可维护性。应用场景涵盖从个人开发到团队协作的全流程,特别是在使用Keil MDK、RT-Thread Studio等主流嵌入式IDE时,集成版本控制能系统性解决代码备份混乱、合并冲突与实验分支管理等问题。本文聚焦于如何在嵌入

weixin_30298497的博客 291

RT-Thread 软件包制作及发布流程

前言 RT-Thread是一个嵌入式实时多线程操作系统,系统完全开源,它不仅仅是一个实时内核,还具备丰富的中间层组件,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台。 我们可以结合rtthread提供的组件和服务,制作软件包,丰富rt-thread的软件生态。让更多的开发者做到开箱即用,不用重复造轮子。 必备知识 熟悉rt-thread 了解Kconfig 了解Env开发工具 了解Scons构建工具 制作流程 为什么你做好的软件包能被其他开发者使用

静静流淌的柯溪的博客 2478

CH32V208开发板RT-Thread环境搭建与工程配置指南

RISC-V架构作为开源指令集正在嵌入式领域快速普及,其模块化设计允许开发者根据需求定制处理器核。在RTOS环境下开发RISC-V设备时,环境配置是关键第一步,涉及工具链安装、调试器对接和实时系统移植。以沁恒CH32V208这款集成无线功能的RISC-V MCU为例,通过VSCode+RT-Thread的开发组合,开发者可以快速构建物联网终端设备。具体实施时需要特别注意SWD调试接口配置、RT-Thread版本匹配以及scons构建系统的参数优化,这些因素直接影响着开发效率和最终产品的稳定性。本文演示的环境

defkaug153461的博客 531

【使用技巧】如何在RT-Thread Studio上使用GIT进行工程管理

出处:RT-Thread论坛无根生Git 简介Git 是目前最先进的分布式版本控制系统。那么,什么是版本控制系统呢?形象地讲,版本控制就是按照纵向或横向的维度记录当前工程下的变更并进行...

rtthreadiotos的博客 3135

RT-Thread开发环境搭建:从Python 2.7到ARM GCC的完整配置指南

嵌入式开发中,构建系统与工具链配置是项目成功的基础。构建系统负责管理源代码的编译、链接过程,而工具链则是将高级语言转换为目标硬件可执行代码的核心组件。在实时操作系统开发领域,SCons作为基于Python的构建工具,因其灵活的脚本能力和自动依赖解析而备受青睐,能够显著提升复杂嵌入式项目的构建效率。ARM GCC工具链作为开源编译器的代表,为Cortex-M系列MCU提供了稳定可靠的代码生成能力。本文聚焦于RT-Thread操作系统开发环境的搭建,详细解析Python 2.7环境配置、SCons构建工具集成以

weixin_30291791的博客 512

C++ muduo网络库知识分享01 - Linux平台下muduo网络库源码编译安装

Muduo is a multithreaded C++ network library based on the reactor pattern. muduo库的介绍就是:一个基于reactor反应堆模型的多线程C++网络库。 muduo网络库是C++语言开发的一个非常优秀的网络库,作者陈硕,muduo网络库在多线程环境下性能非常高,该系列文章会分享一些muduo库源码的知识,包括它的线程池源码...

大秦坑王的专栏 3万+

RT-Thread 代码贡献流程

rt-thread

paofulll的博客 639

Qt 5.15.2静态编译避坑实录:MinGW 32位版从源码到Creator配置的全流程踩坑总结

本文详细介绍了Qt 5.15.2 MinGW 32位版本的静态编译全流程,包括环境准备、配置参数优化、编译过程监控及安装后配置。重点解决了静态编译中的常见问题,如参数顺序敏感、路径引号问题等,并提供了性能对比实测数据,帮助开发者高效完成静态编译。

weixin_26749245的博客 271

使用STM32F407VET6移植RT-Thread GitHub源码(基于RTT官方keil移植教程)

使用STM32F407VET6移植RT-Thread GitHub源码(基于RTT官方keil移植教程)例程实现1.下载RT-Thread 源码2.复制通用模板3.CubeMX配置4.文件修改5.keil模板文件修改6.env工具生成mdk5工程简单测试 相当于官方教程的简单翻新,凑活看吧 例程实现 复制通用模板 使用 CubeMX 工具配置工程 修改 BSP 中的 Kconfig 文件 修改构...

weixin_43058521的博客 3426

【多媒体交互】Unity+普通摄像头实现UI事件分析

利用摄像头捕捉用户的手势或动作,结合坐标映射与事件系统触发UI交互

qq_38350004的博客 1318

STM32驱动SPL06-001气压传感器:I2C通信与温度补偿实战

气压传感器在无人机定高、室内定位和气象监测中至关重要。SPL06-001凭借±0.06 hPa相对精度和I2C接口,成为STM32项目的理想选择。通过I2C总线读取原始数据,并利用出厂校准系数进行温度补偿和气压解算,可输出高精度气压值。本文详细解析SPL06-001的寄存器操作、校准系数拼接及补偿算法,并分享I2C上拉电阻、地址配置等避坑经验,帮助开发者快速实现气压测量与高度解算。

weixin_29188043的博客 339

GitHub Git版本管理工具入门

文章目录1. 什么是Git?1.1 版本控制是什么?1.2 为什么要用Git?1.3 Git的安装2. 创建本地仓库并添加文件2.1 git init 初始化目录2.2 添加文件到目录2.3 git add 添加文件到仓库管理列表2.4 git commit把文件提交到本地仓库2.5 git log查看提交日志3. 修改文件3.1 第一次修改,然后查看status3.2 像使用svn一样直接提交,会提示没有任何修改3.3 应该先 git add,再git commit3.4 再次修改文件,并提交3.5 Gi

超级大洋葱的博客 881

【机器学习】一文搞懂算法模型之:Transformer

必会算法模型之:Transformer

商务合作 | 面试培训 | 职场规划 ==>主页扫码 5609

Git&Github小册:版本管理必备利器

Git 本地仓库有三大区域:工作区、暂存区、版本区,下面的图可以辅助理解,刚开始不需要特别熟悉这写概念,学完git的基本操作之后就会逐渐理解了。所有的Git命令都是以git开头的。演示一次完整的修改、提交、推送操作。首先,进入仓库主目录,执行git status# 查看仓库状态git status可以看到,我们仓库的仓库中目前还没有任何的文件变动。创建一个文件,然后再执行一次上述的命令:提示的大致意思是提交为空,但是存在可以提交的文件,也就是我们刚刚新建的one.txt。

Xayla的博客 2065

基于锁相环的高精度频率分频器simulink建模与仿真

在现代电子系统中,高精度频率分频器扮演着至关重要的角色。它能够提供精确的频率参考,广泛应用于通信、仪器仪表、航空航天等领域。基于锁相环的高精度频率分频器具有结构简单、性能稳定等优点,成为了研究的热点。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 776

Unreal5从入门到精通之如何解决在VR项目在头显中卡顿的问题

以前我们使用Unity开发VR,Unity提供了非常便利的插件和工具来做VR。但是由于Unity的渲染效果不如Unreal,现在我们改用Unreal来做VR了,所有的VR相关的配置和操作都要重新学习。今天就来总结一下,我在开发VR过程中碰到的所有问题。好了,以上就是我目前做VR时碰到的一些问题,希望对你有所帮助。

TxNet 2482

【RT-Thread】nxp rt10xx 项目工程搭建和配置--(Env Kconfig)

rt-thread 源码获取,env Kconfig配置等

weixin_38426553的博客 1268

llama-factory微调qwen2.5-vl

使用llama-factory完成qwen2.5-vl微调

qq_44908396的博客 2933

RT-Thread Smart正式上线:源代码已开放下载

关注+星标公众号,不错过精彩内容转自|RT-Thread官方消息,RT-Thread Smart已正式上线,目前源代码可在Github、Gitee下载,采用Apache Licens...

strongerHuang 1264

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

基于STM32下RT-Thread和u8g2的OLED屏幕显示

前期准备: 设备型号: STM32GP71RB-NUCLEO IIC OLED 12864 RT-Thread u8g2 一.RT-Thread 因为RT-Thread工程太过庞大了,我推荐使用官方的Env工具,可以免去移植的麻烦,直接通过图形界面就可以控制除非是自己画的板子或者官网历程里面没有的STM32型号得自己去做移植(如果需要移植的可以联系我),接下来跟着我一起做吧! 1.下载: 地址...

NolanのBlog 5325

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

RT-Thread内核移植初探

文章目录前言一、什么是内核移植?二、怎样进行内核移植?2.1 CPU架构移植2.1.1 实现全局中断开关2.1.2 实现线程初始化2.1.3 实现上下文切换2.1.3.1 实现PendSV中断2.1.4 实现时钟节拍2.2 BSP移植2.2.1 为什么要进行BSP移植2.2.2 BSP移植的主要工作三、移植RT-Thread3.1 移植前准备3.1.1 准备裸机代码&RT-Thread源码3.1.2 将rt-thread源码整合到STM32的裸机工程3.2 硬件适配3.2.1 修改平台相关的文件3.

高原 1667

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

RT-Thread 软件包-参与贡献-如何贡献PikaPython模块①

git log 查看提交后的 commit id,在 fork 后的 pikapython/packages.toml 中填写新的版本名,并复制当前的 commit id。git log 查看提交后的commit id,在fork后的pikascript/packages.toml中新增新的模块,填写模块名、版本名和当前的commit id。复制整个修改后的 pikascript-lib/[module] 文件夹到 fork 后的 pikapython/package 文件夹中。

华为奋斗者精神 1970

RT-Thread 携手 Copilot:智能代码审查,加速开源协作

在开源世界中,代码的质量把控至关重要,而代码审查是保障代码质量的关键环节。如今,RT-Thread GitHub 的 PR(Pull Request)功能迎来了一次革新,它与 Copilot 强强联合,为代码审查注入了智能新活力。对于开发者来说,提交 PR 后,Copilot 能迅速且精准地对代码进行审查。它凭借强大的 AI 算法,可以快速识别代码中的潜在问题,如逻辑漏洞、格式不规范、潜在的性能瓶颈等。

supperThomas的专栏 1172

Linux运行rtthread,RT-Thread环境搭建与工程编译

一、搭建开发环境1.基于windows下载 RT-Thread 源码,推荐下载3.1.0及以上版本。安装 python 以及 SCons 工具将路径加入到系统 PATH 变量中QEMU 模拟的 ARM vexpress A9 开发板的板级支持包 (BSP) 位于 RT-Thread 源码 BSP 目录下的 qemu-vexpress-a9 文件夹,此 BSP 实现了 LCD、键盘、鼠标、SD 卡、...

weixin_32486581的博客 1790

基于RT-Thread在STM32H7上移植LWIP(二)——如何解决错误与警告

一、写在前面 上一节已经把所需要的工程源码全部准备好了,前面做的只是基础工作,现在去编译工程会出现非常多的错误以及警告,这一节就是去解决这些错误和警告。 二、修改报错文件 因为是源码是基于FREERTOS的,所以错误的代码不是找不到头文件,就是找不到API,按照这两个思路去解决这些错误就行了。 1、修改头文件报错 删除FREERTOS相关头文件,比如“FreeRTOS.h” “task.h...

FILLMOREad的博客 2553
上一篇: RT-Thread 学习笔记(一)---配置RT-Thread开发环境
下一篇: RT-Thread 学习笔记(三)---用SCons 构建编译环境
aping_cs_dn
博客等级 码龄19年 188粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aping_cs_dn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值