linux移植网卡驱动问题(itop-4412)

iTop 4412 移植linux-5.8.6 由于linux内核已经很好的支持itop4412开发板,移植起来也相对容易 开发环境 Ubuntu 19.04 CROSS_COMPILE arm-linux-gcc 1. 第一步 下载linux内核 2.第二步 修改Makefile 指定交叉编译器 371 ARCH ?= arm 372 CROSS_COMPILE ?= arm-linux-gnueabi- 第三步、生成.config配置文件,直接使用linux官方的默认配置即可 配置文件在 arch/arm/confi 阅读详情

        针对itop-4412这个板子移植网卡驱动,本来以为非常简单的,结果费了老大的劲还不能成功,经过反复厂家提供的编辑过的内核,发现内核linux-4.14.2中drivers/char/目录下有个power_ctrl.c这样一个文件,这应该是这个网卡dm9625的电源驱动代码,如果不将这个编入内核,网卡灯死活不亮,而虽然内核中有这个文件,最关键的一点,是在Makefile中即没有将它加入进去,导致代码一样,运行起来却老是失败。而在内核linux-5.6.8中,没有这个power_ctrl.c文件。
下面是排查步聚:
1. 软件硬件环境
1.1 itop-4412开发板,实际arm内核为cortex-A9
这里需要认真看一家硬件手册,这个网卡芯片为DM-9621,也就是基于usb的网卡芯片,另外特别注意它的连接方式图,hub方式。
1.2 软件环境
内核我选择linux-5.6.8,同时下载linux-4.14.2

2. 内核中驱动配置
2.1 网卡驱动配置
Device Drivers
->Network device support
    ->USB Network Adapters
        ->Multi-purpose USB Networking Framework
            ->Davicom DM96xx based USB 10/100 ethernet devices  
注意都选*号            
2.2 USB驱动部分
Device Drivers
->USB Support
    ->EHCI HCD (USB 2.0) support 
        ->Improved Transaction Translator scheduling 
        ->EHCI support for Samsung S5P/Exynos SoC Series 
3. 编译后运行
网卡灯不亮,但是串口输出可以看到如下字样:
[    2.069416] usbcore: registered new interface driver dm9601

但是没有识别到usb-hub设备,说明这儿电源管理一定有问题,电路没有接通,对比厂家的输出,
发现有如下输出时灯才亮:
[    3.213796] usb 1-3: New USB device found, idVendor=0424, idProduct=3503, bcdDevice=a1.a0
[    3.220887] usb 1-3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    3.234438] hub 1-3:1.0: USB hub found
[    3.238661] hub 1-3:1.0: 3 ports detected
[    3.561117] usb 1-3.2: new high-speed USB device number 3 using exynos-ehci
[    3.712329] usb 1-3.2: config 1 interface 0 altsetting 0 endpoint 0x83 has an invalid bInterval 0, changing to 7
[    3.801829] usb 1-3.2: New USB device found, idVendor=0a46, idProduct=9621, bcdDevice= 1.01
[    3.808800] usb 1-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.827055] dm9601 1-3.2:1.0 eth0: register 'dm9601' at usb-12580000.ehci-3.2, Davicom DM96xx USB 10/100 Ethernet, 00:00:ff:ff:00:00
[    4.180788] dm9601 1-3.2:1.0 eth0: link down
[    6.755003] dm9601 1-3.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1

经过反复测试对比,发现在linux-4.14.2中目录drivers/char/下有这个文件:power_ctrl.c,这个应该就是usb-hub电路驱动,而在内核
linux-5.6.8中相应目录下是没有这个文件的。即使用在linux-4.14.2中有这个文件,为什么灯还是不亮呢?没有办法了,知道肯定问题就在这儿,逐渐排除对比后,发现在原生的内核中,虽然有这个文件,但是没有加入Makefile中。
即在drivers/char/Makefile中最后加一行:
obj-y    += power_ctrl.o

我使用的是linux-5.6.8内核,将power_ctrl.c这个文件从linux-4.14.2中复制到drivers/char/下,再将
obj-y    += power_ctrl.o
加入Makefile中,重新编译,这次可以看到灯亮了。

后记:这里要鄙视一下一些板子厂家,这种关键细节在文档中故意只字不提,埋了很多坑等着你去踩,浪费了很多的时间,为了让更多的
技术研习朋友少浪费时间,我把我的经历分享出来,希望对大家有帮助。

