嵌入式

如何开发自己的嵌入式系统

走远了吗. 提交于 2019-12-29 19:22:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 多数Linux系统是在PC平台上运行,然而Linux作为嵌入式系统也是非常稳定的。本文描绘了一个嵌入式系统的概览,并展示嵌入式系统产品是如何使用Linux的。 嵌入式系统比摩西还老的故事 电 脑用于控制设备或嵌入系统的历史几乎电脑自身的历史一样长。在通讯领域,六十年代晚期,电脑被用于电子电话交换机,称为“存储程序控制”系统。“电脑”这 词那时并不普遍,存储程序指内存装有程序和例程信息。存储控制逻辑,而不是将其固化在硬件中,在当时确实是突破性的。今天,我们认为它本来就应如此。 那时的电脑是为每一个应用而定制的,按今天的标准,它们是一些不正常的、由奇怪的特殊指令和I/O设备集成在一部电脑中。 微处理器通过提供构建大系统模块的小型、低成本、CPU引擎改变了这一切。它提出了外设通过总线联接的固定硬件架构及称为编程的一般编程模型。 软件也随着硬件提出。最初,编写和测试软件只有简单的编程开发工具。每个项目实际运行的软件通常来自于草稿的修改。编程常用汇编语言或宏语言,因为编译器常常有缺陷和缺乏完善的调试工具。软件构建模块和标准化库只是到了七十年代才流行起来的概念。 嵌 入式系统的商品化操作系统在1970年代后期才出现,许多是用汇编语言写成的,并且只能用于特定的微处理器,当微处理器被淘汰时,它的操作系统除非为新处 理器重写

利用软件工具开发嵌入式Web应用

久未见 提交于 2019-12-29 19:16:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 越来越多的嵌入式设备将添加Web浏览功能,而支持Web功能的嵌入式处理器可以简化这类设备的设计。本文分析了嵌入式Web功能的特点,并详细描述了使用软件工具开发嵌入式Web应用的设计要点。 XML(可 扩展标记语言)正在迅速成为嵌入式系统与应用之间的首选接口技术。我们有许多方法可以实现带XML功能、支持Web浏览的嵌入式设备,从软件到专用硬件。 最简单的方法可能是完全用外部软件执行Web处理,尽管从消耗的处理能力考虑,这种方法的成本也最高。在这种方法中,设计师有可能要利用诸如微软 Windows CE等嵌入式操作系统的性能。 然而,对于资源受限的嵌入式项目,设计师将发现一种更有效的方法是直接用硬件实现Web支持功能。可供选择的解决方案包括全32位处理器+Web服务器,以及兼具低功耗和高数据吞吐量特性的混合解决方案等。 目 前,大部分主要的嵌入式架构都提供Web支持,包括Z80、MIPS、ARM和X86等。由于市面上存在数千种不同的嵌入式IC,因此设计师需要进行调 研:有些芯片只需要软件,而其它芯片常常需要一块外插卡来处理网络连接。当把实现Web支持功能所需的最重要的硬件元件---以太网控制器集成到芯片上 时,这样的解决方案具有最低的成本。Zilog公司的eZ80 Acclaim微控制器正是这样一种方案。 eZ80

Spring Boot 嵌入式Web容器

梦想的初衷 提交于 2019-12-28 17:53:54
文章目录 前言 1、起源 2、容器启动流程解析 2.1、获取应用类型 2.2、容器启动流程 3、加载 Web 容器工厂 4、总结 前言 最近在学习Spring Boot相关的课程,过程中以笔记的形式记录下来,方便以后回忆,同时也在这里和大家探讨探讨,文章中有漏的或者有补充的、错误的都希望大家能够及时提出来,本人在此先谢谢了! 开始之前呢,希望大家带着几个问题去学习: 1、Spring Boot 嵌入式Web容器是什么? 2、整体流程或结构是怎样的? 3、核心部分是什么? 4、怎么实现的? 这是对自我的提问,我认为带着问题去学习,是一种更好的学习方式,有利于加深理解。好了,接下来进入主题。 1、起源 在当今的互联网场景中,与终端用户交互的应用大多数是 Web 应用,其中 Java Web 应用尤为突出,其对应的 Java Web 容器发展至今也分为 Servlet Web 容器和 Reactive Web 容器,前者的使用率大概占比是百分之九十左右,其具体的实现有 Tomcat 、 Jetty 和 Undertow ;而后者出现较晚,且技术栈体系并未完全成熟,还有待时间验证可行性,它的默认实现为 Netty Web Server 。其中的 Servlet 规范与三种 Servlet 容器的版本关系如下: Servlet 规范 Tomcat Jetty Undertow 4.0 9.X

