cymwin18 cymwin18
关注数: 5 粉丝数: 18 发帖数: 710 关注贴吧数: 20
【01.16】【水】CCTV13上看到的COS系统。好像挺nb的样子 又一款中国自主开发的操作系统1月15日在北京发布,这款操作系统有着一个响亮的名字COS,是中国操作系统(China Opreating System)的英文首字母缩写。COS是由中国科学院软件所和上海联彤网络通讯技术有限公司共同发布的,后者是一个于2012年成立的技术公司,据悉该公司投资方背景深厚。上海联合投资有限公司是COS的联合发布方和商业运作的主导方。   据了解,此次发布的是COS的第一个版本,COS 1.0。COS目标应用领域广泛,包括PC、智能移动终端、机顶盒、智能家电等,目前已经在机顶盒上得到应用——上海东方有线将COS系统运用到其智能机顶盒中。   COS在智能终端越来越普及、安全性问题越来越突出的背景下出台,十分注重操作系统的安全性和易用性问题。据悉,COS操作系统在安全上具有特色,能保证应用下载、运行的安全,操作系统层支持信任链传递。   中国视像行业协会副会长白为民、工信部软件和集成电路促进中心副主任高松涛、中国宽带资本董事长田溯宁、东方有线副总经理张健、中科院软件研究所所长李明树等参加了此次发布会。(来源:中国电子报) 从视频里面看,像是用的butterfly啊。。。 之前好像从吧里看到过这个手机的界面。。。有内部人士给介绍介绍吗。 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fnews.cntv.cn%2F2014%2F01%2F16%2FARTI1389836737494898.shtml&urlrefer=2e15dfebf26472e3d71a332b942676a2
【10.31】【水】诺基亚拟在英国申请HTC手机禁售令 HTC刚刚送走风波不断的秋天,却又迎来了同样悲惨的冬天。据悉,诺基亚刚刚在英国赢得了针对HTC的专利诉讼。涉嫌侵犯诺基亚专利的HTC智能手机是Wildfire以及旗舰手机HTC One。诺基亚表示会就专利侵犯一事索取经济赔偿,并向法院申请禁止英国进口和销售HTC智能手机。 诺基亚发言人马克-杜兰特(Mark Durrant)在一项书面声明中说,此次判决结果是诺基亚和HTC专利纠纷案获得的“重大发展”。路透社援引HTC发言人的话称,“HTC对于英国法院针对此案的判决结果感到非常失望。我们会立即提起上诉。” 对于HTC来说,现在可谓是多事之秋。此前,该公司已忙于否定工厂关闭的谣言,以及疲于应付一名全球公关主管的辞职事宜。现在,它的HTC One又面临着在英国被禁售的危险,这可能是它迄今为止遭遇的最沉重的打击。 早在去年,诺基亚就提起了针对HTC的专利诉讼。现在,诺基亚在全球范围内已有50多起针对HTC的专利诉讼案正在等待法院审理。迄今为止,HTC已被发现侵犯了诺基亚的四项专利。 诺基亚素以注重研发著称,在过去十年中,它已投入了400亿美元用于研发,约为苹果同期研发支出的4倍。诺基亚现在总共拥有3万个专利。 其实,哥想说的是,HTC让你得瑟,谁让你抄袭Nokia的防弹功能的。
ARM Linux启动分析----head-armv.S(下) 接着代码通过访问P15协处理器,得到当前的CPU的处理器ID,然后与以__proc_info_begin开始的处理器信息结构中的处理器ID相比较,相等则返回,不等则跳转到下一个处理器信息结构继续比较。从__proc_info_begin开始的保存处理器信息的结构的类型为struct proc_info_list,在include/asm-arm/procinfo.h中有具体的定义。实际的各处理器信息结构的赋值在arch/arm/mm/proc-xscale.S文件的.section ".proc.info", #alloc, #execinstr语句下面。为什么是在.proc.info段的下面呢?这是由vmlinux-armv.lds.in文件中的代码__proc_info_begin = .; *(.proc.info)__proc_info_end = .;所决定的。该段子程序完成后,各寄存器情况如下:R8 = 页表目录项的标志位R9 = 处理器IDR10 = 指向当前处理器信息结构的指针__lookup_architecture_type: adr r4, 2b ldmia r4, {r2, r3, r5, r6, r7} @ throw away r2, r3 sub r5, r4, r5 @ convert addresses add r4, r6, r5 @ to our address space add r7, r7, r51: ldr r5, [r4] @ get machine type teq r5, r1 beq 2f add r4, r4, #SIZEOF_MACHINE_DESC cmp r4, r7 blt 1b mov r7, #0 @ unknown architecture mov pc, lr2: ldmib r4, {r5, r6, r7} @ found, get results mov pc, lr这里开始查找机器的体系结构信息。前面已经提到过,在开始执行head-armv.S文件之前,R1中已经包含了当前的体系结构的类型号。现在所要做的,就是在__arch_info_begin开始的地址中,查找与R1中的值相匹配的机器类型信息。从__arch_info_begin开始的保存机器体系结构信息的类型为struct machine_desc,该结构在include/asm-arm/mach/arch.h中有具体的定义。对该结构的赋值使用MACHINE_START宏,该宏的定义同样在arch.h文件中。具体的机器体系结构的信息在arch/arm/kernel/arch.c中,当然也可以在arch/arm/mach-($machine-type)目录下的文件中添加与你自己的机器体系相对应的代码。这一点在进行linux移植的工作中很重要。该段子程序完成后,各寄存器情况如下:R5 = 内存(SDRAM)的起始物理地址R6 = IO的起始物理地址R7 = IO虚拟地址在页表中的索引项?这里有一个疑问。将R7赋值是为了调试的需要,使得串口可以打印调试信息,因此需要操作IO。现在,我的IO起始地址为0x40000000,在这里被映射到了0xFC000000。获得UART的虚拟地址的宏addruart在/arch/arm/kernel/debug-armv.S中被定义,这个宏通过io_p2v宏得到IO的虚拟地址,该宏在include/asm-arm/arch-pxa/hardware.h中被定义,但是它将0x40000000的物理地址映射到了0xF8000000,而不是上面提到的0xFC000000,这是为什么呢?希望能有人解释一下这个问题。__create_page_tables: pgtbl r4, r5 @ page table address /* Clear the 16K level 1 swapper page table */ mov r0, r4 mov r3, #0 add r2, r0, #0x40001: str r3, [r0], #4 str r3, [r0], #4 str r3, [r0], #4 str r3, [r0], #4 teq r0, r2 bne 1b /* * Create identity mapping for first MB of kernel to * cater for the MMU enable. This identity mapping * will be removed by paging_init() */ krnladr r2, r4, r5 @ start of kernel add r3, r8, r2 @ flags + kernel base
创建ARMlinux交叉编译环境的实践 一、准备工作 首先需要一台运行Linux操作系统的PC以完成我们的编译工作。 其次要准备如下一些源文件。 1、源文件准备 binutils-2.14.tar.gz ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz gcc-core-2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-core-2.95.3.tar.gz gcc-g++2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-g++-2.95.3.tar.gz glibc-2.2.4.tar.gz ftp://ftp.gnu.org/gnu/glibc/glibc-2.2.4.tar.gz glibc-linuxthreads-2.2.4.tar.gz ftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.2.4.tar.gz linux-2.4.21.tar.gz ftp://ftp.kernle.org/pub/linux/kernel/v2.4/linux-2.4.21.tar.gz patch-2.4.21-rmk1.gz # linux kernel patch for arm ftp://ftp.arm.linux.org.uk/pub/l ... atch-2.4.21-rmk1.gz binutils-2.14.tar.gz这个压缩包包含有ld,ar,as等一些产生或者处理二进制文件的工具。 gcc-core-2.95.3.tar.gz这个压缩包是GCC的主体部分,GCC是GNU Compiler Collection的简称,顾名思义,它能够编译很多种高级语言,例如C、C++,Java等,而这个压缩包中含有C编译器,及公共部分,而对其他语言的支持,采用另外的压缩包单独发布。 gcc-g++2.95.3.tar.gz,这个压缩包就是为使GCC能够编译C++程序而单独发布的。 glibc-2.2.4.tar.gz,libc是很多用户层应用都要用到的库,kernel和bootloader不需要这个库的支持,这个库主体部分封装在这个压缩包内。 glibc-linuxthreads-2.2.4.tar.gz,这是Libc用于支持Posix线程而单独发布的一个压缩包。 linux-2.4.21.tar.gz,这个压缩包就是Linux的内核。 patch-2.4.21-rmk1.gz,这个压缩包是用来给Linux内核打补丁,以使其可以支持ARM的硬件平台。 2、工作目录搭建 我们创建如下的目录树结构 mkdir arm mkdir tool-chain mkdir build-dir mkdir src-dir mkdir setup-dir mkdir kernel arm这个目录是我们的最顶层工作目录,我们所有的编译工作都在这里完成。 tool-chain这个目录是我们交叉编译工具的安装位置,它下面的bin子目录存放我们创建好的编译器,汇编器,连接器,以及编译好的C库也会安装到这个目录之下。 setup-dir这个目录用来存放我们下载的压缩包。 src-dir这个目录用于存放binutils,gcc,glibc解压之后的源文件。 kernel这个目录用来存放内核文件,对内核的配置、编译工作将在这个目录中完成。 build-dir用来编译src-dir中的源文件,具体就是binutils,gcc,glibc的编译工作将在这个目录下完成。这种源文件目录和编译目录分离的编译方式是GNU所推荐的。 cd ./src-dir tar –xvzf ../setup-dir/ binutils-2.14.tar.gz tar –xvzf ../setup-dir/ gcc-core-2.95.3.tar.gz tar –xvzf ../setup-dir/ glibc-2.2.4.tar.gz tar –xvzf ../setup-dir/ glibc-linuxthreads-2.2.4.tar.gz –directory=./glibc-2.2.4 这样我们在src-dir目录下就形成了3个源文件目录binutils-2.14,gcc-core-2.95,3,glibc-2.2.4,其中分别存放着binutils tools,gcc,glibc的源代码。接下来我们到build-dir中创建3个与这三个源文件目录对应的编译目录。 cd ../build-dir mkdir ../build-dir/build-binutils mkdir ../build-dir/build-gcc mkdir ../build-dir/build-glibc 我们将在这三个目录中完成对binutils tools, gcc, glibc的配置和编译工作。下面还要把内核文件解压到kernel目录下,并打补丁。
ARM+LINUX学习路线 ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:    (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)   (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定)   (3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。   方法步骤:   1、基础知识:   目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。   科目:数字电路、计算机组成原理、嵌入式微处理器结构。   汇编语言、C/C++、编译原理、离散数学。   数据结构和算法、操作系统、软件工程、网络、数据库。   方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。   主攻书籍:the c++ programming language(一直没时间读)、数据结构-C2。   2、学习linux:   目的:深入掌握linux系统。   方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.11版,适合学习。最后深入代码。   主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。   3、学习嵌入式linux:   目的:掌握嵌入式处理器其及系统。   方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。   (2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。   (3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。   主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。 4、深入学习:   A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。   B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。   C、网络与信息安全技术:如加密技术,数字证书CA等。   D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。     注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。   不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要做的!   技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。   嵌入式书籍推荐   Linux基础   1、《Linux与Unix Shell 编程指南》   C语言基础   1、《C Primer Plus,5th Edition》【美】Stephen Prata着   2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着   3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE) 4、《嵌入式Linux应用程序开发详解》   Linux内核   1、《深入理解Linux内核》(第三版)   2、《Linux内核源代码情景分析》毛德操 胡希明着   研发方向   1、《UNIX Network Programming》(UNP)   2、《TCP/IP详解》   3、《Linux内核编程》   4、《Linux设备驱动开发》(LDD)   硬件基础   1、《ARM体系结构与编程》杜春雷着   2、S3C2410 Datasheet   英语基础   1、《计算机与通信专业英语》   系统教程   1、《嵌入式系统――体系结构、编程与设计》   2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着   3、《Building Embedded Linux Systems》   理论基础   1、《算法导论》   2、《数据结构(C语言版)》   3、《计算机组织与体系结构?性能分析》   4、《深入理解计算机系统》【美】Randal E. Bryant David O'Hallaron着   5、《操作系统:精髓与设计原理》   6、《编译原理》   7、《数据通信与计算机网络》   8、《数据压缩原理与应用》   C语言书籍推荐   1. The C programming language   《C程序设计语言》   2. Pointers on C   《C和指针》   3. C traps and pitfalls   《C陷阱与缺陷》   4. Expert C Lanuage   《专家C编程》   5. Writing Clean Code   -----Microsoft Techiniques for Developing Bug-free C Programs   《编程精粹--Microsoft 编写优质无错C程序秘诀》   6. Programming Embedded Systems in C and C++   《嵌入式系统编程》   7.《C语言嵌入式系统编程修炼》   8.《高质量C++/C编程指南》林锐   尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。
ARM+LINUX学习路线 ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:    (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)   (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定)   (3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。   方法步骤:   1、基础知识:   目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。   科目:数字电路、计算机组成原理、嵌入式微处理器结构。   汇编语言、C/C++、编译原理、离散数学。   数据结构和算法、操作系统、软件工程、网络、数据库。   方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。   主攻书籍:the c++ programming language(一直没时间读)、数据结构-C2。   2、学习linux:   目的:深入掌握linux系统。   方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.11版,适合学习。最后深入代码。   主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。   3、学习嵌入式linux:   目的:掌握嵌入式处理器其及系统。   方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。   (2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。   (3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。   主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。 4、深入学习:   A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。   B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。   C、网络与信息安全技术:如加密技术,数字证书CA等。   D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。     注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。   不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要做的!   技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。   嵌入式书籍推荐   Linux基础   1、《Linux与Unix Shell 编程指南》   C语言基础   1、《C Primer Plus,5th Edition》【美】Stephen Prata着   2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着   3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE) 4、《嵌入式Linux应用程序开发详解》   Linux内核   1、《深入理解Linux内核》(第三版)   2、《Linux内核源代码情景分析》毛德操 胡希明着   研发方向   1、《UNIX Network Programming》(UNP)   2、《TCP/IP详解》   3、《Linux内核编程》   4、《Linux设备驱动开发》(LDD)   硬件基础   1、《ARM体系结构与编程》杜春雷着   2、S3C2410 Datasheet   英语基础   1、《计算机与通信专业英语》   系统教程   1、《嵌入式系统――体系结构、编程与设计》   2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着   3、《Building Embedded Linux Systems》   理论基础   1、《算法导论》   2、《数据结构(C语言版)》   3、《计算机组织与体系结构?性能分析》   4、《深入理解计算机系统》【美】Randal E. Bryant David O'Hallaron着   5、《操作系统:精髓与设计原理》   6、《编译原理》   7、《数据通信与计算机网络》   8、《数据压缩原理与应用》   C语言书籍推荐   1. The C programming language   《C程序设计语言》   2. Pointers on C   《C和指针》   3. C traps and pitfalls   《C陷阱与缺陷》   4. Expert C Lanuage   《专家C编程》   5. Writing Clean Code   -----Microsoft Techiniques for Developing Bug-free C Programs   《编程精粹--Microsoft 编写优质无错C程序秘诀》   6. Programming Embedded Systems in C and C++   《嵌入式系统编程》   7.《C语言嵌入式系统编程修炼》   8.《高质量C++/C编程指南》林锐   尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。
1 下一页