13-迅为iTOP-4412精英版之Linux内核移植实战:从源码到启动的完整避坑指南 本文详细介绍了在迅为iTOP-4412精英版开发板上进行Linux内核移植的完整流程,从环境准备、源码获取、内核配置与裁剪到设备树修改和常见问题排查。通过实战指南帮助开发者避开常见陷阱,顺利完成从源码到启动的全过程,特别适合嵌入式Linux开发初学者和进阶者参考。 阅读详情

相关推荐

mt7601(360二代)wifi-STA移植到itop4412

一、移植准备基本概念  移植之前首先搞清两个概念 :AP和STA,并且在下载wifi驱动源码时注意是STA还是 AP。       Wifi模块包括两种形式的拓扑结构:Infra(基础网)和Adhoc(自组网)。AP:也就是无线接入点,是一个无线网络创建者,是网络的中心节点。由AP组建,众 多 STA加入的无线网络就是Infra(基础网)。这种网络以AP为中心,网络中所有的通 信 都通过AP来转发...

木樨天堂 2530

Hi3521DV100 USB无法识别问题分析

Hi3521DV100偶现一块板子的USB无法识别,且内核打印:Cannot enable. Maybe the USB cable is bad?接下来分析原因。 驱动打印 ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-platform: EHCI generic platform driver ehci-platform 10040000.ehci: EHCI Host Controller ehci-platfor

TSZ0000的博客 1万+

基于iTOP-4412开发板(精英版)的linux 4.14.2内核移植

准备工作 虚拟机:VM-Ware 15.0 pro 操作系统:Ubuntu Linux 16.04 交叉编译器:arm-linux-gcc 4.6.2 工作文件夹:/home/用户名/work 一、内核源码获取 1、从linux官网下载内核 从linux官网下载内核,linux 官方网站是https://www.kernel.org/ 如下图所示: 2、将内核拷贝到虚拟机中解压 下载完成后,在虚拟Ubuntu中的工作文件夹中建立kernel文件夹并将下载的压缩包拷贝进去: 解压缩xz压缩包:xz -d

trigpoplar的博客 1万+

Linux USB设备加载识别探索

Linux USB设备加载识别探索。SD卡分别接了16GB和32GB卡。可以看出开机启动扫描usb总线时是有顺序(从小到大)的。 硬件连接 启动打印 ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver before uhci_hcd and ohci_hcd, not after hiusb-ehci hiusb-eh...

TSZ0000的博客 3066

linux上USB检测异常,报错usb 7-1: device descriptor read/8, error -71

USB设备插入检测打印信息,如下。

qq_45147279的博客 5340

u-boot-201711-itop4412移植

这是我在itop4412开发板上移植的uboo。版本是201711,目前支持USB以太网DM9621以及电源管理芯片s5m8767的控制。目前支持sd卡启动。

讯为4412环境搭建

1- 环境描述 讯为网盘资料:链接:https://pan.baidu.com/s/1oGf9AkD_XD-vI6mtkJfc3A ;提取码:ktqb PC: win10 开发板:讯为4412精英板,核心板SCP1G。开发板拨码开关位置: 左 右 拨码序号 1 4 1 3 1 2 1 1 开发板接上电源线、串口线。 2- 串口环境 串口线一端接开发板串口2,另一端接电脑USB口。 安装串口驱动:网盘/iTOP-4412 开发板所需...

u010743406的博客 1125

地质工程师必备:Dips软件从数据导入到主结构面分析的完整流程解析

本文详细解析了地质工程师使用Dips软件进行主结构面分析的完整流程。从数据准备与导入、结构面分组与扇形区划分,到主结构面计算与工程解读,系统阐述了如何将野外节理数据转化为控制岩体稳定性的关键信息。重点介绍了利用等值线图识别优势组、计算统计主值及其置信椭圆,并强调了地质判断与工程应用结合的重要性。

table的专栏 341

基于tiny4412的Linux内核移植 -- DM9621NP网卡驱动移植(四)

作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:...

weixin_34250709的博客 1041

10分钟训练你的AI歌手:RVC WebUI声音克隆保姆级教程

本文提供了一份详细的RVC WebUI声音克隆保姆级教程,指导用户如何在10分钟内利用Retrieval-based-Voice-Conversion技术训练专属AI歌手。教程涵盖从环境配置、数据准备、模型训练到最终推理应用的全流程,即使是新手也能快速上手,实现高质量的声音克隆与歌曲生成。

weixin_29073241的博客 821

【DaVinci Developer专题】-28-Client Server Port Interface中useArgumentType、useArrayBaseType和useVoid介绍

