嵌入式

Qt/Embedded for Linux 应用开发案例

你。 提交于 2019-11-29 15:55:16
一、开发环境的构建 1.下载Qt源代码,包括桌面版和嵌入式版 如4.7.4版:qt-everywhere-opensource-src-4.7.4.tar.gz qt-everywhere-opensource-src-4.7.4[embedded].tar.gz 解压缩到当前目录:tar -xzvf qt-everywhere-opensource-src-4.7.4.tar.gz 2.编译安装桌面版和嵌入式版 桌面版一般为默认配置安装:./configure ; sudo make; sudo make install; 嵌入式版安装作为开发用,也一般可以为默认安装,但必须指定目标类型与主机类型 (1) 首先需要指定目标类型,利用现有的或者修改、添加目标类型 a.进入mkspecs/qws/文件夹中:cd mkspecs/qws b.找到你的目标类型文件夹并且拷贝一份:cp linux-arm-g++ linux-omapl138-g++ -a c.进入你的目标文件夹中以修改qmake.conf配置文件,主要是修改交叉编译器: cd linux-omapl138-g++;gedit qmake.conf 修改文件中的如下内容以符合你的交叉开发环境: # modifications to g++.conf QMAKE_CC = arm-none-linux-gnueabi-gcc

嵌入式Linux之定时器中断

非 Y 不嫁゛ 提交于 2019-11-29 14:57:38
定时器(timer0)中断步骤: 设置timer0时钟 Timer input clock Frequency = PCLK / {prescaler value+1} / {divider value} =50000000/(99+1)/16=31500 设置timer0初值 加载初值,启动timer0 设置为自动加载并启动 来源: https://blog.csdn.net/weixin_43413538/article/details/100833161

[转帖]SPARC简介

萝らか妹 提交于 2019-11-29 10:55:29
https://www.cnblogs.com/chaohm/p/5674886.html 1. 概述 SPARC(Scalable Processor ARChitecture,可扩展处理器架构)是SUN公司在1985年提出的体系结构标准,它基于1980年到1982年间加州大学伯克利分校关于Berkeley RISC的研究成果,并由一个独立、非盈利组织SPARC Internationa负责SPARC架构标准的管理和开发认证,是国际上流行的RISC(Reduced Instruction Set Computer,精简指令集)微处理器体系架构之一。 Sun在被甲骨文收购前将UltraSPARC T2 开源 ,任何机构或个人均可研究或开发基于SPARC架构的产品,如东芝、富士通、Aeroflex、ESA(Europen Space Agent)等都在此架构上开发出了自己的SPARC微处理器。 2. 特点 SPARC微处理器(基于SPARC架构的微处理器)的显著特点就是它的 可扩展性 ,从笔记本到超级计算机上的微处理器均可采用SPARC架构。1987年由SUN和TI公司合作开发的微处理器,称为“Sparc”,是业界出现的第一款有可扩展性功能的微处理器。 “Sparc”用于Sun-4计算机中,它的推出为SUN奠定了其在高端微处理器发展中的领先地位。在服务器领域,以 性能卓越

嵌入式--程序的可移植性考虑