嵌入式Linux驱动学习之路(三)u-boot配置分析

有些话、适合烂在心里 提交于 2019-12-25 14:19:21
u-boot配置流程分析   执行make tiny4412_config后,将会对u-boot进行一些列的配置,以便于后面的编译。   打开顶层目录下的Makefile,查找对于的规则tiny4412_config。   TINY4412对应的规则是%_config %_config:: unconfig  @$(MKCONFIG) -A $(@:_config=)   在Makefile中%为通配符,代表任意长度的任何字符,因此%_config就匹配到 tiny4412_config。   双::表示强制执行下面的命令。   先执行依赖 unconfig,删除以前的配置。 unconfig: @rm -f $(obj)include/config.h $(obj)include/config.mk \ $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \ $(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep $(@:_config=)使用了替代引用规则,所谓替代引用规则为 $(variable:search=replace) :号后为搜索字符串,=号后为用于替代的字符串。 $@为目标,也就是 tiny4412_config,搜索字符串为"_config"

工程师深度:嵌入式项目开发的 Git & GitHub 实用教程

早过忘川 提交于 2019-12-24 18:14:55
https://www.mianbaoban.cn/mp/a10371.html?utm_source=EETC%20Forum%20Alert&utm_medium=Email&utm_campaign=2019-12-20 工程师深度:嵌入式项目开发的 Git & GitHub 实用教程 工程师深度:嵌入式项目开发的 Git & GitHub 实用教程 嵌入式ARM 2019-12-17 09:35384浏览0评论12点赞 本文授权转载自公众号Mculover666,博主拥有同名CSDN博客 一、为什么需要版本控制? 1. 为什么需要版本控制 在我们每个人独立开发项目的时候,都会不知不觉的用到版本控制,只是我们并不知道“版本控制”这个名词,没有过多的在意~ 比如我要做一个数字电压表的项目,该项目要实现的功能是 采集0-5V电压并显示在OLED屏幕上 ,其芯片选型如下: 主控芯片: STC89C52RC ; AD芯片: ADC0832 ; 显示模块: 0.96'OLED(IIC) ; 首先使用公板(开发板)开发软件程序,大致开发流程如下: 编写STC89C52RC的串口驱动程序, 实现串口发送功能 ,用于后期调试; 编写ADC0832的驱动程序, 实现采集电压值并通过串口发送功能 ; 编写OLED的驱动程序, 实现电压值实时显示功能 ; 所以项目文件夹安排如下: 不经意间

2018-2019-1 20175304 20175303 20175327 20175335 实验一 开发环境的熟悉

冷暖自知 提交于 2019-12-17 10:31:42
2018-2019-1 20175304 20175303 20175327 20175335 实验一 开发环境的熟悉 实验目的: 熟悉Linux开发环境;学会Linux开发环境的配置和使用;使用Linux的arm编译。 实验过程: 实验一-1-交叉编译环境-(使用自己笔记本电脑) 1.安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe” 2.解压老师提供的software目录中的“Ubuntu1204.rar” 3.用VMWare打开Ubuntu,用户名:linux,口令:1 4.建立实验目录"mkdir linux_20175304_20175303_20175327_20175335" 5.在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名 #include <stdio.h> int main(){ printf("HelloWorld!\n"); printf("20175304_20175303_20175327_20175335\n"); return 0; } 1.考bocsd目录中的脚本armc.sh, 分别用gcc和交叉编译器arm-none-linux-gnuenbi-gcc编译hello.c,用gcc编译的可执行文件命名linuxhello:gcc

ARM嵌入式——制作根文件系统并使用NFS挂载运行。

﹥>﹥吖頭↗ 提交于 2019-12-15 09:02:56
制作根文件系统并使用NFS挂载运行。 上位机准备: 准备busybox,安装menuconfig所需依赖的库: sudo apt-get install build-essential sudo apt-get install libncurses5 sudo apt-get install libncurses5-dev 在busybox中执行make menuconfig Linux Module Utilities ---> //按N键去除选项(insmod/lsmod/rmmod精简版命令) [*] Simplified modutils (NEW) 去除以上选项,立马出现完整版的命令选项: [*] insmod (NEW) │ │ [*] rmmod (NEW) │ │ [*] lsmod (NEW) [*] Pretty output (NEW) [*] Blacklist support │ │ [*] modprobe (NEW) │ │ [*] depmod (NEW) 保存退出 注意:目前busybox提供的命令已经足够使用 修改Makefile进行交叉编译: vim Makefile +164 //修改为指定的交叉编译器。 vim Makefile +190 //修改为ARCH=arm。(指定架构) 保存退出 正式进行编译: make make install

Linux操作系统主要用途有哪些?细分三大应用领域!

巧了我就是萌 提交于 2019-12-14 05:41:09
  操作系统,是我们生活中最常接触的,也是大家都比较了解的。不过你知道操作系统具体分为哪几种吗?常见的就是Windows系统,其实除此之外还有Linux、Unix系统,今天特地跟大家聊聊关于Linux操作系统的事情。   Linux因为稳定、开源、免费、安全、高效的特点,发展非常快速,在服务器市场占有率超过80%,随着云计算的发展,Linux在未来有着非常好的发展。   Linux操作系统主要用途是什么?分为以下三大应用领域:   1、Linux作为企业级服务器的应用:Linux系统可以为企业架构WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理服务器、路由器等,不但使企业降低了运营成本,同时还获得了Linux系统带来的高稳定性和高可靠性,且无须考虑商业软件的版权问题。   2、嵌入式Linux系统应用领域:由于Linux系统开放源代码,功能强大、可靠、稳定性强、灵活而且具有极大的伸缩性,再加上它广泛支持大量的微处理体系结构、硬件设备、图形支持和通信协议,因此,在嵌入式应用的领域里,从因特网设备(路由器、交换机、防火墙,负载均衡器)到专用的控制系统(自动售货机,手机,PDA,各种家用电器),LINUX操作系统都有很广阔的应用市场。特别是经过这几年的发展,它已经成功地跻身于主流嵌入式开发平台。   3、个人桌面Linux应用领域:所谓个人桌面系统

FPGA学习及设计中的注意事项

浪子不回头ぞ 提交于 2019-12-10 04:34:01
FPGA 学习及设计中的注意事项 1. 基础问题    FPGA 的基础就是数字电路和 HDL 语言,想学好 FPGA 的人,建议床头都有一本数字电路的书,不管是哪个版本的,这个是基础,多了解也有助于形成硬件设计的思想。 在语言方面,建议初学者学习 Verilog 语言, VHDL 语言语法规范严格,调试起来很慢, Verilog 语言容易上手,而且,一般大型企业都是用 Verilog 语言。    2.EDA 工具问题   熟悉几个常用的就可以的,开发环境 QuartusII ,或 ISE 就可以了,这两个基本是相通的,会了哪一个,另外的那个也就很 Easy 了。功能仿真建议使用 Modelsim ,如果你是做芯片的,就可以学学别的仿真工具,做 FPGA 的, Modelsim 就足够了。综合工具一般用 Synplify ,初学先不用太关心这个,用 Quartus 综合就 OK 了。    3. 硬件设计思想问题   对于初学者,特别是从软件转过来的,设计的程序既费资源又速度慢,而且很有可能综合不了,这就要求我们熟悉一些固定模块的写法,可综合的模块很多书上都有,语言介绍上都有,不要想当然的用软件的思想去写硬件。    4. 学习习惯问题    FPGA 学习要多练习,多仿真, signaltapII 是很好的工具,可以看到每个信号的真实值,建议初学者一定要自己多动手