SylixOS龙芯1C适配总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SylixOS龙芯1C适配总结相关的知识,希望对你有一定的参考价值。

1.龙芯1C简介

1.1龙芯1C简介

       龙芯 1C300(以下简称 1C)芯片是基于 LS232 处理器核的高性价比单芯片系统,可应用于指纹生物识别、物联传感等领域。1C 包含浮点处理单元,可以有效增强系统浮点数据处理能力。支持 8-bit SLC NAND 或 MLC NAND FLASH,提供高容量的存储扩展接口。

1C 为开发者提供了丰富的外设接口及片上模块,包括 Camera 控制器, USB OTG 2.0 及 USB HOST 2.0 接口, AC97/I2S 控制器, LCD 控制器, ADC 控制器,高速 SPI 接口,全功能 UART 接口等,提供足够的计算能力和多应用的连接能力。片上集成 RTC 功能,可用于实时显示时间。

 

1.2PMON简介

       PMON是一个兼有Bios和BootLoader部分功能的开放源码软件,多用于嵌入式系统。与BIOS相比功能不足,与常见的BootLoader相比,功能要丰富的多。基于龙芯的系统采用PMON 作为类BIOS 兼BootLoader,并做了很多完善工作。

 

1.3龙芯1C主要功能

处理器核

  • 单核心 LS232, MIPS32 指令集兼容,主频 300MHZ

  • 支持高效双发射(一个时钟节拍执行两条指令)技术

  • 支持寄存器重命名、动态调度、转移预测等乱序发射、乱序执行技术

  • 五级流水线(取指、译码、发射、执行并写回、提交)微体系结构16KB 数据 CACHE 和 16KB 指令 CACHE

  • 集成 64 位浮点处理部件,支持全流水的 64 位浮点加法和浮点乘法运算,硬件实现浮点除法运算

 

主要功能

  • SDRAM 控制器

  • SRAM/NOR FLASH 控制器

  • NAND 控制器

  • 时钟发生器

  • I2S 控制器

  • AC97 控制器

  • LCD 控制器

  • Camera 接口

  • MAC 控制器

  • USB2.0 控制器

  • SPI 控制器

  • I2C 控制器

  • UART 控制器

  • GPIO(最多支持105个GPIO)

  • PWM 控制器

  • RTC(精确到0.1秒)

  • CAN 控制器

  • SDIO 控制器

  • ADC 控制器

 

2.龙芯1C开发环境搭建

2.1硬件开发环境搭建

  • 将智龙开发板的串口与电脑串口连接好

  • 用网线把智龙开发板和PC机连接起来(可以通过路由器和交换机)

  • 给智龙开发板通电

 

                 串口引脚如图 2-1所示,三个脚从左到右分别是:TX2、RX2、GND

技术分享

 2-1  串口引脚

                 搭建好后如图 2-2所示:

技术分享

 2-2  接线图

 

2.2烧写BSP程序

2.2.1通过TFTP更新BSP

       PMON中内置TFTP协议,据此可以采用TFTP对PMON进行更新。采用TFTP更新方式,首先需要宿主机存在TFTP服务端软件。

       1.首先配置PMONIP地址如图 2-3所示:

       指令:set ifconfig syn0:192.168.2.204

技术分享

 2-3  配置PMONIP地址

       重启后,能ping通宿主机ip地址即可,如图 2-4所示:

       指令:ping 192.168.2.180

技术分享

 2-4  测试网络是否通畅

 

       2.在宿主机上启动Tftpd32程序,如图 2-5所示:

技术分享

 2-5  打开宿主机的Tftpd32程序

 

       3.将需要烧写的文件存放到Tftpd32指定的目录下,如图 2-6所示:

技术分享

 2-6  Tftpd32目录

       4.擦除NandFlash

       如果不擦除,可能导致文件系统挂载不正确。

       指令如下:

       mtd_erase /dev/mtd0    

       mtd_erase /dev/mtd1

       mtd_erase /dev/mtd2

 

       执行效果如图 2-7所示:

技术分享

 2-7  擦除NandFlash

 

       5.将程序烧写到NandFlash中,如图 2-8所示:

       指令:devcp tftp://192.168.2.180/bspls1c.bin /dev/mtd0

技术分享

 2-8  bsp烧录到mtd0

 

       6.设置每次从/dev/mtd0加载,并重启,如图 2-9所示:

       指令:set al "-r -o80200000 /dev/mtd0;flush -di;g -e 80200000"

技术分享

 2-9  配置从mtd0加载并启动程序

    

       7.此时,正常启动。启动后的效果如图 2-10所示:

技术分享

 2-10  启动后的效果

 

2.3烧写PMON程序

       1.准备烧写工具

       烧写工具主要分为硬件和软件。硬件为基于CH341A芯片的USB烧写器。CH341A芯片如下图 2-11所示,此芯片经常用于烧写程序、串口数据转换等环境中。

技术分享

 2-11  烧写工具

 

 

 

 

       2.安装驱动

       驱动主要是USB转TTL的驱动和编程器芯片的驱动。安装驱动的时候记得将烧写器插到电脑上。如图 2-12所示:

技术分享

 2-12  驱动程序

 

       点击安装即可安装CH341A的驱动。如图 2-13所示:

技术分享

 2-13  安装驱动

 

       3.SPI Flash芯片拔下来插到烧写器上(注意避免损伤引脚)。如图 2-14所示:

技术分享

 2-14  SPI Flash拆下并装到烧写器上

 

       4.将烧写器插到电脑上。如图 2-15所示:

技术分享

 2-15  将烧写器连接到电脑

 

       5.按软件检测按钮技术分享检测不到或者型号不一致就手动选择你的型号,显示检测到芯片W25X40,如图 2-16所示:

技术分享

 2-16  检测到SPI Flash型号为W25X40

 

       6.擦除SPI Flash芯片内的数据。

       点击"擦除"。芯片完成数据清除后,点击"读取",你会发现芯片内的数据全是"FF"。如图 2-17所示:

技术分享

 2-17  擦除SPI Flash

       7.烧写bin文件

       点击"打开",选择gzrom.bin文件。最后点击"自动",PMON就会被烧写到SPI Flash中。如图 2-18所示:

技术分享

 2-18  加载PMON文件

 

       烧写完成后,将SPI Flash装回,上电后顺利进入系统,并且网卡附近的LED也亮了。

 

3进入SylixOS后的环境配置

3.1网络配置

       SylixOS启动时会读取ifparam.ini文件中的网络配置信息。关于ifparam.ini更多详细信息可参考《SylixOS设备IP的设置》。配置后,如图 3-1所示:

 

技术分享

 3-1  网络配置

 

 

3.2部署

       需要部署的文件如图 3-2所示:

技术分享

 3-2  部署文件

 

4.LED测试

       控制效果:LED1闪烁,效果如图 4-1所示:

技术分享

 4-1  LED灯测试

 

5.RTC测试

       测试效果如图 5-1所示:

技术分享

 5-1  RTC测试

6.SPI Flash测试

       首先加载驱动模块,加载后如图 6-1所示:

技术分享

 6-1  加载SPI Flash驱动

       加载之后,就可以读写SPI Flash了,效果如图 6-2所示:

技术分享

 6-2  SPI Flash读写测试

 

7.参考资料

       博客:

       <a href=""http://www.openloongson.org/forum.php?        mod=viewthread&tid=146">http://www.openloongson.org/forum.php?mod=viewthread&tid=146

       文档:

       《1c300_user_manual_v1.4_draft.pdf》

       《1C开发板用户手册V1.3.pdf》

       《SylixOS设备IP的设置.doc》


以上是关于SylixOS龙芯1C适配总结的主要内容,如果未能解决你的问题,请参考以下文章

VxWorks驱动移植至SylixOS总结

SylixOS功能点介绍

SylixOS移植Redis库总结

SylixOS中间件移植方法总结

SylixOS SPI 总线框架浅析

SylixOS中端模式处理方式总结