共7页 目录 1 ImplPolicy = useArgumentType 2 ImplPolicy = useArrayBaseType 3 ImplPolicy = useVoid 4 三者代码差异部分 5 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键字: 缩略语/术语 含义 DEV DaVinci Developer

「汽车电子助手」的博客 1503

[2020.09.12 - xhr4412] 移植 u-boot-2020.07 & linux-5.8.5 & BusyBox-1.31.1 到 iTOP-4412 汇总

文章目录2020-09-12前言一、链接二、源码使用三、注意事项 2020-09-12 前言 开始移植:2020-07-25 初版发布:2020-09-12    通过一段时间的移植,学到了不少东西,目前的初版还不算完美,可以完整的启动 linux kernel 到根文件系统。还有很多设备还不能使用,以后再将其他设备用起来。    如果有问题,请私信我,谢谢。 一、链接 [u-boot 2020.07] README 移植 u-boot-2020.07 到 iTOP-4412(一)地址无关码点灯 移植 u

u012849539的博客 4004

LLM 大模型学习必知必会系列(十一):大模型自动评估理论和实战以及大模型评估框架详解

LLM 大模型学习必知必会系列(十一):大模型自动评估理论和实战以及大模型评估框架详解

丨汀、的博客 3216

Uboot-2017-11移植DM9621网卡专题【目录汇总】

前言 目前讯为官方的开发板提供的BSP里面,uboot并不支持网卡功能,所以uboot的网络相关命令也都没有办法使用,只能使用官方的定制fastboot命令来达到加载内核启动的功能。fastboot是基于USB数据线的,还有各种驱动要安装,使用起来其实还是诸多不便的。前段时间心血来潮,那就把网卡移植上去,经查阅很多优秀的资料过后,觉得这条路走得通,所以才有了今天的这篇博客专题。我会尽量详细的把移植...

Jason_416的博客 3106

焊缝缺陷智能检测:基于 YOLO 的工业质检系统实战

从焊缝缺陷数据集的构建到模型训练,从桌面检测界面到缺陷统计输出,本文覆盖了一套工业焊缝质检系统的完整路线。这个场景的核心难点在数据层面——气孔和裂纹这类小目标的标注质量直接决定了模型的最终表现。建议先在开源数据集上跑通全链路,确认 mAP 达到可接受的水平后,再通过补充特定类型的小目标数据和提升输入分辨率来做精度优化。工业场景中,漏检一个气孔的成本和误报一个假阳性的成本不一样——根据对两类成本的承受力,调整置信度阈值来找到业务上的最佳平衡点。

m0_71589036的博客 202

Qt垂直滚动条QVerticalScrollBar详解:从基础到实战的控件开发指南

本文系统解析Qt中QVerticalScrollBar的用法,从基础概念到进阶技巧。主要内容包括:1)基础认知:介绍其继承关系、作用及典型应用场景;2)核心用法:创建方法、关键属性配置和信号槽连接;3)进阶技巧:自定义样式表美化外观,以及与自定义内容区域的联动实现;4)实战注意事项,如避免循环触发和高DPI适配等。文章强调掌握QVerticalScrollBar对提升Qt滚动类功能开发效率的重要性,并建议通过自定义文本编辑器实践巩固知识点。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 759

移植 linux-5.8.5 到 iTOP-4412(一)build & config

文章目录一、下载二、配置1. 裁剪掉一些配置2. 设置串口3. 网卡驱动4. 压缩模式三、build kernel1. 编译报错2. 编译成功四、build dts1. 修改 dtsi2. build五、后续参考 一、下载 https://www.kernel.org/ 这里就下载目前最新的版本,今天是 2020.08.30,所以就下载前两天刚发布的稳定版本。 二、配置    源码下载解压后,设置编译器等路径,然后 make menuconfig 打开配置选项界面,选择类似的开发板的配置。    拷贝

u012849539的博客 1293

YOLOv8改进,YOLOv8添加DCNv3可变性卷积,无需编译

DCNv3在DCNv2版本上进行了改进,上一期我们在YOLOv8中添加了DCNv2,这一期我们将添加DCNv3,DCNv3代码详解可以参考链接:代码详解——可变形卷积(DCNv3)

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 5021

【北京迅为】iTOP-4412精英版使用手册-第六十六章 USB驱动专题

