嵌入式ARM 本公众号主要传播嵌入式相关技术内容,包括不仅限于C/C++语言编程、ARM、Verilog、VHDL、Linux、单片机MCU、驱动硬件、项目开发。 嵌入式ARM的文章应该很多同学都有直接或者间接的看到过,这个是一个纯技术的公众号,传播嵌入式技术,涉及的时间广
作者:曹国辉,湖南量子教育嵌入式培训讲师 嵌入式技术是各种电子产品的核心技术,也是工业4.0、远程医疗、3D打印等新兴产业的核心技术,具有广阔的发展前景。很多计算机、电子信息类专业的学生都想把嵌入式开发作为自己的职业目标,但是因为嵌入式涉及的知识
随着计算机网络技术、移动通信技术、多媒体技术的快速发展,无线监控系统以其便捷、实用、安装方便等优点被广泛应用于军事、工业、农业等场合,更走进了人们的日常生活,给人们的生活带来了便捷的信息化服务。
嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。
[导读] 前面的文章有提到linux启动的第一个进程为init,那么该进程究竟是如何从内核启动入口一步一步运行起来的,而该进程又有些什么作用呢?做嵌入式Linux开发,有必要对这些概念了解清楚。本文基于ARM体系的内核启动做出解析。 跳转内核前基本准备 参考./Do
01 问题 首先确认下,我们这里讲的单片机主要是指51、STM32、MSP430、PIC、LPCxx等各种单片机开发工作。而嵌入式主要是指嵌入式linux软件开发,也就是硬件上基于嵌入式ARM、MIPS等平台,软件上基于linux系统的驱动开发、应用开发等工作。 围绕单片机和嵌入式
也许你会注意到,现在做嵌入式的人中,做linux研究的人远比做WinCE的人多,很多产家提供的资料也是以linux为主。我一直很难理解,其实WinCE的界面比linux的界面好看多了,使用起来也很方便,更为重要的是,WinCE的开发和Windows下的开发基本一样,学起来简单
前言 这篇文章简单我们来一起梳理嵌入式Linux的一些知识,方便于一些想跟我一样想要由单片机进阶到嵌入式Linux的朋友做一些参考学习。 现在随着嵌入式Linux的教程不断增多,相信应该有不少学单片机的朋友开始折腾这个了吧~ 嵌入式Linux学哪些东西 1、认识Linu
嵌入式Linux要学哪些?一些人总在寻思,怕走了弯路,又怕学的东西离企业需求远。那么今天就请华清远见高级讲师曹大神告诉你,9点浅析嵌入式学习步骤。下面是他本人亲笔。1、要学习Linux,首先要会用,如
本文主要提出了一种可应用于监控组态软件的实时数据库的实现方法。通过对实时数据库在组态软件中的地位与作用的分析,结合嵌入式Linux在实时多任务方面的特性,设计并实现了利用多种存储介质构造实时数据库存储结构,并给出了描述实时数据模型的数据结构与访问数据库的通用函数接口。
面向嵌入式 Linux 的 DPM 是一种正在发展的技术。由于全球开放源代码领域的开发人员所做的贡献,它的核心技术正在进步,但实际应用仍然必须清除一系列“路障”。
提出一种以ARM+DSP等为硬件基础的嵌入式Linux数控系统设计方案,将数控系统按实时性分为实时模块和非实时模块,采用运动控制芯片DSP保证实时性,ARM-Linux则运行实时性要求不高但功能复杂的数控任务.数控系统硬件上采用主从式双CPU结构,软件架构包括界面层、实时层和非实时层.该方案充分利用了Linux的健壮、开源、应用广泛和运动
依据多连通域图像四邻域跟踪原理设计了嵌入式Linux下的细胞特征提取算法.本算法解决了嵌入式下图像处理API封装不够完善以及硬件资源欠缺的问题.实验结果表明,该算法能够比较准确地提取细胞的周长、面积等特征参数.该算法移植至移动嵌入式设备中解决了传统PC机携带不便的难题.
自由开源软件在嵌入式应用上,受到青睐,Linux日益成为主流的嵌入式操作系统之一。随着摩托罗拉手机A760、IBM智能型手表WatchPad、夏普PDA Zaurus等一款款高性能“智能数码产品”的出现,以及Motolola、三星、MontaVista、飞利浦、Nokia、IBM、SUN等众多国际顶级巨头的加入。
交叉编译的概念在第4章中已经详细讲述过,搭建交叉编译环境是嵌入式开发的第一步,也是必备的一步。搭建交叉编译环境的方法很多,不同的体系结构、不同的操作内容甚至是不同版本的内核,都会用到不同的交叉编译器,而且,有些交叉编译器经常会有部分的bug,这都会导致最后的代码无法正常地运行。因此,选择合适的交叉编译器对于嵌入式开发是非常重要的。
简单地说,Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序。通过这段程序,可以完成硬件设备的初始化,并建立内存空间的映射关系,从而将系统的软硬件环境带到一个合适的状态,为最终加载系统内核做好准备。
读者一定都听说过著名的OSI协议参考模型,它是基于国际标准化组织(ISO)的建议发展起来的,从上到下共分为7层:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。这个7层的协议模型虽然规定得非常细致和完善,但在实际中却得不到广泛的应用,其重要的原因之一就在于它过于复杂。
在Linux中的网络编程是通过socket接口来进行的。人们常说的socket是一种特殊的I/O接口,它也是一种文件描述符。socket是一种常用的进程之间通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且通过网络能够在不同机器上的进程之间进行通信。
在实际情况中,人们往往遇到多个客户端连接服务器端的情况。由于之前介绍的如connet()、recv()和send()等都是阻塞性函数,如果资源没有准备好,则调用该函数的进程将进入睡眠状态,这样就无法处理I/O多路复用的情况了。本节给出了两种解决I/O多路复用的解决方法,这两个函数都是之前学过的fcntl()和select()。
通过实现NTP协议的练习,进一步掌握Linux网络编程,并且提高协议的分析与实现能力,为参与完成综合性项目打下良好的基础。