大家好,又见面了,我是你们的朋友全栈君。 开发板:友善之臂smart210 操作系统:Ubuntu 12,04 交叉编译器:arm-none-linux-gnueabi gcc version 4.3.2 WIFI 模组:TP-LINK TL-WN725N 2.0
曾经是某见的教学总监,我带出来的学生也有大几千了,基本都从事linux相关开发工作。现在在各行各业也基本都是翘楚,有的都成公司技术主管,带领几十人上百人团队。
说明: 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、现在已经开始添加各种应用代码,争取早日发布,并且会制作教程文档。
计算机系统的运转是系统中软硬件共同努力的结果,没有硬件的软件是空中楼阁,而没有软件的硬件则只是一堆废铁。
上一篇博客实现了在ubuntu打开usb摄像头,也确认了 usb 摄像头支持 UVC,这节我们将 usb 驱动移植到荔枝派开发板上,并实现拍照的功能以及做 mjpeg-streamer 视频流服务器测试。
网上看了很多的嵌入式学习路线,有的比较片面,有的为了博人眼球东拼西凑,几乎把整个行业用得着用不着的技术都写上去了,没有侧重点,简直是劝退指南,还有的纯粹是打广告卖板子招生。
我最近写了很多microPython的程序,越写越回不到写C的日子。你说在这个背后是如何实现这一切的?为什么在烧录一个几百kb的bin文件之后就会获得这些魔法效果?我可不可以把这种魔法效果移植到别处呢?我找了很久,零零碎碎的,而且大多数文章都是适可而止,让我很难受。。。我想所有的一切都可以在源码中获得。我们将会在这个过程中学到什么:
通过前两篇文章的介绍,我们已经把linux内核移植到了tiny210上,但是看到的现象都是通过超级终端来观察的,下面了,我们介绍一下led灯的移植,给大家一个更直观的感受。这篇文章主要的内容如下:
问题背景 移植 Linux-4.9 或之前的内核版本下的 wifi 驱动到 Linux-5.4 内核版本时会出现编译和运行错误, 该 FAQ 主要用于帮助开发人员解决驱动移植出现的问题。
现针对TencentOS_tiny_EVB_MX这个,做一个简单的程序跳转demo分享出来。
该参赛作品基于全志V853开发板制作的一款类似眼镜外挂的小产品,可以对场景进行辅助识别,并通过云端交互实现物联网控制,进一步实现物联网与人机交互的融合。
在前面学习了Linux高级编程的基础上,开始对硬件正式有所交集,以前学习Linux可能只知道某些传感器的数据存放在哪个文件夹下,读取相应的数据就完事,大部分是应用层方面的实现,而不知道这些传感器的数据具体是怎么来的。学习了stm32单片机之后,与硬件打交道,离底层又更近了一步。
近来公众号增加了不少粉丝,我决定把我之前写的一些经验分享给新来的朋友,以下纯属个人的一些想法,如说得有不恰当的地方,我非常乐意接受各位大佬的批评指正,本人也会不断学习,谢谢各位大佬的支持!
先前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、蜂鸣器驱动新式实现。
视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519 本期视频教程为大家分享BSP驱动教程第10期,非阻塞式驱动设计思想,
因为树莓派本身就相当于一台电脑,所以我们可以在树莓派上编译内核或者应用程序,但是树莓派相较于台式机或者笔记本电脑,资源和速度还是有区别的,所以就需要建立交叉编译环境在台式机或者笔记本上安装交叉编译工具链,如果在树莓派本机上编译一个内核得几个小时才能编译完。所以安装交叉编译环境相当重要,是我们后面学习开发的一切保证。假设你已经安装好虚拟机和Ubuntu系统,当然也可以用其他版本的Linux系统。树莓派官方推荐交叉编译用乌班图,所以我们安装了乌班图的16.04长期支持版本,发布于16年四月。 虚拟机Virtul
全志平台Tina系统I2C struct 缺少class定义导致的probe失败等问题
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第68章 STM32H7的系统bootloader之USB
之前没有用过addr2line和gdb等内核调试工具定位问题代码,这里记录一下在将某个网络驱动从4.9内核移植到5.7内核时出现内核崩溃起不来的问题。
此方案使用HD-8MMN-CORE的核心板搭配TI公司的芯片SN65DSI86转换芯片实现。
SyterKit 是一个纯裸机框架,用于 TinyVision 或者其他 v851se/v851s/v851s3/v853 等芯片的开发板,SyterKit 使用 CMake 作为构建系统构建,支持多种应用与多种外设驱动。同时 SyterKit 也具有启动引导的功能,可以替代 U-Boot 实现快速启动
第二次写这类博客,之前还是求职期间写的面试之类的经历。下面是做高通安卓驱动的感言。 同一时候献给择职想做驱动的參考。
好工作可以让人轻松过上好生活,就像IT 行业,年薪20万的岗位比比皆是,但是,IT行业岗位多如牛毛,如何选择成了一个世纪难题,有人说JAVA好,编程语言里面排第一,用的最多,工作岗位也多。有人说嵌入式好,由于物联网也人工智能的发展,嵌入式未来势必会成为超级热门,选择Java好还是嵌入式好?下面我们就来了解一下IT技术领域中Java开发与嵌入式开发的特点、现状及未来。 Java开发的应用及特点 Java是Sun Microsystems公司1995年推出的一种面向对象的程序设计语言,应用于个人PC、数据中心、
当前采用的WIFI是360随身WIFI,这款随身WIFI所用的网卡芯片是 Ralink(雷凌科技) 的解决方案(在上篇文章里也有详细介绍),芯片型号为 MT7601。 如果在PC计算机上使用这款随身WIFI那自然是简单,官网下载个驱动安装插上就能使用。 如果是在嵌入式平台,自动的平台上使用,官网就没有现成的驱动下载了,这种情况下就需要针对WIFI编写驱动。当然,从0开始写确实困难,不过这款芯片官方提供了linux下的驱动源码,这就好办了。只需要下载下来,编译就能使用了。
E53接口标准的E取自扩展(Expansion)的英文首字母,板子的尺寸为5×3cm,故采用E53作为前缀来命名尺寸为 5×3cm 类型的案例扩展板,任何一款满足标准设计的开发板均可直接适配E53扩展板。
大家好,在上周的文章里面,给大家介绍了一个音视频项目,本周继续来分享音视频项目,之前说过,如果你不知道做什么功能开发嘛,因为接触的少;我突然想到,可以去参考市面上已经做出来的音视频产品,去看看他们有什么功能,我觉得这样,比你自己去网上找一些乱大街的项目好多了,当然前提做这些市面上音视频产品的功能,你需要一定的基础,这个是大前提,但是你能够通过自己摸索做出这些功能出来,对自己实践是非常大的提升。
任何Android设备最底层的硬件包括 显示屏, wifi ,存储设备 等. Android最底层的硬件会根据需要进行裁剪,选择自己需要的硬件.
6) bool __blk_end_request_cur(struct request *rq, int error)
fastboot是一种用于Android设备上的刷机协议,便于系统开发者快速烧录系统。随着AOSP的发展,谷歌在Android Q版本引入了super动态分区功能,实现system、vendor和product等分区大小的灵活配置,避免了系统升级带来频繁修改分区表的问题。同时引入了手机端侧fastboot模式实现super分区的擦写,之前版本的fastboot刷写功能通常实现在bootloader模式(一般由SOC厂家提供原始实现),新引入的fastboot模式实现在recovery系统中集成了fastbootd二进制程序,在recovery系统中可复用系统的usb、网络等驱动,降低了开发难度,具有更好的可移植性(目前各个厂家的bootloader方案各有不同),一定程度降低了厂家的工作量。
2.感觉自己之前看的太细了,有些东西记不住。你的pdf+正点原子+项目 完全看完不太现实。
之前发了LCD调试笔记,大家很感兴趣,所以这次再来一篇:六轴传感器ICM20608驱动移植笔记,大家还需要什么移植笔记?可以留言。我们尽量满足。
如上图,问题都是出在fs/yaffs2/下,很多error都讲述:调用的成员名,在struct mtd_info结构体里没有定义.
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第69章 STM32H7的系统bootloader之串口I
1、树莓派是一款基于Linux系统的单板机电脑。它由英国的树莓派基金会所开发,目的是以低价硬件及自由软件刺激在学校的基本的计算机科学教育。树莓派被赋予的希望是,能够帮助全世界的孩子学习编程,并能够了解计算机是如何工作的; 2、树莓派只要加上USB键盘、鼠标、HDMI屏幕就立马变成一个小型电脑,用于学习编程(Linux系统),系统中预装多种编程软件和环境,方便使用;并且利用树莓派,可以搭建多种应用:路由器、智能小车、智能家居、服务器等,这些都有成熟的开源代码; 3、树莓派跟windows虚拟机跑linux操作系统有什么区别? 1)对于系统使用,本质上没啥区别,都是Linux操作系统罢了,主要有以下三点区别; 2)软件上,树莓派预装很多开发软件,方便使用者直接用,不用经过繁琐的软件安装; 3)硬件系统不同,树莓派拥有丰富的硬件外接接口,用来对接其它硬件做试验;比如树莓派(作为主机)与Aduino(AVR内核的卡片机,作为从机)配合工作; 4)基于树莓派设备基础的社区生态比较完善,有很多开发者在树莓派软硬件基础上设计很多有用的工具和项目; 4、Raspberry的几种操作系统: 1)NOOBS 2)Raspbian 3)Ubuntu Mate 4)Snappy Ubuntu Core; 注意:采用不同的操作系统,本身的软硬件资源是不同的,视乎应用而选定; 5、常见的Linux系统: 1)商业版:red hat 、CentOs、suse; 2)开源版:debian ubuntu ; 3)系统的选择取决于你拥有的硬件,和商业应用。 6、树莓派上常用的脚本语言:Shell(Linux系统管理,运行软件:Bash/Dash/Tsch/LXTerminal)、Python(跨平台管理:服务器、网站管理); 7、树莓派自2012年推出以来全球销量已达1250万块,世界第三大计算平台。
飞凌 OK113i-C 全志T113-i开发板板载一个RTL8723du wifi/蓝牙二合一模块,板子出厂已经移植好了WIFI驱动但是蓝牙驱动没有,所以这篇文章我们主要做蓝牙驱动的移植和功能验证。
最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命令就可以完成非常复杂的功能,可是我们有没有想过,为什么会有这样的效果?如果没有去追问,只是机械地完成,并且看到实验效果,这样做其实并没有真正的掌握系统移植的本质。
在众多嵌入式操作系统中,Linux目前发展最快、应用最为广泛。性能优良、源码开放的Linux具有体积小、内核可裁减、网络功能完善、可移植性强等诸多优点,非常适合作为嵌入式操作系统。一个最基本的Linux操作系统应该包括:引导程序、内核与根文件系统三部分。
某些情况下,我们可能会因为间歇性的脑残和手贱导致把粤嵌开发板GEC210的系统给搞死,比如在某神秘原因的驱使下,众目睽睽地删掉系统的关键性目录,然后目光呆滞地面对被格掉的板子,束手无策,默默流泪。
物联网近几年的发展非常的火热,各种智能设备的出现使得智能家居的发展越来越快。虽然发展火热,却没有统一的标准,所以智能家居监控系统需要一种稳定统一的解决方案。
FunnyPi-T113是一款基于全志T113-S3/D1S处理器的完全开源多功能开发板,设计FunnyPi最初的目的是想借此T113卡片电脑来满足日常学习,并结合T113高效能和低功耗的特点,来满足像语音助手,智能家居屏幕、桌面摆件屏、博客服务器等嵌入式应用的开发需求。
Vx7默认只提供源码,而没有二进制的系统库了,可能是包含的组件太多了,太庞大了。因此,不管要用什么Target,都得先编译源码。
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开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。
自去年 11 月苹果自研 M1 芯片落地以来,业界开发者纷纷对其”打起了主意“,有人称 M1 芯片是否真的如传闻那样打破了 x86 的垄断,不如实测一番;有人打破砂锅问到底,从技术研发、设计、趋势上深度地解析了一下;也有人不甘于现状,开启了未知的探索之路,即在搭载 M1 芯片的电脑上探索移植 Linux 的解决方案。
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99710 第5章 RL-USB协议栈移植(MDK AC6) 本章
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99710 第4章 RL-USB移植(MDK AC5) 本章教程为大家
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99710 第5章 RL-USB移植(MDK AC6) 本章教程为
领取专属 10元无门槛券
手把手带您无忧上云