USB 通信的整个通信流程,在初始化进入 probe 之后,都是以 urb 为核心,urb 的处理流程为:创建 urb、初始化 urb(中断 urb,块 urb,控制 urb,同步 urb)、提交 urb、完成 urb、销毁 urb。除去具体的 USB 外部设备,像 USB 主控制器、USB ROOT HUB, USB HUB 等等都是属于 USB 内部设备,USB 内部设备的驱动实现,是不需要驱动工程师做的,这些工作在原厂提供的代码中都是支持的,甚至是 linux 官方的驱动中都是支持这些功能的。

BeiJingXunWei的博客 906

configure: error: no acceptable C compiler found in $PATH解决方案

本文主要介绍了configure: error: no acceptable C compiler found in $PATH解决方案,希望能对使用Linux的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 4万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

移植Linux-5.4+内核到4412开发板

前言 前段时间接触到了友善的开发板,里面用了最新的5.4+内核,恰好想起了了讯为法师以前在公众号发布的文章-【番外 | 移植linux4.14内核到4412开发板】。讯为的scp开发板已经在主线版本支持了,只需要稍加修改设备树便可以直接移植完成了,这里还是要感谢讯为官方对4412开发板的支持。 一、环境说明 OS版本 Ubuntu 20 LTS 交叉编译环境配置 $ sudo apt install gcc-arm-linux-gnueabihf $ sudo apt install flex $ sud

Jason_416的博客 3057

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

搭建好的itop4412驱动学习环境汇总 - 可直接下载使用

linux-4.14.2内核 链接 itop4412_linux_official 说明 直接clone下仓库,查看README.md文件获取更多信息。 uboot-2017.11 链接 itop4412_uboot_official 说明 经我测试发现采用官方编译方法后的uboot无法正常采用fastboot烧写文件系统,这里推荐使用官方所给的编译完成的bin文件,目录为:g...

Jason_416的博客 831

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深度学习工具包 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&#39;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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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, &#39;Too big error&#39;);```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(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【北京迅为】iTOP-4412全能版使用手册-第六十六章 USB驱动专题

USB 通信的整个通信流程,在初始化进入 probe 之后,都是以 urb 为核心,urb 的处理流程为:创建 urb、初始化 urb(中断 urb,块 urb,控制 urb,同步 urb)、提交 urb、完成 urb、销毁 urb。除去具体的 USB 外部设备,像 USB 主控制器、USB ROOT HUB, USB HUB 等等都是属于 USB 内部设备,USB 内部设备的驱动实现,是不需要驱动工程师做的,这些工作在原厂提供的代码中都是支持的,甚至是 linux 官方的驱动中都是支持这些功能的。

BeiJingXunWei的博客 1256

iTOP-4412开发板资料更新:基于Ubuntu 22.04的嵌入式Linux系统移植实战

嵌入式Linux系统移植是连接硬件与上层应用的核心技术,其关键在于构建稳定、可复现的开发环境。该过程通常遵循从Bootloader引导、内核配置与裁剪到根文件系统构建的完整链路,涉及交叉编译工具链、设备树(Device Tree)等基础概念。稳定的工具链(如Linaro GCC)与长期支持(LTS)内核版本是保障系统可靠性的工程实践要点。本次针对经典ARM Cortex-A9平台iTOP-4412的资料系统性更新,正是基于这一技术框架,解决了旧有资料因工具链过时、依赖缺失导致的环境搭建难题。通过提供适配现代

weixin_30666401的博客 411

【北京迅为】iTOP-4412全能版使用手册-第六十八章 U-boot基础知识

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、陀螺仪、CAN总线、RS485总线、500万摄像头等模块,稳定运行Android 4.0.3/Android 4.4操作,系统通用Linux-3.0.15+Qt操作系统(QT支持5.7版本),Ubuntu版本:12.04,接口智能分配 方便好用。 第五部分 L

BeiJingXunWei的博客 980

arch linux arm下载_移植Linux-5.4+内核到4412开发板

前言ITOP-4412开发板被Linux官方支持,所以我们在4412上学习新的内核是非常方便的,本文作者是4412精英群8群一位技术高手,接下来,我们一起来欣赏下他的表演。环境说明OS版本Ubuntu 20 LTS交叉编译环境配置~$ sudo apt install gcc-arm-linux-gnueabihf ~$ sudo apt install flex ~$ sudo apt inst...

weixin_39765209的博客 380
上一篇: openssl/opensslv.h: No such file or directory
下一篇: Unable to mount root fs via NFS
ComputerInBook
博客等级 码龄19年 1168粉丝 464原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值