北战南征 提交于 2019-11-28 22:22:09
参考:华清远见官网的免费下载资源 程序的可移植性考虑   结合嵌入式Linux 实例来讲解嵌入式开发在可移植性方面需要考虑的问题。 1. 字长和数据类型   能够由机器一次完成处理的数据称为字,不同体系结构的字长通常会有所区别,例如,现在通用的处理器字长为32 位。在嵌入式Linux中,为解决体系结构不同时的字长问题,存在两种数据类型,a)不透明数据类型 b)长度明确的数据类型 程序中用typedef声明的新类型属不透明数据类型,而int属于长度明确的数据类型。 2. 数据对齐    对齐是内存数据与内存中的相对位置相关的话题。如果一个变量的内存地址正好是它长度的整数倍,它就 被称作是自然对齐的。例如,对于一个32 位(4 个字节)类型的数据,如果它在内存中的地址刚好可以被4 整除(最低两位是0),那它就是自然对齐的。数据对齐的内存在访问时效率要高于数据不对齐的内存。目前大多数体系都会采用数据对齐。 编写可移植性高的代码要避免对齐问题,保证所有的类型都能够自然对齐。 3. 字节顺序   字节顺序是指一个字中各个字节的顺序,有大端模式和小端模式。大端模式是指在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。小端模式是指与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。ARM 体系结构支持大端模式(big

三种方法的优先级

不问归期 提交于 2019-11-28 19:57:49
有的小伙伴问了,如果有一种情况:对于同一个元素我们同时用了三种方法设置css样式,那么哪种方法真正有效呢?在右边编辑器就出现了这种情况 1、使用 内联式 CSS设置“超酷的互联网”文字为 粉色 。 2、然后使用 嵌入式 CSS来设置文字为 红色 。 3、最后又使用 外部式 设置文字为 蓝色 (style.css文件中设置)。 但最终你可以观察到“超酷的互联网”这个短词的文本被设置为了 粉色 。因为这三种样式是有优先级的,记住他们的优先级: 内联式 > 嵌入式 > 外部式 但是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面。如右代码编辑器就是这样,<link href="style.css" ...>代码在<style type="text/css">...</style>代码的前面(实际开发中也是这么写的)。感兴趣的小伙伴可以试一下,把它们调换顺序,再看他们的优先级是否变化。 其实总结来说,就是 --就近原则(离被设置元素越近优先级别越高) 。 但注意上面所总结的优先级是有一个前提:内联式、嵌入式、外部式样式表中css样式是在的相同权值的情况下,什么是权值呢?在后面的 小节中会讲解到。 index.html <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text

ECU嵌入式软件开发基础之大小端知识

心已入冬 提交于 2019-11-28 19:43:36
一. 结论 大小端是在很多嵌入式底层驱动开发中经常会遇到的实际问题,对于大小端来说结论很简单,就是高位在低地址的是大端,高位在高地址的是小端。 具体的请看下面一个实际的例子: 其中对于int类型的变量a赋值为0x11223344,如果是大端模式的话其中0x11存储的地址是在低地址,如果是小端的话则是在高地址 二. 背景 如果知道了上面的内容好像这篇博文就可以结束了,下面还是就大小端的一些背景做点介绍。 大小端的起源其实是 来源: https://www.cnblogs.com/51mcu/p/11423731.html

嵌入式css样式,写在当前的文件中

爷,独闯天下 提交于 2019-11-28 19:27:28
嵌入式css样式,写在当前的文件中 现在有一任务,把下面代码中的“超酷的互联网”、“服务及时贴心”、“有趣易学”这三个短词文字字号修改为18px。如果用上节课我们学习的内联式css样式的方法进行设置将是一件很头疼的事情(为每一个<span>标签加入sytle="font-size:18px"语句),本小节讲解一种新的方法嵌入式css样式来实现这个任务。 嵌入式css样式,就是可以把css样式代码写在<style type="text/css"></style>标签之间。如下面代码实现把三个<span>标签中的文字设置为红色: <style type="text/css"> span{ color:red; } </style> 嵌入式css样式必须写在<style></style>之间,并且一般情况下嵌入式css样式写在<head></head>之间。 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>嵌入式css样式</title> <style type="text/css"> span{ color:red; } </style> </head> <body> <p><span>超酷的互联网</span>

嵌入式软件开发必看书籍推荐(C/C++、linux、软件开发)

我与影子孤独终老i 提交于 2019-11-28 19:23:02
1. C/C++ 《C陷阱与缺陷》 《C专家编程》 《C程序设计语言》 《C与指针》 《C语言深度剖析:解开程序员面试笔试的秘密》 《c++程序设计》 《C++ primer plus》第六版 《Effective C++》 《C++ STL标准程序库开发指南》 《C++ 标准模板库编程实践》 2. Linux 2.1 应用程序设计 《Linux程序设计》 《UNIX环境高级编程》 2.2 驱动开发 《Linux设备驱动程序》 Jonatban Corbet 《Linux设备驱动开发详解》 宋宝华 2.3 内核 《Linux内核设计与实现》 Robert Love 《深入理解LINUX内核》 DanielP. Bovet 2.4 其它 《鸟哥的Linux私房菜 基础学习篇》 《gnu make manual 中文版》 《shell从入门到精通》张春晓 3. 嵌入式开发 《ARM嵌入式系统基础教程》 周立功 《嵌入式系统开发之道 菜鸟成长日志与项目经理的私房菜》 邱毅凌 《μC/OS-Ⅱ嵌入式实时操作系统》 邵贝贝 《圈圈教你玩USB》 《嵌入式系统设计与实现》 《基于嵌入式实时操作系统的程序设计技术》 4. 软件开发 《自己动手构造编译系统:编译、汇编与链接》 《程序员的自我修养》 《程序员修炼之道》 《编程珠玑》 《数据结构 C语言版》 《人月神话》 《人件》 5. 网络通信

DE1-LINUX运行

孤街浪徒 提交于 2019-11-28 15:49:54
搭建交叉编译环境,即安装、配置交叉编译工具链。在Ubuntu环境下编译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到目标机上。 交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。对于交叉开发的工具链来说,在文件名称上加了一个前缀,用来区别本地的工具链。例如,arm-linux-表示是对arm的交叉编译工具链,arm-linux-gcc表示是使用gcc的编译器。除了体系结构相关的编译选项以外,其使用方法与Linux主机上的gcc相同,所以Linux编程技术对于嵌入式同样适用。不过,并不是任何一个版本拿来都能用,各种软件包往往存在版本匹配问题。例如,编译内核时需要使用arm-linux-gcc-4.3.3版本的交叉编译工具链,而使用arm-linux-gcc-3.4.1的交叉编译工具链,则会导致编译失败。 gcc和arm-linux-gcc的区别就是gcc是linux下的C语言编译器,编译出来的程序在本地执行,而arm-linux-gcc用来在linux下跨平台的C语言编译器,编译出来的程序在目标机(如ARM平台)上执行,嵌入式开发应使用嵌入式交叉编译工具链。 命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS vendor - 工具链提供商 os -