计算机系统的运转是系统中软硬件共同努力的结果,没有硬件的软件是空中楼阁,而没有软件的硬件则只是一堆废铁。
通过前两篇文章的介绍,我们已经把linux内核移植到了tiny210上,但是看到的现象都是通过超级终端来观察的,下面了,我们介绍一下led灯的移植,给大家一个更直观的感受。这篇文章主要的内容如下:
问题背景 移植 Linux-4.9 或之前的内核版本下的 wifi 驱动到 Linux-5.4 内核版本时会出现编译和运行错误, 该 FAQ 主要用于帮助开发人员解决驱动移植出现的问题。
在前面学习了Linux高级编程的基础上,开始对硬件正式有所交集,以前学习Linux可能只知道某些传感器的数据存放在哪个文件夹下,读取相应的数据就完事,大部分是应用层方面的实现,而不知道这些传感器的数据具体是怎么来的。学习了stm32单片机之后,与硬件打交道,离底层又更近了一步。
该参赛作品基于全志V853开发板制作的一款类似眼镜外挂的小产品,可以对场景进行辅助识别,并通过云端交互实现物联网控制,进一步实现物联网与人机交互的融合。
先前Lady我已经带着大家浏览了一下NVIDIA 官网关于Jetson的开发资料,目的就是希望大家在开发过程中能以官网资料为准。 实际上NV官网的资料更新频率还是比较高的,今天我们来看看3月份更新的
小熊派开发板使用的LCD屏幕为1.3寸的TFT彩屏,色彩深度16bit,分辨率240*240,使用 SPI 接口与 MCU 之间通信。
本期视频我们把这种实现思路做的说明,然后讲解下我们的驱动代码实现。 下次的GPIO应用实战视频中,移植到全新的器件上进行说明,使用杜邦线洞洞板搭建的,不使用我们自己的开发板,做实际的驱动移植魔改实战。 视频(1080p): https://www.bilibili.com/video/BV1y3411p7NN 本期视频主要分为如下几个部分: 第1部分: 1、硬件设计部分。 (1)按键硬件设计。 (2)无源蜂鸣器硬件设计。 2、阻塞式和非阻塞式编程思想。 (1)阻塞式设计效果,代码举例测试。 (2)外部中断式设计效果,代码举例测试。 (3)非阻塞式设计。 3、按键FIFO实现。 (1)FIFO设计思路,看教程文档。 (2)测试按键效果,感性认识下。 (3)调试状态FIFO变化,调试看FIFO (4)代码说明 4、蜂鸣器驱动新式实现。
曾经是某见的教学总监,我带出来的学生也有大几千了,基本都从事linux相关开发工作。现在在各行各业也基本都是翘楚,有的都成公司技术主管,带领几十人上百人团队。
视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519 本期视频教程为大家分享BSP驱动教程第10期,非阻塞式驱动设计思想,
因为树莓派本身就相当于一台电脑,所以我们可以在树莓派上编译内核或者应用程序,但是树莓派相较于台式机或者笔记本电脑,资源和速度还是有区别的,所以就需要建立交叉编译环境在台式机或者笔记本上安装交叉编译工具链,如果在树莓派本机上编译一个内核得几个小时才能编译完。所以安装交叉编译环境相当重要,是我们后面学习开发的一切保证。假设你已经安装好虚拟机和Ubuntu系统,当然也可以用其他版本的Linux系统。树莓派官方推荐交叉编译用乌班图,所以我们安装了乌班图的16.04长期支持版本,发布于16年四月。 虚拟机Virtul
全志平台Tina系统I2C struct 缺少class定义导致的probe失败等问题
之前没有用过addr2line和gdb等内核调试工具定位问题代码,这里记录一下在将某个网络驱动从4.9内核移植到5.7内核时出现内核崩溃起不来的问题。
SyterKit 是一个纯裸机框架,用于 TinyVision 或者其他 v851se/v851s/v851s3/v853 等芯片的开发板,SyterKit 使用 CMake 作为构建系统构建,支持多种应用与多种外设驱动。同时 SyterKit 也具有启动引导的功能,可以替代 U-Boot 实现快速启动
大家好,又见面了,我是你们的朋友全栈君。 开发板:友善之臂smart210 操作系统:Ubuntu 12,04 交叉编译器:arm-none-linux-gnueabi gcc version 4.3.2 WIFI 模组:TP-LINK TL-WN725N 2.0
近来公众号增加了不少粉丝,我决定把我之前写的一些经验分享给新来的朋友,以下纯属个人的一些想法,如说得有不恰当的地方,我非常乐意接受各位大佬的批评指正,本人也会不断学习,谢谢各位大佬的支持!
好工作可以让人轻松过上好生活,就像IT 行业,年薪20万的岗位比比皆是,但是,IT行业岗位多如牛毛,如何选择成了一个世纪难题,有人说JAVA好,编程语言里面排第一,用的最多,工作岗位也多。有人说嵌入式好,由于物联网也人工智能的发展,嵌入式未来势必会成为超级热门,选择Java好还是嵌入式好?下面我们就来了解一下IT技术领域中Java开发与嵌入式开发的特点、现状及未来。 Java开发的应用及特点 Java是Sun Microsystems公司1995年推出的一种面向对象的程序设计语言,应用于个人PC、数据中心、
E53接口标准的E取自扩展(Expansion)的英文首字母,板子的尺寸为5×3cm,故采用E53作为前缀来命名尺寸为 5×3cm 类型的案例扩展板,任何一款满足标准设计的开发板均可直接适配E53扩展板。
大家好,在上周的文章里面,给大家介绍了一个音视频项目,本周继续来分享音视频项目,之前说过,如果你不知道做什么功能开发嘛,因为接触的少;我突然想到,可以去参考市面上已经做出来的音视频产品,去看看他们有什么功能,我觉得这样,比你自己去网上找一些乱大街的项目好多了,当然前提做这些市面上音视频产品的功能,你需要一定的基础,这个是大前提,但是你能够通过自己摸索做出这些功能出来,对自己实践是非常大的提升。
网上看了很多的嵌入式学习路线,有的比较片面,有的为了博人眼球东拼西凑,几乎把整个行业用得着用不着的技术都写上去了,没有侧重点,简直是劝退指南,还有的纯粹是打广告卖板子招生。
我最近写了很多microPython的程序,越写越回不到写C的日子。你说在这个背后是如何实现这一切的?为什么在烧录一个几百kb的bin文件之后就会获得这些魔法效果?我可不可以把这种魔法效果移植到别处呢?我找了很久,零零碎碎的,而且大多数文章都是适可而止,让我很难受。。。我想所有的一切都可以在源码中获得。我们将会在这个过程中学到什么:
之前发了LCD调试笔记,大家很感兴趣,所以这次再来一篇:六轴传感器ICM20608驱动移植笔记,大家还需要什么移植笔记?可以留言。我们尽量满足。
说明: 1、为了搭建这个框架,的确是耗费了太多精力,最早是打算制作手持版,USB版和以太网版,三个版本,并且还要写上位机软件,但是发现工作量太大了。之后就改变了策略,开始朝着通吃版研究,即一个APP固件实现所有方式,当前已经做到物联网网关,手持版,USB版和以太网版四合一,并且不再需要设计上位机,直接远程访问即可。 2、贯穿这个全家桶方案的关键是emWin的多屏展示,网络协议栈的多网口实现和CMSIS-Driver。 (1)通过多屏方案实现了手持,USB和网络都可以访问界面。 (2)通过网络协议栈的多网口方式实现了USB和网路都可以访问,无需再单独配套一个应用。 (3)CMSIS-Driver在这次设计中起到了承上启下的作用。 3、几乎每个组件的添加都是一部血泪史,以emWin为例,为了验证最高性能版,为H7-TOOL的240*240分辨率的SPI接口IPS屏制作了六种方案进行性能测试,工作量是何其大。 类似V5和V4的通用移植方案。 (1)硬件SPI方案 (2)软件SPI方案 类似V6的Lin驱动移植方案。 (1)硬件SPI方案 (2)软件SPI方案 (3)SPI DMA方案,需要更新的时候调用更新,整个屏幕刷新,一次18ms (4)SPI DMA方案,不间断实时刷新,类似ADC DMA,一直在传输,每秒55帧的速度 其实工作量更大的还在后面,像网络和USB的调试就更加繁琐了,特别测试多网口供时,坑太多了。 4、RTX5全家桶方案作为H7-TOOL的番外篇,与我们当前已经发布APP固件并不冲突。 5、现在已经开始添加各种应用代码,争取早日发布,并且会制作教程文档。
本文记录在Linux服务器更换Nvidia驱动的流程。 需求 Linux 服务器上的 1080Ti 显卡驱动为387, CUDA 9,比较老旧,需要更换成可以运行pytorch 1.6的环境。 确定当前显卡型号\操作系统版本\目标环境 查看显卡信息,确定自己的显卡型号: $ nvidia-smi 或 $ lspci | grep -i vga 输出的设备信息并不是我们熟悉的型号,比如我的输出为: 02:00.0 VGA compatible controller: NVIDIA Corpo
现针对TencentOS_tiny_EVB_MX这个,做一个简单的程序跳转demo分享出来。
Vx7默认只提供源码,而没有二进制的系统库了,可能是包含的组件太多了,太庞大了。因此,不管要用什么Target,都得先编译源码。
首先要确定主板和CPU都支持虚拟化技术,在BIOS将VT-d、VT-x设置成enable。
Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的变化而没有驱动逻辑的变化,驱动开发者只需要修改设备树文件信息,不需要改写驱动代码。比如在ARM Linux内,一个.dts(device tree source)文件对应一个ARM的machine,一般放置在内核的"arch/arm/boot/dts/"目录内,比如exynos4412参考板的板级设备树文件就是"arch/arm/boot/dts/exynos4412-origen.dts"。这个文件可以通过$make dtbs命令编译成二进制的.dtb文件供内核驱动使用。
Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。
上一篇博客实现了在ubuntu打开usb摄像头,也确认了 usb 摄像头支持 UVC,这节我们将 usb 驱动移植到荔枝派开发板上,并实现拍照的功能以及做 mjpeg-streamer 视频流服务器测试。
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
俗话说的好,光说不练假把式,上一个系列 LiteOS内核实战教程 中讲述了内核中任务如何管理、如何使用信号量同步多个任务的运行,如何用互斥锁保护共享资源,如何申请分配动态内存空间。
当你在个人电脑或服务器上运行 Linux 时,有时需要识别该系统中的硬件。lspci 命令用于显示连接到 PCI 总线的所有设备,从而满足上述需求。该命令由 pciutils 包提供,可用于各种基于 Linux 和 BSD 的操作系统。
本站点博客将逐步迁移至http://ninghechuanblogs.cn/ 本篇要分享的是基于Xilinx FPGA的视频图像采集系统,使用摄像头采集图像数据,并没有用到SDRAM/DDR。这个工程使用的是OV7670 30w像素摄像头,用双口RAM做存储,显示窗口为320x240,而且都知道7670的显示效果也不怎么样,这是一次偶然的机会我得到的资源,便在basys3、zybo、国产FPGA PGT180H上移植成功,总体的显示效果也是可能达到7670应有的标准,7670可以说是最
给我的Ubuntu安装显卡驱动时,需要查看显卡型号,因为我的是Windows/Ubuntu双系统,一开始想到的是去windows查看,然后下载驱动,安装成功。对于只有Linux系统的情况,总结方法如下:
本文主要介绍基于全志科技T3(ARM Cortex-A7)国产处理器的8/16通道AD采集开发案例,使用核芯互联CL1606/CL1616国产AD芯片,亦适用于ADI AD7606/AD7616。CL1606/CL1616与AD7606/AD7616软硬件兼容。
支持 exFAT 格式的移动硬盘。exFAT 于 macOS, Windows 可读写;文件和分区的大小,可到 128PB 。
最近,有一些用户在使用Kali Linux操作系统时遇到了一个很常见的问题:开机后无法进入图形化界面,只能看到命令行界面。本文将介绍可能导致此问题出现的原因,并提供解决方案。
当你在个人电脑或服务器上运行 Linux 时,有时需要识别该系统中的硬件。lspci 命令用于显示连接到 PCI 总线的所有设备,从而满足上述需求。
由于近期要做一个装置 ,想着把装置做的好看一点,就打算使用 GUI 来做一个信息的相关显示,之前听说过一款比较轻量级的图形库,也就是 lvgl,手头又正好有一块搭配屏幕的野火指南者开发板,单片机型号是 STM32F103VET6,Flash 为 512KB,RAM 为 64KB,屏幕为 3.2 寸电阻触摸屏,我们在来看一下运行 lvgl 这个 GUI 需要的资源,所需资源如下图所示:
本文主要介绍基于全志科技T3(ARM Cortex-A7)处理器的8/16通道AD采集开发案例,使用核芯互联CL1606/CL1616AD芯片,亦适用于ADI AD7606/AD7616。CL1606/CL1616与AD7606/AD7616软硬件兼容。
此方案使用HD-8MMN-CORE的核心板搭配TI公司的芯片SN65DSI86转换芯片实现。
来源:马哥教育链接:https://mp.weixin.qq.com/s/wwBt5H68tHmf_lHXrd_eSQ本文是 Linus 写于 1991年10月10日LINUX是什么?LINUX是一个免费类unix内核,适用于386-AT计算机,附带完整源代码。主要让黑客、计算机科学学生使用,学习和享受。它大部分用C编写,但是一小部分是用gnu格式汇编,而且引导序列用的是因特尔086汇编语言。C代码是相对ANSI的,使用一些GNU增强特性(大多为 __asm__ 和 inline)。然而有很多可用于386电脑的unices,他们大部分要花很多钱,而且不附带源码。因此他们是使用计算机的理想选择,但是如果你想了解他们如何工作,那是不可能的。也有一些 Unix 是附带源码的。Minix,Andrew S. Tanenbaum编写的学习工具,已经在大学中作为教学工具使用了很多年了。BSD-386系统是附带源码的,但是有版权限制,而且要花很多钱(我记得起始价格为$995)。GNU内核(Hurd)将会是免费的,但是现在还没有准备好,而且对于了解和学习它们来说有点庞大。LINUX与Minix是最相似的,由于它很小而且不是非常复杂,因此易于理解(嗯…)。LINUX是基于Minix编写的,因此有相当多的相同点,任何Minix黑客在使用LINUX的时候都感觉非常熟悉。不过,没有在项目中使用Minix代码,因此Minix版权没有限制到这个新系统。它也是完全免费的,而且它的版权非常宽松。因此不像使用Minix,它不需要几兆字节大小的区别。LINUX版权虽然是免费的发布版,我还是从以下几个方面限制了LINUX的使用:你可以自由复制和重新发布源码和二进制,只要是:1. 完全开源。因此不能单独发布二进制,即使你只修改了一点。2. 你不能从发布版获取利益。事实上甚至“装卸费用”都是不被接受的。3. 你要保持完整的适当版权。· 根据需要你可能会修改源码,但是如果你发布了新系统的一部分(或者只有二进制),必须将新的代码包含进去。· 除了不包含版权的代码之外,你可能会做一些小的修改。这由你来定,但是如果能将相关内容或者代码告诉我,将不胜感激。对任何使用或者扩展系统的人来说,这应该足够宽松而不会引起任何担忧。如果你有朋友真的不想要源码,只想要一个能运行的二进制,你当然可以给他而不用担心我会起诉你。不过最好只在朋友之间这么做。LINUX运行所需的硬件/软件LINUX是在一个运行Minix的386-AT上开发的。由于LINUX是一个真正的操作系统,而且需要直接与硬件交互来做一些事情,你必须有一个非常相似的系统来让他顺利运行:· 386-AT(PS/2之类是不同的,不能正常运行)· VGA或者EGA屏幕硬件。· 标准AT硬盘接口,IDE盘可以运行(实际上我用的就是这个)。· 正常实模式BIOS。一些机器看起来是用虚-86模式运行启动程序,而且在这样的机器LINUX不会启动和正常运行。LINUX会发展成为一个自给自足的系统,现在需要Minix-386才能正常运行。你需要Minix让初始化启动文件系统,和编译OS二进制。在那之后LINUX是一个自给自足的系统,但是为了做文件系统检查(fsck)和修改之后重编译系统,推荐使用Minix。获取LINUXLINUX现在可以使用匿名ftp从‘nic.funet.fi’的‘/pub/OS/Linux’目录获取。这个目录包含操作系统的所有源码,还有一些二进制文件,因此你可以真正使用系统了。注意!二进制大多是GNU软件,而且版权比LINUX的严格(GNU非盈利性版权)。因此你不能在不发布他们源码的情况下重新发布他们,可以在/pub/GNU中找到。关于GNU非盈利性版权,从任何GNU软件包了解更多。此目录中各类文件如下:· linux-0.03.tar.Z–系统的完全源码,16位tar压缩文件格式。· Linux.tex–这个文件的LATEX源码。· bash.Z–在LINUX下运行的bash二进制文件。这个二进制文件应该放到预留给LINUX文件系统中的/bin/sh下(参见installation)。· update.Z–更新二进制文件,要放到/bin/update。· gccbin.tar.Z–GNU cc二进制文件需要由一个可运行的编译器。这个tar压缩包含有编译器,加载器,汇编程序和支持程序(nm,strip等)。它还包含一个小型的库,可用于大部分程序。· include.tar.Z–让gcc运行的必要include文件。· unistd.tar.Z–unistd库程序的源码(即系统调用接口)。通过这个你可以使用系统独立库源码编译一个大一些的库。· utilbin.tar.Z–各种GNU工具的二进制文件,包括GNU的fileutils,make和tar。也包含克隆emacs的uemacs。· README, RELNOTES-
最开始的启动流程是这样的,bootloader 启动kernel,kernel跑完挂载文件系统,
对于修改时间,我们在安装kali时选择相关的时区即可,只要kali联网,时间会自动更新。如果你不小心设置的错误的时区,或者坐飞机去美利坚搞渗透,那么这时你需要修改你的时间了。 查看当前时区信息
本文主要介绍基于TLT3F-EVM评估板的双屏异显开发案例,案例位于“4-软件资料\Demo\base-demos\display_test”目录下,本案例同时支持TFT LCD + CVBS OUT双屏异显方案。
领取专属 10元无门槛券
手把手带您无忧上云