IOS 获取系统版本字符串,并且转化成float类型

pcDuino3下支持mmc启动,官方的Uboot是采用SPL框架实现的,因为内部的SRAM空间达到32K,我们完全可以在这32K空间内编写一个完整可用小巧的bootloader来完成引导Linux kernel的目的。

我们首先介绍下SPL框架,可以先看下《GNU ARM汇编--(十八)u-boot-采用nand_spl方式的启动方法》《GNU
ARM汇编--(十九)u-boot-nand-spl启动过程分析》
,NAND_SPL也算是SPL框架下的一种模式。

当使用Nand flash或者MMC作为引导方式时,我们需要使用芯片内的ROM或者其它机制加载固件到SRAM中。

这种时候就需要SPL,因为SPL短小精悍,适用于4K甚至更小的SRAM的环境。这时候的引导过程就变成,SPL引导Uboot,而由Uboot引导系统内核。

其实作为pcDuino3的SPL,它是可以完成直接引导kernel功能的,如果不需要使用uboot提供的额外的强大功能的话。

这里介绍下写bootloader的思路:

使用mmc的read驱动函数将指定位置的kernel镜像读取到内存中,然后按照Linux的要求完成参数列表的传递,MMU和cache的配置等,就可以完成跳转动作了。

最后一个步骤的代码如下:

void boot_linux(void)
{
	uart_printf("boot linux\n");
	void (*kernel_entry)(int zero, int arch, uint params);
	unsigned long r2;
	unsigned long machid;

	setup_linux_param(0x40000000 + 0x100);

	cleanup_before_linux();
	kernel_entry = (void (*)(int, int, uint))0x48000000;

	machid = 4283;
	r2= 0x40000100;
	kernel_entry(0, machid, r2);

}

这个函数就完成了内核文档Documentation/arm/booting对booting ARM Linux的描述。

这样,一个仅仅有18K大小的bootloader就可以完成对kernel的引导了。

IOS 获取系统版本字符串,并且转化成float类型

时间: 05-18

IOS 获取系统版本字符串,并且转化成float类型的相关文章

iOS 获取appstore 版本

项目上线以后一般都涉及到升级.那么iOS 怎样从appstore获取到版本 事实上非常easy NSString *url = [[NSString alloc] initWithFormat:@"http://itunes.apple.com/lookup? id=%@",@"987953868"]; 当中 最后一串数字就是当前app的唯一id. 这个id怎样得到,百度一下 非常easy 然后我们仅仅须要调用这个 地址.就会返回当前app的一些信息,当中就包含ap

iOS开发系统版本适配(未完待续。。。)

1.iOS9引入了新特性App Transport Security (ATS).新特性要求App内访问的网络必须使用HTTPS协议:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协议,目的是强制增强数据访问安全,而且 系统 Foundation 框架下的相关网络请求,将不再默认使用 Http 等不安全的网络协议,而默认采用 TLS 1.2.简单的说,就是苹果限制了HTTP协议,如果你用的是http协议的,要处理请参考我的另一文章,iOS9网络适配 2.iOS9

iOS 获取系统相册数据(不是调系统的相册)

Framework:AssetsLibrary.framework 主要目的是获取到系统相册的数据,并把系统相册里的照片显示出来. 1.创建一个新的项目: 2.将AssetsLibrary.framework添加到项目中. 3.打开故事板,拖放一个集合视图(Collection View)组件到控制器中,然后拖放一个Image View到Collection View的默认单元格,在属性面板中修改Image View的显示照片方式为Aspect Fill.并且,在属性面板中设置默认单元格(col

IOS 获取系统通讯录中的联系人信息

- (IBAction)getAllContactFromSystem { ABAddressBookRef ab = ABAddressBookCreateWithOptions(NULL, NULL); ABAddressBookRequestAccessWithCompletion(ab, ^(bool granted, CFErrorRef error) { //取得通讯录访问授权 ABAuthorizationStatus authorization= ABAddressBookGet

获取系统版本

using System;using System.Collections;using System.Globalization;using System.IO;using System.Net;using System.Runtime.InteropServices;using System.Security.Cryptography;using System.Text;using System.Text.RegularExpressions;using System.Threading;us

ios 宏定义 系统版本 判定

====================================================== 当需要判断iOS系统版本的时候,相信很多人都会这么干: #define SystemVersion [[UIDevice currentDevice] systemVersion].floatValue 现在告诉屌丝们一个更好的办法就是其实系统已经做了类似的宏定义,不需要我们再去定义了 在Simulator-IOS7.0/usr/include/Availability.h中已经定义了很

Windows系统版本判定那些事儿

v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);}/* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colb

iOS 获取手机的型号,系统版本,软件名称,软件版本

应用程序的名称和版本号等信息都保存在mainBundle的一个字典中,用下面代码可以取出来. NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];NSString* versionNum =[infoDict objectForKey:@"CFBundleVersion"];NSString*appName =[infoDict objectForKey:@"CFBundleDisplayName&qu

[iOS开发]使用Swift检测系统版本信息

iOS系统版本获取 获取当前运行系统的版本号: let version = UIDevice.currentDevice().systemVersion // 获取版本号如: 7.1.2 比较版本号 最主要的是与iOS 8版本进行比较: // 与iOS 8.0.0进行比较 // 注意这里返回结果是 NSComparisonResult let flag = version.compare("8.0.0", options: NSStringCompareOptions.NumericS

iOS 获取当前时间格式化字符串

iOS 获取当前时间格式化字符串 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. // 获取系统当前时间 NSDate * date = [NSDate date]; NSDateFormatt