• Skyfire浏览器可以在Android上使用了

    Skyfire浏览器可以在Android上使用了

    Skyfire浏览器终于在Android上提供了。Skyfire是一款免费下载的移动浏览器,可为您提供与PC相同的网络浏览体验。 Skyfire在Windows Mobile和Symbian平台上已经使用了一段时间,并声称它是唯一支持所有主要Web 2.0标准(Ajax,Javascript和Flash 10)的移动浏览器(尽管请注意,目前还没有Android的Flash)。 XDA论坛成员戈兹森发布了这一消息在前面。关于Beta测试版的第一个鼓舞人心的报告是,Skyfire的压缩比“Opera Mini”小,而且降低速度很快。

    时间:2020-09-29 关键词: skyfire Android 浏览器

  • 2.0版Android平台的实际Beta版推出

    2.0版Android平台的实际Beta版推出

    XDA论坛成员Psp888发布了2.0(试用版)android的相关信息,现在可以使用了! 流行的浏览器与Cupcake(1.5),Doughnut(1.6)和Eclair(2.0 / 2.1)兼容,并且已被证明可与Nexus One,Droid Eris,Motorola Droid和HTC Hero设备一起使用。 一些成员对缺少对Flash游戏和应用程序的支持表示失望,但是,似乎Skyfire当前正在集中精力启用Flash视频播放。尽管如此,Nexus One论坛中的普遍反馈是Skyfire 2.0适用于Beta版。为什么不下载并自己看看呢? 目前只在北美和英国提供,您可以免费下载天华2.0测试版。

    时间:2020-09-29 关键词: beta skyfire Android

  • 您可以在Android设备上更改系统字体

    您可以在Android设备上更改系统字体

    由XDA论坛成员openback开发的Type Fresh,使您可以在已扎根的 Android设备上更改系统字体。 此应用仅适用于具有root访问权限的系统。它提供4个主要功能: 将选定的TTF字体应用于系统 将系统字体备份到/ sdcard / Fonts 从/ sdcard / Fonts恢复备份的字体 将您拥有的所有TTF文件放在/ sdcard / Fonts中,以方便访问。 应用程序完成后,必须重新启动每个系统每个。每个ROM更新包含所有字体对话框,因此您可以轻松地使用备份工具创建首选字体表。

    时间:2020-09-29 关键词: root 字体 Android

  • Windows将被微软放弃,沦为Linux子系统

    Windows将被微软放弃,沦为Linux子系统

    Windows10已经发布了两个版本的Linux Windows系统(“WSL”),即Linux二进制代码在Windows环境下工作。 开源软件爱好者Eric S Raymond开始认真审视微软的做法,包括微软即将面向Linux发行Edge浏览器。 Raymond思考,个人电脑市场业务在下滑,微软真正的摇钱树是Azure业务,而且他爆料Azure运行在Linux上的机器比Windows还多。 Raymond大胆提出,从利润最大化这样的冷血角度看,微软将最终放弃Windows的开发。当然,出于过渡考虑,Windows或许会降级为Linux的子系统。 Raymond还表扬了Proton这款模拟仿真软件,它可以在Linux上运行Steam为Windows发行的游戏,“虽然现在不够完美,但快了”。 换句话说,雷蒙德认为Linux最终会赢得办公室,他甚至得出结论,微软并没有结束Windows,而是选择了Linux来接管。

    时间:2020-09-29 关键词: Windows Linux raymond

  •  Note8/X8 不再适配 Android 10 系统

    Note8/X8 不再适配 Android 10 系统

    9 月 28 日消息 ,魅族发布公告称,停止为 Note8/X8 适配 Android 10 系统。 魅族在公告中称,X8、Note8 在适配 Android 10 底层升级的进程中出现较多严重问题,例如 IMEI 和基带丢失、蓝牙无法启用、指纹功能失效、系统稳定性较差等,多数问题无法得到完善的解决,不能带来正常的使用体验,经慎重评估决定停止这两款机型适配 Android 10 底层工作,由此带来的困扰还请谅解。 魅族还称,已对这两款机型的内测版和体验版用户推送 Flyme8.1.5.0A 稳定版的修复版本,后续仍会继续对这两款机型提供相应的 Flyme 系统更新和应用更新支持。 魅族 Note8/X8 是魅族在 2018 年发布的两款手机,发布时预装 Android 8 系统。

    时间:2020-09-29 关键词: 魅族 note8 android10

  • QQ音乐推首个音乐平台iOS桌面组件

    QQ音乐推首个音乐平台iOS桌面组件

    9月28日,QQ音乐版10.3.9正式发布,ios14音乐平台第一个版本发布。 根据官方的介绍,iOS 14用户只需更新QQ音乐,打开小组件库弹窗,选择并添加QQ音乐小组件即可。 有了这个小组件,桌面操作一目了然,听歌识曲、最近播放、我喜欢、每日30首等常用功能一触即达。 ? 具体操作上,用户轻敲小组件上的相应部分,即可快速播放近期歌曲,听歌识曲等操作。 此外,还可通过组件中的“每日30首”功能,发现符合个人口味的专属歌单。 上个月,腾讯音乐公布2020年第二季度财报,截至6月30日,总营收为人民币69.3亿元,同比增幅为17.5%。 腾讯音乐第二季度在线音乐付费用户人数达到4710万人,与上年同期相比增长51.9%;在线音乐服务的月度ARPPU(每付费用户平均收入)为人民币9.3元,与上年同期的人民币8.6元相比增长8.1% 值得注意的是,腾信音乐包括Q音乐、酷狗音乐、酷音乐和酷库四大热门音乐产品。

    时间:2020-09-29 关键词: 音乐 桌面 ios14

  • Android 12从第三方商店安装应用将更简便

    Android 12从第三方商店安装应用将更简便

    尽管Android 11还没有更新一些手机,但谷歌期待着向android12进发。 官方透露,基于开发者的反馈,在明年的Android 12系统上,将允许更容易地从第三方商店安装APP。 谷歌称,统计发现,大多数Android用户会在手机上装至少两个应用商店。 关于如何改善体验的细节,谷歌则未予披露。一般而言,使用三方APP商店的问题,一是安全性不足,二是谷歌无法从中抽成。 另外,谷歌在同一篇博文中还重申了开发者不能绕过Play商店的计费系统,目前大约有3%的存量APP是“漏网之鱼”,包括Netflix、Spotify等。 因此,这三家商店仍然需要从游戏商店下载,他们必须支付足够的费用才能进入谷歌的系统,并更容易地支付保护费。

    时间:2020-09-29 关键词: app 应用商店 android12

  • 浅谈基于MMU 32位嵌入式操作系统

    浅谈基于MMU 32位嵌入式操作系统

    本发明涉及一种适用于动态充电系统的模块化设计技术,有限的资源和能力它是能够成功地描述所使用的技术核心(I)和(E)的描述模块,并参考字段表作为基准和最终结论。 随着平安彩票AG捕鱼娱乐技术的飞速发展,嵌人式设备应用越来越广泛,复杂度也越来越高。这使得硬件和软件设计比例发生了很大变化,软件开发的比重越来越大。然而传统嵌入式开发过程中需要将应用与操作系统编译链接成一个整体,然后下载到目标机上运行。如果在调试过程中发现问题,需要重新编链接然后重复下载运行的过程。这样的开发流程周期长而且繁琐,已经越来越不适应快速市场化的需要。 为了适应多样化的嵌入式应用和加快嵌入式系统的开发过程,除了需要可靠的基础平台软件的支持,如带有文件系统、网络协议栈的RTOS和配套的集成开发环境,更重要的是需要可以动态扩展的系统平台。近年来,新一代的嵌入式操作系统已经开始使用动态扩展技术:将基本系统(包括操作系统以及其他共享功能调用库)和应用程序开发分开处理,支持模块更新和动态加载技术。很多主流的传统嵌入式操作系统厂商,如windRiver、Green HilIs、Lynxworks,都推出了面向航空航天、基础通信设备等领域的高可靠、高性能的RTOS版本,支持应用和系统组件的动态加载和更新;而在消费平安彩票AG捕鱼娱乐领域,相关的操作系统厂商,如symbian、Palm、Microsoft,更是积极推出了具有相应功能的操作系统,在新一代移动设备上得到了广泛应用。 为了成为可动态扩展系统平台,大部分嵌入式操作系统需要使用动态加载技术。总的来说,动态加载是指应用或者系统在运行过程中需要使用某模块的服务,于是通过一系列预定的动作将指定模块加载到系统中,让调用者继续顺利工作。它实现的关键就是加载与动态链接技术。因为加载和动态链接互相依赖,关系紧密,所以将两者放在一起进行讨论。 1 加载与动态链接机制 加载主要负责将模块程序从二级存储设备(比如硬盘或者Flash)搬移到指定内存空间,并且将模块交由系统加载器统一管理。 程序链接分为静态链接、加载时链接和运行时链接。静态链接就是将程序和它运行所需的全部库链接成一个执行文件。它的优点是可以独立运行、速度快,但是它链接生成的代码尺寸比较大。加载时链接是指程序在编译链接时不会把它用到的库链接到执行程序中,而是在它被加载器加载时才解析执行文件,依次把用到的库装载到系统中让其运行。它的优点是程序本身代码量减小,但运行时程序占的内存并没有减小,同时增加了加载器的工作量。动态链接是加载时链接的进一步发展,它是指将库的加载过程延迟到程序运行时执行。这种方式不会给程序引入额外的代码,也不会增加加载器的开销,只有当应用真正使用某库时才会加载该库,减少了不必要的空间占用。它的缺点是可能会有一些运行开销。 嵌入式系统中动态加载和普通的动态链接概念类似,但是嵌入式系统中的加载链接器有其自身的特点:它是交叉加载,主机端做一部分工作,比如程序的重定位,执行文件的解析等等;而目标机端相对简单,主要做模块搜索定位和空间分配,以及指定物理地址或者映射虚拟地址让其运行。一部分嵌入式系统不支持虚拟内存,应用和内核共享存储空间。当系统加载了多个应用到系统中时,一般需要使用overlap技术来解决内存空间有限的问题,即是当多个应用的运行地址空间冲突时,加载器会冻结当前暂时不运行的应用,让新加载的应用使用指定的地址空间,PairnOS中就采用了这样的设计。对于支持虚拟内存的嵌入式系统,加载器的工作被大大简化,每个应用都有可以运行在同样的虚拟的空间,不需要加载器为其重定位或使用overlap技术,因此提高了工作效率。Vxworks6.O,WinCE都使用了这种设计。两种方式在不同的领域都有比较多的应用。 文中提出的模块动态加载技术是基于支持MMU(Memory Management Unit)的32位嵌入式操作系统,采用了加载与动态链接技术。使用该技术构建的嵌人式系统面向高端市场,特别是对系统可靠性、安全性要求很高的领域。在DeltaOS新一代高可靠的版本HAR(High Available Reliable system)的研发过程中,即成功地实现了基于该设计的加载器LambdaLoader,达到了预期的性能要求。 2 模块动态加载的设计 2.1 设计思路 首先定义一些概念:模块、目标程序、接口函数地址表和调用库(call Library)。 ①模块,主要是指加载器加载的一个单位,并且这里模块的概念主要是强调它是为应用或者系统提供一系列服务的提供者。 ②目标程序,是指模块的使用者。它可以是应用,也可以是另一个模块。 ③接口函数地址表(文中也称之为模块重定位表),指在模块中有一个数组表,该数组表的内容是该模块对外提供的函数接口的地址。 ④调用库,是供模块调用者链接使用的专有库。它与相关模块一一对应,将封装了的模块接口供目标程序使用。除此以外,它还有一个运行时才确定的模块重定位表地址指针和模块动态查找定位的代码。 如果在系统中要实现动态加载,首先需要一种模块定位机制,使得调用者能够在系统中动态定位需要的模块,其次是要能让模块与目标程序动态的关联在一起,协调工作。为了解决这些问题,需要一系列相关的设计:规定模块的声明方式;简化目标机端模块地址空间定位的工作;重定位表的机制等等。基于这样的设计,系统可以比较顺利地实现动态加载。模块动态加载的工作流程如图l所示。这里描述的主要是目标机端的工作。 2.2 模块的声明 模块首先要定义它的相关属性。这里使用模块声明文件来完成这个工作。模块声明文件中需要定义:模块名字、版本、对外提供的API接口。在系统编译模块程序后,会调用一系列的script代码。这些script会根据模块名字查找模块对应的模块声明文件,并根据该文件生成供模块调用者使用的调用库和与模块一起链接的附加库。 附加库包含系统后台通过调用script生成的接口函数地址表和模块注册函数。在每个模块的初始化函数中,会调用一个模块的注册函数(该函数主要工作是向系统注册模块的名字和接口函数地址表地址)。当模块被加载时,初始化函数会被系统调用,向系统注册模块信息,此后模块交由加载器统一管理。 2.3 调用库 每个模块在提供一个模块重定位表的同时,必须提供一个与之对应的模块调用库。别的目标程序必须并且只能通过调用库来使用这个模块提供的服务。每个调用库都有一个存储本模块重定位表的地址指针变量。该变量在模块被目标程序第一次使用时会被初始化为相应模块重定位表地址。 在模块第一次被目标程序使用即开始动态加载过程时,首先运行的是调用库的库初始化代码(Library initialcode),它通过指定的系统调用来初始化库中的模块重定位表基地址指针。此后每次目标程序使用模块提供的函数接口时,都通过以下公式得到该接口的实际地址:模块接口实际地址=模块重定位表基地址+函数index%26;#215;4 在该公式中,函数index是指对应函数在模块重定位表中的数组下标值。因为根据模块声明文件生成的调用库中已经包含了每个函数的索引信息(index),同时在32位系统中需要乘以4得到准确的偏移量,所以当调用库中重定位表地址被初始化后,可以通过这样一个简单计算得到指定接口实际地址,完成函数调用。 当一个目标程序使用了模块,并正确动态加载后,其关系如图2所示。目标程序中链接了调用库,包含了函数跳转表和指向模块重定位表基地址的指针(ModuleBase);模块中则链接了附加库,包含了函数接口地址表(模块重定位表)。调用模块函数时,经过动态加载模块的过程以后,目标程序的模块重定位表基址指针指向了对应模块的函数接口表,然后函数调用就可以顺利进行了。 2.4 两级重定位表 在嵌入式领域,为了降低性能开销和增加确定性,目标机端加载器不会做程序重定位,而将相关工作在主机端完成,所以目标机端加载的所有程序都是绝对定位后的程序.为了实现系统动态扩展,必须使各个模块能够单独链接生成执行程序,并且运行时不用关心彼此的定位,这样即使一个模块被动态替换后也能同其他程序一起协调运行。这里通过两级重定位表机制来完成这个协调性的工作。 对于内核、操作系统组件模块或提供服务给其他目标程序使用的模块,要维护一张本模块提供的接口函数地址表(即模块重定位表,这里称之为二级重定位表)。为了保证本模块的向后兼容性,模块必须保证其接口函数在模块重定位表中的相对位置固定。即使今后不能提供这个接口函数,也需要将其保留,以保证同以前版本的二进制兼容性。 在模块的初始化代码中,模块通过系统调用向加载器注册这个模块重定位表的地址,注册时需提供模块名和模块重定位表的地址。加载器中管理着一个称为一级重定向表的表格。这个表的表项是“模块名”到“模块重定位表地址”的映射。因为这只是一个映射关系,所以各个模块对应的表项在一级表中的具体位置是可以改变的。 二级重定位表如图3所示。 使用两级重定位表的规则如下: ①模块可通过模块重定位表向其他目标程序提供接口函数; ②目标程序要使用别的模块提供的接口函数必须通过对应模块的调用库来实现; ③目标程序在使用别的模块提供的接口函数之前,必须通过加载器提供的系统调用服务获取对应模块重定位表来基地址初始化对方的调用库。 结 语 该设计实现了在嵌入式系统中的模块动态加载与更新,使得在嵌入式软件开发过程中,开发人员可以更有效的设计系统,共享资源,达到提高效率、产品快速市场化的目的。在基于DeltaOS的实现中,可以完成应用的任意加载卸载,系统组件的动态更新;多个应用可以共享一个全局的模块;一个应用可以同时使用多个模块等等。整个系统扩展性和灵活性大大提高,较好地满足了实际需要。但是设计中对容错性、健壮性的考虑还不够,在应用与模块的间接调用处理上还有优化的空间,所以在这些方面还需要进一步改进。

    时间:2020-09-29 关键词: 模块 嵌入式 mmu32

  • Linux系统实现YAFFS2文件系统存储

    Linux系统实现YAFFS2文件系统存储

    随着集成技术的发展和集成系统应用的日益广泛,对集成系统运行的需求也越来越大。因此,与硬盘相比,高性能数据的存储和管理变得越来越重要。flash等非易失性存储器的优点是体积小、体积小能源消耗。低地震容量和大NAND flash页面具有写入速度快,高容量和低容量成本。It适用于数据存储ES.Yaffs2U-boot和Linux没有正式用作支持NAND页的文件系统。结合flash和power的纸上集成电路系统,实现了nandeflash与Yaffs2文件系统的结合,为数据存储和存储提供了一个小型的智能平台正在处理系统存储程序的属性和NAND页上的Yaffs2数据存储类型如下所示描述。闪光是 啊。然后详细描述了系统迁移和文件系统生成过程,并对迁移结果进行了测试。 1 系统存储方案设计 某国产化设备用于取代随装多台套设备,除完成原设备的数据记录功能外,还需进行数据翻译、判读,数据分析处理,二维显示和三维动态复现等功能;同时,需存储装备长时间工作输出的所有原始数据信息,类似黑匣子功能,以供事后分析使用。具有程序量大,数据需实时存储,且数据存储量大的特点。板上存储设备包括SDRAM和FLASH,SDRAM为易失性存储器,作为程序的运行空间和记录数据的缓存空间;FLASH为非易失性存储器,用于存储系统软件程序和记录数据。 嵌入式系统中应用的FLASH主要有NORFLASH和NAND FLASH两种。NOR FLASH的块大小范围为64~128 KB,其容量一般为l~32 MB,可作为嵌入式设备的启动设备,适合于代码存储。NAND FLASH的块大小范围为8~64 KB,容量一般为8~512 MB,适合于数据存储。它们之间的主要差别有以下几点。 (1)速度。在写数据和擦除数据时,NANDFLASH支持整块擦写操作,其速度比NOR FLASH要快得多,两者相差近千倍;读取时,NAND FLASH要先向芯片发送地址信息进行寻址才能开始读写数据,而NOR FLASH的操作则是以字或字节为单位进行的,直接读取,所以读取数据时,NOR FLASH效率更高。 (2)容量和成本。NOR FLASH的每个存储单元与位线相连,增加了芯片内位线的数量,不利于存储密度的提高。在面积和工艺相同的情况下,NANDFLASH的容量比NOR FLASH要大得多,生产成本更低。 (3)易用性。NAND FLASH的I/O端口采用复用的数据线和地址线,必须先通过寄存器串行地进行数据存取,各个产品或厂商对信号的定义不同,增加了应用的难度;NOR FLASH有专用的地址引脚来寻址,较容易与其他芯片进行连接,另外还支持片上执行XIP(eXecute In Place),应用程序可以直接在FLASH内部运行,简化了产品设计。 (4)可靠性。由于FLASH的电器特性,在读/写数据过程中,会产生比特位反转,造成一位或几位数据错误。NAND FLASH位反转的几率比NOR FLASH高,在使用时需要使用EDC/ECC算法。NANDFLASH还可能会随机分布坏块。 (5)耐久性。FLASH由于写入和擦除数据时会导致介质的氧化降解,导致芯片老化,所以并不适合频繁地擦写,NAND FLASH的擦写次数是100万次,而NOR FLASH只有10万次。 基于以上分析,为了满足经常性的进行实时快速大容量数据存储和较长使用寿命的要求,采用NANDFLASH来存储操作系统和数据,其复杂操作、比特位反转和坏块等问题可以通过文件系统解决。NORFLASH因为出现位反转和坏块的几率小,并且读取速度快,用来存储启动程序,能保证正常启动系统的前提下提高设备反应时间。整个系统的存储空间分配如图1所示。 整个系统存储空间由SDRAM,NOR FLASH,NAND FLASH组成。其中,sDRAM分成程序空间(Prog Space)和数据空间(Data Space)。NORFLASH存储系统启动程序U-Boot;NAND FLAsH分成程序空间(Prog Space)和数据空间(Data Space),程序空间中固化存储Linux操作系统和YAFFS2文件系统及相应的应用程序,在U-Boot的控制下,通过页传输方式读入SDRAM程序空间中;数据空间中存储来自前端的原始数据,该数据在SDR-AM中打包,以页方式将数据写入NAND FLASH中,提高数据写入速度。 对小页NAND FLASH的文件系统支持已有比较多的编程实例可借鉴,而对本文使用的大页NANDFLASH的编程支持还没有完整的说明。因此,移植嵌入式操作系统,以建立对大页NAND FLASH支持的文件系统是该存储方案需解决的关键问题。 2 YAFFS/YAFFS2文件系统分析 目前广泛应用的嵌入式文件系统有JFFS/JFFS2(JournaIling FLASH File Systern) 和 YAFFS/YAFFS2(Yet Another FLASH File Syst-em)。JFFS/JFFS2文件系统主要针对NOR FLASH设计,在NAND FLASH上性能不佳。YAFFS/YAFFS2文件系统是专门针对NAND FLASH设计,其具有可写入、修改并能永久保存文件的特性,并提供了损耗平衡和掉电保护。与JFFS相比,它减少了一些功能,因此速度更快、占用内存更少。此外YAFFS自带NANDFLASH芯片驱动,并为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD和VFS,直接对文件进行操作。 YAFFS文件系统已发展为两个版本,YAFFS和YAFFS2。YAFFS版本只支持512 B的小页NANDFLASH。而YAFFS2作为YAFFS的升级版,在向下兼容小页NAND FLASH的同时也能够更好地支持2 KB的大页NAND FLASH。YAFFS2的性能与YAFFS相比有很大提高,表1为YAFFS,YAFFS2(512 B×8),YAFFS2(2 KB×8)三者性能比较,从测试结果可以看出,YAFFS2和2 KB大页NANDFLASH的结合更好地提高了存储器操作效率。 YAFFS2文件系统在设计时就充分考虑了大页NAND FLASH的结构,根据大页NAND FLASH以页面为单位存取的特点,将文件组织成固定大小的页,利用大页NAND FLASH提供的每个页面(2 112 B,其中前2 048 B存储数据)64 B的备用空间(SpareData,OOB)来存放ECC和文件系统的组织信息,这样不仅能够实现错误检测和坏块处理,还能够提高文件系统的加载速度。以三星公司的K9F1G08UOA的NANDFLASH为例,它的单片存储容量为128 MB,由1 024 block组成,每个块包含64 page,每个页均包含一个2 048 B的数据区和64 B的备用空间,总共包含2 112 B。结构如图2所示。 表2说明了YAFFS2文件系统数据在NANDFLASH的备用空间内的存储布局。 blockState:描述该块的状态。如果不是OxFF,就说明是坏块。相对应的是,所有正常的块,里面所有数据都是OxFF的。 chunkld:描述该页在一个文件内的索引,所以文件大小被限制在232×2 KB。chunkld为O,说明此页面保存的是文件头。不为O,说明是数据页面。文件内偏移量为0,即放在第一个页面的文件,其chunkId为1,后面的以此类推。 ObjectID:描述对象ID号,用来惟一标示一个文件。所以YAFFS2文件系统支持的文件总数限制在232个。 nBytes:记录该页面内的有效字节数。 blockSequence:记录着各块被分配出去的先后顺序,每分配出去一块,就加1。在YAFFS2文件系统建立的时候,块的扫描顺序就是由它决定的,而不是FLASH的物理介质顺序。在垃圾收集的时候也会以此作为参考之一,判断该块是否适合回收。 tagsEcc:Ecc,YAFFS Tags区域的ECC校验数据。 ECC:数据区的ECC校验数据。读/写数据区的数据时,每256 B生成3 B ECC校验和,一页面2 KB数据就会生成24 B的校验数据。 3 系统移植 此次开发采用宿主机+目标系统的开发模式。宿主机为PC+Fedora9,Fedora9安装在PC的虚拟机内。目标系统软硬件组成为目标板(CPU为S3C2440A)+U-Boot+嵌入式Linux,Linux版本为2.6.29.4。交叉编译工具为arm-linux-gcc-4.3.2。 选用嵌入式Linux系统是因为它有着技术上先进,健壮、安全;是多任务系统,支持ARM体系结构;源码开放,驱动程序及其他资源非常丰富,良好的可移植性等优点。嵌入式系统的移植从软件角度可以分为以下四个步骤。如图3所示。 (1)引导加载程序的移植,包括固化在固件(Fireware)中的boot代码和Bootloader两大部分。大多数嵌入式系统中并没有固件,Bootlo-ader是上电后执行的第一个程序。它主要用来初始化处理器及外设,然后调用Linux内核。 (2)嵌入式Linux内核移植。特定于嵌入式处理系统的定制内核以及内核的启动参数。内核的启动参数可以是内核默认的,或是由Bootlo-ader传递给它的。 (3)文件系统制作。包括根文件系统和建立于FLASH内存设备之上的文件系统。里面包含了Linux系统配置文件和运行应用软件所需要的库等。 (4)用户应用程序编写。特定于用户的应用程序,它所实现的功能通常就是设计该嵌入式系统所要达到的目标,它们也存储在文件系统内。 3.1 Bootloader移植 对于支持ARM架构的Bootloader有U-Boot,Vivi等。U-Boot(Universal Boot Loader)即通用Bootloader,是遵循GPL条款的开放源代码项目。它可以引导Linux,VxWorks,LynxOS等多种操作系统。支持PowerPC,x86,ARM等多种架构的CPU,具有丰富的设备驱动源码,如串口、以太网、SDRAM,FLASH等。系统采用U-Boot的版本为1.1.6,它已支持SMDK2410开发板,在其基础上进行修改。U-Boot 1.1.6中对NAND FLASH的支持有新旧两套代码,新代码在drivers/nand目录下,旧代码在driver/nand_legacy目录下。本次移植选用新代码,它移植自Lin-ux2.6.12,更加智能。移植过程分以下几步。 (1)根据具体输入时钟,修改时钟定义参数。SMDK2410开发板的默认时钟为12 MHz。 (2)依照实际开发板的内存地址分配情况修改lowlevel init.S文件。 (3)针对S3C2410,S3C2440 NAND FLASH控制器的不同,修改接口参数。 (4)仿照内核支持NAND FLASH的文件来编写片选函数。命令和控制函数,查询状态函数。 (5)根据具体NAND FLASH芯片设置时序参数。 (6)增加从NAND FLASH烧写,读取YAFFS2文件系统映像功能。 (7)修改Makefile文件,将新建文件编入U-Boot中。 在编写烧写YAFFS2文件系统映像的命令时,要注意YAFFS2文件系统映像里除了2 KB的数据外,后面还包括了64 B的OOB数据,所以映像文件大小是以2 112 B为单位。OOB中已经包含了ECC,在烧写时不需要再计算ECC校验码。烧写时,首先检查是否为坏块,是就跳过,然后写入2 KB的数据,最后写入64 B的OOB数据。还要增加对skipfirstblk参数的支持。使烧写YAFFS2文件系统映像时,跳过分区上第一个块,这是由YAFFS2文件系统特性决定的。 由于不使用ECC校验码,烧写过程中会不断提示以下信息: Writing data without ECC to NAND-FLASH is not reeom-mended 可以修改driver/mtd/nand/nand base.C文件的nand_write_page函数,将输出这条信息的命令去掉。 最后执行make XX_config和make all命令,生成的U-Boot.bin文件即可以运行与目标板上了。将它烧入NOR FLASH后启动,在串口工具中能够看到提示信息。输入nand info命令即可查看到NAND FLASH的信息,说明U-Boot识别出了NAND FLASH。 3.2 嵌入式Linux内核移植 目前Linux内核还没有正式支持YAFFS文件系统,所以需要通过补丁修改Linux内核,另外YAFFS文件系统也需要MTD设备驱动的支持。首先下载最新版本的2.6内核,这里以linux-2.6.29.4为例。尽管Linux 2.6并不是一个真正的实时操作系统,但其改进的特性能够满足系统响应需求。再下载YAFFS代码包。内有YAFFS和YAFFS 2两个文件夹。其中YAFFS已经不再维护,进入YAFFS2。文件夹内有patch-ker.sh补丁文件,使用以下命令将YAFFS2加入到Linux内核。 以上命令完成了三件事情: (1)修改内核fs/Kconfig。增加一行:source”fs/YAFFS2/Kconfig”。 (2)修改内核fs/Kconfig。增加一行:ojb-MYM(CONFIG_YAFFS_FS)+=YAFFS2/。 (3)在内核fs/目录下创建YAFFS2目录;将YAFFS2源码目录下面的Makefile.kernel文件复制为内核fs/YAFFS2/Makefie;将YAFFS2源码目录的Kconfig文件复制到内核fs/YAFFS2目录下;将YAFFS2源码目录下的*.C*.h文件复制到内核fs/YAFFS2目录下。 进入内核目录,修改makefile,并对内核进行默认配置进行修改,使其支持本开发板。 结合U-Boot信息修改NAND FLASH分区,使其两者结构大小保持一致。注意分区的大小要以128 kB为单位。 根据具体NAND FLASH芯片特性,修改tacls,twrph0,twrphl的值。 修改arch/arm/tools/math-types文件,使其Linux内核的机器号与Bootloader传递来的参数一致。建立好交叉编译环境,在环境变量PATH中添加交叉编译工具路径。或者直接在makefile文件内添加修改也可以。使用make s3c2410_defconfig命令,将2410的默认配置文件写到当前目录下的.config。使用make me-nuconfig命令配置内核模块的功能,要选中MTD和YAFFS2支持。在Boot options选项中增加以下语句。 使用make zImage命令,生成是zlmage映像文件。再用mkimage工具制作ulmage,uImage是U-Boot专用的映像文件,它在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。 3.3 制作文件系统 嵌入式Linux系统都需要构建根文件系统,构建根文件系统的规则在文件系统层次标准(Filesystem Hi-erarchy Standard,FHS)文档中。首先建立根文件系统目录和动态链接库,然后使用Busybox工具可以生成根文件系统所需的bin,sbin,usr目录和linuxrc文件。Bosybox是一个遵循GPL v2协议的开源项目,它在编写过程总对文件大小进行优化,并考虑了系统资源有限(比如内存等)的情况,为嵌入式系统提供了一个比较完整的工具集。 YAFFS2源代码包内除了本身文件系统代码外,utils 目 录下还包含了 mkYAFFSimage/mkYAFFS2image的代码,修改Makefile里的内核路径编译出mkYAFFSimage/mkYAFFS2image工具。其中mkYAFFSimage用于制作512 B的小页YAFFS文件系统,mkYAFFS2image用于制作2 KB以上的大页YAFFS2文件系统。输入以下格式命令,制作出支持大页的YAFFS2文件系统映像。 mkYAFFS2image MYM{PRJROOT}rootfs rootfs.YAFFS 通过mkYAFFS2image制做出来的映像文件其OOB中包含的ECC是使用YAFFS2/YAFFS ecc.c文件中的YAFFS ECCCaimJlate函数计算出来的 ECC校验码,其校验算法和nand ecc.c文件内的nand_calculate_ecc函数校验算法不同,如果在内核中由MTD来处理ECC,当读取NAND FLASH中的数据时,会通过nand_calculate_ecc函数的算法再生成一个新的ECC校验和,校验的时候,将从OOB区中读出的原ECC校验和新ECC校验和按位异或,其错误的结果会造成系统认为所有的页面都是错误的。解决办法有两种,一是在内核编译时把Lets YAFFS do itsown ECC选上,同时修改内核把MTD驱动中的ECC校验关闭;二是修改mkYAFFS2image.c文件,使其制作image时使用nand_caleulate_ecc函数的校验算法,在内核编译时不要把Lets YAFFS do its own ECC选上,同时打开MTD驱动中的ECC校验。 3.4 系统测试 启动系统后,Bootloader首先运行,然后它将内核复制到内存中,并且在内存某个固定的地址设置好要传递给内核的参数,最后运行内核。内核启动之后,它会将文件系统挂载为根文件系统,接着启动文件系统中的应用程序。启动途中会显示如下信息: 以上信息说明系统已经找到NAND FLASH设备,并识别出分区。进入系统后,输入下面命令。 在输出结果中,显示了YAFFS2的相关信息,说明Linux内核已经支持YAFFS2文件系统。 建立挂载点,挂载blockdevice设备。 查看mount上的目录,可以看到该目录下有刚才拷贝的文件,将其umount后,再次mount上来,发现拷贝的文件仍然存在,这时删除该文件然后umount,再次mount后,发现拷贝的文件已经被删除,说明该分区能正常读/写。 在FLASH上建立根文件系统: 重新启动,改变启动参数: 重新启动,内核可以从NAND FLASH启动根文件系统。 4 结语 大页NAND FLASH的快速擦除、读/写性能满足了系统对实时性的要求,YAFFS2可靠的掉电保护和高效率的读写以及对NAND FLASH存储设备的保护等优势增加了整个系统的安全性和健壮性,两者的结合达到了装备对数据的大容量存储和管理的需求。目前,该系统已装备于某部,用于实时监测装备的战技术状况,以及长时间实时记录装备工作数据,用于事后分析评估装备性能和操作手水平,在部队作训中发挥了重大作用。

    时间:2020-09-29 关键词: 存储 Linux yaffs2

  • 安卓 12 更容易安装替代应用商店

    安卓 12 更容易安装替代应用商店

    9月29日消息,谷歌希望用自己的资源解决开发者的顾虑,并向管理层投诉。 在一篇博客文章中,谷歌宣布将在 Android 12 系统上更容易安装替代的应用商店。该公司指出,大多数 Android 手机都预装了至少 2 个应用商店,而且这些商店能够使用自己的商业模式。 IT之家了解到,谷歌方面坚持认为,通过其 Google Play 商店分发的应用使用 Google Play 计费系统,并在提供数字商品的应用内购买时支付 30%“服务费”。谷歌指出,那些不想打擦边球的应用可以随时通过其他应用商店进行分发。 不过,谷歌要求那些还不合规的开发者可以在 2021 年 9 月 30 日之前解决,否则大概会面临被踢出商店的命运。谷歌表示,创业型公司可以利用这段宽限期来销售在线服务,不需要 Google Play 计费,也不用支付谷歌的 “服务费”税。 谷歌在这个话题上绕来绕去,但似乎谷歌仍然禁止开发者在应用中让用户知晓谷歌收取 “服务费”税,但谷歌表示,开发者可以自由地通过平安彩票AG捕鱼娱乐邮件促销或其网站让买家知道其他购买机会。 在很多方面,苹果的定位与苹果不同,但主要的区别在于,首先开发者可以将应用程序直接分配给买家,这最终会带来很大的不同。

    时间:2020-09-29 关键词: google 安卓 play

  • HMD 撤回了刚发布的诺基亚手机 Android 11 更新时间表

    HMD 撤回了刚发布的诺基亚手机 Android 11 更新时间表

    9月29日消息,HMD已经在全球范围内发布了诺基亚Android 11手机的更新日历,但是发布后不久就删除了。 通过表中可以看到,可以运行最新版本操作系统的首批机型是诺基亚 8.3 5G、2.2、5.3 和 8.1。 据Inf办公室介绍,从2021年1月到3月,Android 11还支持诺基亚1.3、4.2、2.4、2.3和3.4,而诺基亚3.2、7.2和6.2则在上半年得到支持信息技术。下一季度(3-6月)Android 11

    时间:2020-09-29 关键词: 诺基亚 hmd android10 android11

  •  WhatsApp现在已经开始在Android上测试

    WhatsApp现在已经开始在Android上测试

    在Facebook上,whatsap的messenger测试了一条新的消息,即访问用户界面,测试在7小时内完成。 根据WABetaInfo的最新报告 ,WhatsApp刚刚在Android上发布了2.20.20.1的beta版本,而最新版本则包含了新的媒体功能即将失效的证据。该功能与到期消息功能非常相似,将允许用户发送到期媒体(图像,视频和GIF),一旦收件人离开聊天室,这些媒体将自动消失。 如您在所附的屏幕截图中所见,WhatsApp将允许用户通过点击媒体共享屏幕上的新计时器按钮来发送过期的媒体。轻按此按钮后,该按钮将变为绿色,使用户知道他们将共享的媒体将自动过期。 但是,与到期消息不同,使用此新功能共享的媒体没有设置到期时间的计时器,并且一旦收件人离开聊天室,该媒体将不可用。即将到期的媒体也不会被“此媒体已过期”之类的消息替换,不会留下任何痕迹。还值得注意的是,过期媒体的用户界面与常规媒体文件的用户界面不同,这将使用户更容易理解文件在查看后会过期。 到目前为止,还没有迹象表明正在发生的事情会包括排水沟的识别,但可能需要一些对话框来帮助您访问多媒体图像和您不具备的日常功能。不要打开有关下一个事件的信息,我们尽快发布这个函数

    时间:2020-09-29 关键词: ui whatsapp Android

  •  给大家普及一下已获得基于Android10的LineageOS17.1官方支持 的设备

    给大家普及一下已获得基于Android10的LineageOS17.1官方支持 的设备

    自今年4月初ROM首次推出以来,links-17.1背后的团队一直在连接新的领域它是最近几个月,该团队支持了诸如华硕Rog Phone II等设备,谷歌Pixel 3和小米A1从那以后我们的上一份报告中,团队增加了对另外四台设备的支持。 以下设备现已获得基于Android 10的LineageOS 17.1的官方支持:OnePlus 7T Pro,Redmi Note 8 / 8T,Sony Xperia Z3和Sony Xperia Z3 Compact。如果您有兴趣在这些设备中尝试使用自定义ROM,现在可以通过单击各自Wiki页面上的“在此处获取构建”链接(下面链接)来下载可恢复的可恢复软件包。 在继续操作和更新线性设备(s-17.1)之前,请阅读安装说明和其他相关文档,包括引导和引导文档。模式。西奥还要确保在开始处理之前存储数据,否则可以保存数据。安装过程中数据丢失。

    时间:2020-09-29 关键词: rom android10 lineageos17.1

  • 三星 Galaxy Tab Active 3 平板电脑,耐用性、易用性猛增

    三星 Galaxy Tab Active 3 平板电脑,耐用性、易用性猛增

    三星 Galaxy Tab Active 3 平板电脑将是下述内容主要介绍对象,希望大家通过本文可以对它有所认识和了解。 三星 Galaxy Tab Active 3 平板电脑搭载 Exynos 9810 芯片,支持 DeX,通过最高级别的军工认证,拥有 IP68 防水防尘,采用一块可拆卸的 5050mAh 电池,还提供一支 S pen。 相比三年前的 Galaxy Tab Active 2,该机优化了耐用性和易用性。三星 Galaxy Tab Active 3 采用了橡胶外壳,整机重 429 克,可实现 1.5 米坠落防护。 该机采用一块 8.0 英寸的 1080P 的 IPS 屏幕,支持 USB-C 和 POGO 快充,且支持在无电池的情况下直连电源使用。 配置方面,该机搭载 Exynos 9810 芯片,仅支持 4G 网络,具有 4GB RAM 和 128GB ROM 存储,支持 microSD 卡拓展,支持 NFC、Wi-Fi 6,且支持 GPS、Glonass、北斗等导航卫星。 其他方面,三星 Galaxy Tab Active 3 采用了一个 1300 万像素的后置镜头和 500 万像素的前置镜头,支持 AR,提供一个高防护等级的 S pen 手写笔,搭载安卓 10 操作系统 以上便是小编此次为大家带来的所有介绍,如果你想了解更多有关它的内容,不妨百度、google进行探索哦。

    时间:2020-09-29 关键词: 三星 galaxy 平板

  • 联想 YOGA 27 一体机,R5 4650G 和 R7 4750G 可选

    联想 YOGA 27 一体机,R5 4650G 和 R7 4750G 可选

    在下述内容中,本文将对联想 YOGA 27 一体机的相关消息予以报道,一起来了解下它的具体情况吧。 联想 YOGA 27 一体机搭载了 AMD 锐龙 4000 桌面 APU,可选 R5 4650G 和 R7 4750G。 联想官方表示,YOGA 27 高性能台式机搭载了锐龙 4000 系列标压处理器,7nm 工艺,最高 8 核心 16 线程,64W 高能释放。联想产品经理在评论中补充道,可选 4650G/4750G 两款桌面 APU。 小编曾报道,在之前的预热中,联想表示YOGA 27 “专业显示器”为 4K 分辨率,99% Adobe RGB 色域,99% DCI-P3 色域,ΔE 小于 2,采用了量子点技术,支持 OSD 色温色域切换。另外,这款设备采用了三窄边设计,屏幕支持单手 90° 旋转,在内置重力传感器的作用下屏幕画面可以自动旋转。 最后,小编诚心感谢大家的阅读。你们的每一次阅读,都是对小编莫大的鼓励。最后的最后,祝大家有个精彩的一天。

    时间:2020-09-29 关键词: 联想 yoga 一体机

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页