龙芯内核编程技术规范
- 格式:pdf
- 大小:336.32 KB
- 文档页数:11
龙芯1B200/1C300编程参考手册版本 1.0苏州市天晟软件科技有限公司2021年5月目录前言 (3)第一节 创建项目框架 (4)1、项目向导 (4)2、项目目录与文件 (5)第二节 配置BSP (6)1、片上设备使用列表 (6)2、SPI0总线上的从设备 (7)3、I2C0总线上的从设备 (7)4、其它关键配置 (8)第三节 配置RTOS (9)第四节 设备驱动程序 (10)1、驱动模型 (10)2、串口设备 (13)3、SPI设备 (16)4、I2C设备 (25)5、NAND 控制设备 (35)6、显示控制器 (38)7、CAN控制器 (42)8、网络控制器 (46)9、PWM设备 (49)10、实时时钟设备 (52)11、AC97声音设备 (57)12、GPIO端口 (60)13、看门狗 (62)第五节 其它宏定义与函数 (64)1、内存/寄存器读写操作 (64)2、芯片运行频率 (64)3、cache 操作函数 (65)4、中断相关操作 (65)5、内存操作函数 (66)6、延时函数 (67)7、打印函数 (67)8、libc 库函数 (68)版权声明 (69)前言龙芯1系列芯片(以下简称龙芯1x)是龙芯中科技术股份有限公司研发的SoC芯片,具有完全意义上的自主知识产权。
该芯片使用LS232内核,全兼容MIPS32指令集,片内集成了丰富的外围设备,芯片按照工业级标准生产,具有高性能、低功耗、完全自主可控的优势。
芯片的详细技术参数请参考《龙芯1x处理器用户手册》。
LoongIDE是专用于龙芯1x芯片的集成开发环境,旨在为龙芯1x芯片提供一个简单易用、稳定可靠、符合工业标准的嵌入式开发解决方案,帮助用户在龙芯嵌入式应用开发中缩短开发周期、简化开发难度,助力工控行业的国产化进程。
LoongIDE的使用请参考《龙芯1x嵌入式集成开发环境使用说明书》。
用户通过使用LoongIDE实现龙芯1x芯片的“裸机/RTThread/uCOS/FreeRTOS/RTEMS”应用项目的编程、编译和在线调试,方便用户学习和掌握龙芯1x芯片的开发流程,模拟和实现各种自动化、工业控制、数据采集、物联传感等应用场景,从而推动龙芯1x芯片在工控行业的国产化应用。
龙芯gs232 处理器用户手册全文共四篇示例,供您参考第一篇示例:龙芯gs232 处理器是一款由中国龙芯公司研发的高性能处理器,具有低功耗、高安全性和稳定性等特点。
本手册将向用户详细介绍龙芯gs232 处理器的特性、性能参数、使用方法和注意事项,帮助用户更好地利用该处理器,提高工作效率。
一、龙芯gs232 处理器特性1. 高性能:龙芯gs232 处理器采用先进的多核处理技术,性能优越,可满足复杂计算和运算需求。
2. 低功耗:龙芯gs232 处理器采用先进的节能设计,能够降低能耗,延长电池续航时间,是移动设备的理想选择。
3. 高安全性:龙芯gs232 处理器具备硬件加密和安全防护功能,能够有效保护用户数据安全,防范各类安全威胁。
4. 稳定性:龙芯gs232 处理器经过严格的质量控制和稳定性测试,具有良好的稳定性和可靠性,能够长时间稳定运行。
二、龙芯gs232 处理器性能参数1. 处理器核心:龙芯gs232 处理器采用多核处理器设计,核心数可根据需求进行配置,提供不同性能的选择。
2. 主频:龙芯gs232 处理器主频高,运行速度快,对于计算密集型任务具有出色的表现。
3. 缓存:龙芯gs232 处理器具有大容量的缓存,提高数据访问速度,加快任务处理效率。
4. 制程工艺:龙芯gs232 处理器采用先进的制程工艺,能够提供出色的性能和能效比。
三、龙芯gs232 处理器使用方法1. 安装:龙芯gs232 处理器适用于各类计算设备,如台式机、笔记本电脑、服务器等,用户可根据设备类型选择适合的处理器型号进行安装。
2. 驱动安装:用户在安装龙芯gs232 处理器后,需根据实际需求安装相应的驱动程序,以确保处理器能够正常运行。
3. 使用注意事项:在使用龙芯gs232 处理器时,用户需注意防止静电、保持散热、不超频使用等,以确保处理器稳定、安全运行。
四、龙芯gs232 处理器注意事项1. 使用环境:龙芯gs232 处理器适用于通风良好的环境中,避免长时间在高温、高湿等恶劣环境中运行。
龙芯转译指令龙芯是我国自主研发的一款处理器,为了更好地支持中文编程和提高运行效率,龙芯处理器引入了转译指令。
转译指令是利用硬件辅助技术对一组指令进行转换,使得改变指令的形式或者编码可以更高效地完成系统功能。
一、转译指令的定义转译指令是通过硬件将一组指令转换成另一组指令的指令集。
转译指令的作用是在不改变原有指令语义的前提下,通过改变指令格式或者编码形式,提高指令的执行效率和系统整体的性能。
二、转译指令的实现方式转译指令的实现可以采用以下方式:1.转换映射表法:将原有指令与转换后指令之间通过映射表进行对应,利用查表法实现转译指令。
这种方法需要额外的内存空间来存储映射表,但是可以实现多种指令的低成本转译。
2.模板匹配法:将原有指令的格式与转换后指令的格式进行匹配,然后在硬件中真正执行转换后的指令。
这种方法性能较高,但是实现复杂度较大。
3.源代码转换法:将编译器生成的中间代码转换成转译指令,然后在硬件中执行。
这种方法需要在编译器层面进行转换,但是可以实现指令级处理。
三、龙芯转译指令的应用龙芯处理器在支持中文编程方面,采用了转译指令的方案。
当用户在程序中使用中文调用函数或者使用中文变量名时,龙芯处理器会将其转换成相应的英文标识符,以提高程序执行效率。
另外,在龙芯处理器中还应用了一种特殊的转译指令,指令翻译单元(ITI)。
指令翻译单元可以将不同版本的指令进行互相转换,使得在不同版本指令集之间的软件可以兼容执行。
总之,转译指令是一种非常重要的技术手段,可以在不改变系统功能前提下,提高指令的执行效率和系统整体的性能。
在日常的编程中,我们也可以通过编写高效的源代码来提高程序的执行效率和系统的稳定性。
嵌入式边缘计算软硬件开发职业技能等级标准(2021年1.0版)龙芯中科技术股份有限公司制定2021年4月发布目录前言﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍1 1范围﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍2 2规范性引用文件﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍2 3术语和定义﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍3 4适用院校专业﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍4 5面向职业岗位(群)﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍5 6职业技能要求﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍6参考文献﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍14前言本标准按照GB/T1.1-2020《标准化工作导则第1部分:标准化文件的结构和起草规则》起草。
本标准起草单位:龙芯中科技术股份有限公司、深圳职业技术学院、北京化工大学、北京联合大学、北京物资学院、中智讯(武汉)科技有限公司、湖北水利水电职业技术学院、华北科技学院本标准起草人:杜安利、叶骐宁、杨黎、何宾、鲍泓、卢斯、丁官元、宋燕星、黎冠声明:本标准的知识产权归属于龙芯中科技术股份有限公司,未经龙芯中科技术股份有限公司授权不得印刷、销售。
1范围本标准规定了嵌入式边缘计算软硬件开发职业技能对应的工作领域、工作任务及职业技能要求。
本标准适合于在嵌入式边缘计算软硬件开发职业技能培训、考核与评价,相关用人单位的人员聘用,培训与考核可参照使用。
2规范性引用文件下列文件对于本标准的应用是必不可少的。
凡是注日期的引用文件,仅注日期的版本适合本标准。
凡是不注日期的引用文件,其最新版本适用于本标准。
GB/T20192140-T-469信息技术嵌入式系统术语GB8567-88和GB8567-2006软件开发国家标准GB/T36951-2018信息安全技术物联网感知终端应用安全技术要求GB/T20192140-T-469物联网边缘计算第1部分:通用要求3术语和定义国家、行业标准界定的以及下列术语和定义适用于本标准。
Q/LS
Q/LS 0014-2014 龙芯中科技术有限公司企业标准
龙芯开发系统Linux内核开发
详细规范
2014-05-01 发布2014-06-01 实施龙芯中科技术有限公司批准
Q/LS 0014-2014
目次
前言 (2)
1范围 (3)
2术语与定义 (3)
2.1内核文件分类 (3)
2.2模块与文件界定 (3)
3Patch级别与要求 (3)
4编程规范 (4)
4.1总则 (4)
4.2地址空间配置 (4)
4.3物理地址空间的访问 (4)
4.4全局变量使用 (4)
4.5编译约定 (4)
5内核的测试指南 (5)
6人员角色 (6)
7版本库 (6)
8 开发流程 (6)
附录A (7)
Q/LS 0014-2014
前言
本规范是龙芯中科技术有限公司制定的企业规范,暂无国家相关行业通用规范可参考。
本规范是对龙芯开发系统及其衍生兼容机的Linux内核开发、测试及发布过程的技术规定。
本规范的起草单位:龙芯中科技术有限公司。
本规范的主要起草人:高翔,孟小甫,段玮。
本规范审核人:王剑、成修治、王焕东、刘奇、邱吉、黄沛、刘绍宗、胡明昌、乔崇、李文刚。
本规范批准人:胡伟武。
Q/LS 0014-2014 龙芯开发系统Linux内核开发详细规范
1范围
本规范规定龙芯2号、3号开发系统的内核开发、测试及产品发布的详细要求,嵌入式开发系统不包括在内,但鼓励遵循本规范。
2术语与定义
2.1内核文件分类
内核文件分为三大类:源文件,配置文件及辅助文件。
其格式见表1。
2.2模块与文件界定
根据龙芯平台Linux内核实际情况,将内核的源码文件分为三部分:驱动部分、体系架构相关部分以及公共部分。
a) 驱动部分:包含内核driver目录下所有的文件。
b) 体系架构相关部分:内核源码中与体系架构相关的代码按模块可以分为中断、TLB、Cache、DMA、
总线、同步、内存地址空间、例外、时钟、综合等。
内核不同版本的详细说明示例以附录形式规定。
在内核2.6.32版本中,与体系架构相关的各模块涉及的文件示例见附录A。
c) 公共部分:未包含在体系结构相关部分与驱动部分的所有内核源文件都属于公共代码。
Kconfig与Makefile等文件都是源码文件对应的配置文件。
附录A给出了以loongson3为示例的体系架构相关源码文件典型组成与目录列表。
3Patch级别与要求
内核Patch根据其提交的权限控制与技术特点,分为如下5级:
a) 1级,驱动级。
涉及设备驱动的添加与功能完善,源码与配置文件的修改范围限定于driver
目录,对配置与编译文件的修改一般限定于新增驱动的支持。
测试工作以模块级测试为主。
b) 2级,架构级。
涉及体系架构相关的功能添加与完善。
可以修改架构相关文件,但不允许对配
置文件进行修改。
测试以体系架构相关的白盒测试为主。
c) 3级,芯片级。
涉及对新增桥片或系统架构(如单路到双路)的支持。
允许修改架构和公共部
分的源码与配置文件。
测试以白盒测试与系统黑盒测试相结合。
内核组需要提交书面的设计方案与测试报告报系统部经理审批。
d) 4级,公共级。
涉及内核公共部分代码的修改,与上游社区版本的同步更新也属于本级范畴。
允许对所有源码和配置文件进行修改。
内核组需要提交书面的设计方案与测试报告报系统部经理审批,必要时由系统部经理牵头组织公司层面的评审会进行审批。
e) 5级,主干级。
内核主版本的升级(如3.10内核的移植)。
对所有源码和配置文件进行修改。
Q/LS 0014-2014
内核组需要提交书面的设计方案与测试报告报系统部经理备案,必须由系统部经理牵头组织公司层面的评审会,由公司主管领导审批。
Patch的配置控制说明如表2。
4编程规范
4.1总则
龙芯Linux内核编程除需要遵循标准的Linux内核代码编程规范之外,还需要遵循本章要求。
4.2地址空间配置
龙芯平台的地址空间配置由BIOS进行,Linux内核只对其进行验证,不得在内核代码中对芯片的地址空间重新进行配置。
4.3物理地址空间的访问
所有提交的patch代码中,对物理地址寄存器的写访问必须要采用统一的宏定义地址的方式进行,禁止对物理地址直接赋值。
驱动代码中不得出现对非设备寄存器的更改访问。
CPU芯片架构相关的寄存器的地址定义,桥片相关寄存器地址的定义也均需存放固定的头文件中,不得随意在.c源码文件中添加寄存器地址的宏定义。
4.4全局变量使用
架构与驱动代码中要严格限制全局变量的使用。
驱动代码中不得采用“extern”变量方式对系统全局变量进行修改。
4.5编译约定
开发工程师进行编码时,必须要确定提交的patch在固定版本下无warning等警告信息出现。
内核的版本对应到固定的GCC版本。
开发组向测试组提交内核版本时,应填写表3,并进行存档。
4.6Patch提交的要求
开发工程师提交patch时,要进行说明。
对Bug类的patch,要符合“定位准确、机理清楚、问题复现、措施有效、举一反三”的要求。
Q/LS 0014-2014
5内核的测试指南
内核的测试分为架构测试,驱动测试,系统发布测试。
内核测试组应依据表4的要求制定详细的测试规范。
Q/LS 0014-2014
6人员角色
人员角色配置要求如表5所示。
7版本库
版本库包含开发库、受控库和存档库三个部分,描述见表6。
8开发流程
开发所用主要的支撑平台包括Git源码库,Gerrit代码审查系统,Bugzilla缺陷跟踪系统。
开发流程见表7,其中基本测试项目包含架构测试和驱动测试,本规范不对自测试项目进行规定。
Q/LS 0014-2014
附录A
源码文件典型配置
A.1 源码文件典型配置示例
内核版本2.6.32中涉及到龙芯3号CPU架构相关目录见表A.1。
根据龙芯3号开发系统的软硬件架构,在arch/mips/loongson3目录下统一管理与芯片、板卡相关目录。
龙芯3A与3B在操作系统层面可以做到兼容支持,所以在内核代码中对3A、3B不做区分。
arch/mips/loongson3目录包含common、rs780e 与ls2h三个下级目录。
其中common目录存放3号开发系统公共的文件,rs780e目录放置与3号+rs780E 系统相关的文件,ls2h放置与3号+2h系统相关的文件。
龙芯3号与rs780e架构相关文件见表A.2。
Q/LS 0014-2014
Q/LS 0014-2014
9。