嵌入式学习系列教程—《NanoPC-T3讲解》

上一节我们已经了解过51单片机的基本概念,现在我们正式进入嵌入式开发学习。

首先,我们需要了解嵌入式的基本概念,了解基本概念之后,我会先从uboot讲起。以下教程均以三星的S5P6818CPU为平台,友善之臂推出的NanoPC-T3为开发平台,从uboot、内核、以及文件系统分别讲解嵌入式学习的教程。本节除了介绍嵌入式的相关概念外,会讲解如何搭建开发环境。

嵌入式基本概念:

嵌入式系统(Embeddedsystem),是一种“嵌入机械或电气系统内部、具有专属功能的计算机系统”,由于控制功能单一却重要,通常要求及时应对的实时计算性能。被嵌入的系统通常是包含硬件和机械部件的完整设备。现代嵌入式系统通常是基于微控制器(如含集成内存和/或外设接口的中央处理单元)的。

嵌入式处理器大概可分为两类。一类是普通微处理器:使用独立的集成电路存储器和外设。另一类是单片机:具有片上外设,降低了功耗、尺寸和成本。嵌入式系统的软件是为某种应用定制的,可以使用各种不同的基本CPU架构:既有范纽曼型架构也有不同程度的哈佛结构;既有RISC也有非精简指令集处理器;字长从4位到64位甚至更高,当然最典型的仍然是8/16位。

应用场景:

通用型处理器、专门进行某类计算的处理器、为手持应用订制设计的处理器等,都可能应用到嵌入式系统。常见的典型专用处理器有数字信号处理器。

嵌入式系统的物理形态包括便携设备如电子表和MP3播放器,大型固定装置如交通灯、工厂控制器,大型复杂系统如混合动力汽车、磁共振成像设备、航空电子设备等。它们的复杂度低至单片机,高至大型底盘或外壳内安装有多个部件、外设和网络。

外围设备:

嵌入式系统通过外设与外部通信:

·串行通信接口:RS-232、RS-422、RS-485等

·同步串行通信接口:I2C、SPI、ESSI等

·USB

·多媒体卡:SD卡、CF卡等

·网络:以太网、LonWorks等

·现场总线:CAN总线、LIN总线、PROFIBUS等

·定时器:PLL、捕获比较模块和时间处理单元

·分立IO:GPIO

·模拟-数字/数字-模拟转换(ADC/DAC)

·调试接口:JTAG、ISP、ICSP、BDM端口、BITP、DP9端口等

开发工具:

同典型的计算机程序员一样,嵌入式系统设计人员也使用编译器、连结器和调试器开发嵌入式系统软件。然而,他们也使用一些大多数程序员不熟悉的工具。

搭建开发环境:

这里介绍的的开发环境是,建议用户在开发中使用经我们测试过的版本的系统,不建议使用虚拟机。(另外,官方要求必须使用64位的Linux操作系统)。

1.1下载64位镜像

2)其他下载地址:?f=48t=4580963)制作一个用于安装Ubuntu系统的U盘,具体方法网上都有很多,可以参考网上的帖子。

1.2安装系统

如果你的PC机已经安装Windows8或者操作系统,建议装双系统。最少预留100GB的硬盘空间给,同时RAM需要8GB以上。(编译,需要时间为59分钟。使用的电脑配置为:CPU:Intel(R)Core(TM)i7-4790KCPU@4.00GHz,RAM:16G,硬盘:SSD)

安装交叉编译器:

Step1:下载交叉编译工具链复制到某个目录下如opt/,然后进入到该目录,执行解压命令:

执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:

Step3:这个编译器是64位的,不能在32位的Linux系统上运行,安装完成后,你可以快速的验证是否安装成功:

至此,我们已经把开发环境搭建好,下面,我们将会对烧写系统的脚本进行讲解。

S5P6818启动过程:

启动过程大概如下图:

1、系统上电;

2、系统上电后,会首先运行IROM里的代码;

3、加载2ndboot并运行之;

4、2ndboot会去加载uboot并运行,然后根据环境变量加载内核并运行;

NanoPC-T3烧写脚本sd-fuse_s5p6818注释:

以下是对sd-fuse_脚本的注释:

下一节的更新将会讲解脚本的注释,请留意最新动态。

版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。

相关推荐