# OpenLoongsonLib1c
**Repository Path**: CobooGuo/OpenLoongsonLib1c
## Basic Information
- **Project Name**: OpenLoongsonLib1c
- **Description**: 类似于STM32库的龙芯1c库(目前只封装了1c的)。
- **Primary Language**: C
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 33
- **Created**: 2017-07-26
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 龙芯1c库
这是一个封装了龙芯1c各种外设操作的库(类似于STM32的库),不断完善中...
# 为啥要做这个呢
目前龙芯1c能跑linux和RT-Thread,可是点个灯就难倒不少龙芯爱好者,因为对linux和RT-Thread不熟悉。
我认为linux和实时系统RT-Thread属于高级应用,做产品时才会用到。很多在校的童鞋可能连c语言都还不是很熟悉,你叫他去看linux和RT-Thread源码是不是有点太难为他了,呵呵。
回归初心,裸机程序是最合适的。为了进一步降低门槛,将各种外设封装成龙芯1c库。虽说最初是为了方便初学者,其实这个龙芯1c库不仅可以用于裸机编程,也可以用于各种实时系统。
# 愿景
目前裸机程序是通过pmon引导的,期待以后可以直接写到nandflash,上电直接从nandflash启动
# windows上搭建龙芯1c开发环境
[windows上的交叉编译工具链下载地址](http://pan.baidu.com/s/1i4YFrCT)
[windows上搭建龙芯1c开发环境](http://blog.csdn.net/caogos/article/details/72621417)
# 烧写和启动命令
目前是基于pmon的,即pmon像引导linux一样引导裸机程序,那么下载和烧写也是和linux类似的。如下
下载到内存,从内存中启动,掉电不保存,重启后恢复原样
load tftp://192.168.1.4/OpenLoongsonLib1c
g
每次启动自动从tftp服务器下载裸机到内存,并自动运行,同样掉电不保存,调试时常用这种方式
set al tftp://192.168.1.4/OpenLoongsonLib1c
烧写到flash,正式时使用
mtd_erase /dev/mtd0
devcp tftp://192.168.1.4/OpenLoongsonLib1c /dev/mtd0
每次上电自动从flash加载裸机程序并运行
set al /dev/mtd0
# 源码目录说明
源码目录包括“app”,“example”和“lib”。
目录“app”是用户放源文件的目录
目录“example”是库的测试函数所在目录,同时这些测试函数也初步演示了怎么使用库提供的接口
目录“lib”是库文件的目录,一般情况下,用户不应该修改该目录的文件
# 龙芯1c库与实时系统(RT-Thread、UCOSIII等)
龙芯1c库本身并没有限制,仅仅是把一些常见外设的功能封装为函数而已。所以龙芯1c库即可用于裸机编程,也可以用于实时系统,比如RT-Thread。
目前,已将龙芯1c库中一部分接口移植到了RT-Thread,具体请移步到[github上RT-Thread官方git](https://github.com/RT-Thread/rt-thread)查看。
移植龙芯1c库到RT-Thread的步骤很简单,只需要将龙芯1c库中目录“lib”内相关源文件拷贝到RT-Thread的龙芯1c BSP下的目录“libraries”内。
在RT-Thread中使用龙芯1c库中的函数和裸机编程时类似,在需要调用的地方先包含头文件,再调用
# 相关资源
[博客](http://blog.csdn.net/caogos)
qq群“633262684”,微信公众号“qin_wei_ben”,欢迎加入
龙芯1c库中封装的每个功能都写了测试代码来验证和演示,也写了博文详细描述,测试代码位于目录“example”中,每个用例为一个测试函数,函数main()中依次调用每个测试函数,博文见博客。如果还有疑问或者需要讨论的就加qq群和微信公众号。谢谢!