龙芯1c库
文章平均质量分 81
勤为本
龙芯爱好者一枚
展开
-
龙芯1C300B白菜板提示PANIC Unexpected TLB refill exception!或PANIC Unexpected General exception
目录问题描述分析问题解决办法板子上SDRAM型号与初始化代码中的型号保持一致虚焊问题描述白菜板每次重启后,串口只打印以下内容asm uart2 init ok!PANIC! Unexpected TLB refill exception!CAUSE=4000800cSTATUS=00400002ERRORPC=00000000EPC=80011...原创 2019-11-15 16:09:42 · 1770 阅读 · 0 评论 -
【龙芯1c库】在裸机编程环境中常用的中断接口简介
本文所说的裸机编程是基于“龙芯1c库”的。“龙芯1c库”类似于STM32库,“龙芯1c库”的git地址是https://gitee.com/caogos/OpenLoongsonLib1c中断对于任何一款CPU来说都是非常重要的,对龙芯1c也是如此。另一篇博文以linux中的中断作为实例,详细分析了龙芯1c的中断。龙芯1c的中断与arm的中断有些不同,如果对龙芯1c的中断还没有概念,请移步到《原创 2017-10-05 18:21:08 · 2284 阅读 · 0 评论 -
【龙芯1c库】封装systick系统滴答定时器接口和使用示例
本文首先介绍“龙芯1c库”中封装的systick系统滴答定时器相关的几个函数,然后通过读取tick数来测试相关接口函数是否正常工作,然后是systick滴答定时器的一些介绍知识,最后才讲解如何封装这几个接口函数的。“龙芯1c库”是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库,完整源码请移步到https://gitee.com/caogos/OpenLoongsonLib1c原创 2018-01-28 17:23:33 · 798 阅读 · 1 评论 -
【龙芯1c库】封装串口接口和使用示例
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。本文先讲解了龙芯1c库中的串口相关的函数,然后是如何利用这些函数实现串口通信。比如在串口打印helloworld,实现串口echo(即收到什么原封不动的发送回去),如何实现printf。再后是简单介绍一下龙芯1c的串口,最后是讨论一下串口相关的接口函数时如何封装的。龙芯1c库的git地址是https://gitee.com...原创 2018-03-16 11:08:08 · 2237 阅读 · 1 评论 -
【龙芯1c库】上电初始化汇编代码start.S注解(pmon类似)
参考pmon源码,将start.S、Makefile和链接脚本移植到裸机程序,实现纯粹的真正的裸机程序。这样就不再需要pmon,上电后直接运行裸机程序。本文涉及的异常和地址空间的相关知识,需要结合《龙芯1c的芯片手册》、《see mips run》和《北京龙芯的龙芯1c开发板手册》。这几个文档都已经放到龙芯1c库的git上了,最新最完整的代码也请移步到git查看。龙芯1c库的git地址是https...原创 2018-01-05 18:35:04 · 5212 阅读 · 1 评论 -
【龙芯1c库】换内存芯片后如何修改SDRAM配置(pmon类似)
由于各种原因难免会涉及更换SDRAM内存芯片,比如为了降低硬件成本,在够用的前提下,一般会选择容量更小的。本文主要讨论在更换了SDRAM芯片后,初始化代码中内存相关参数应该如何修改。这里以ISSI的IS42S16400在“龙芯1c库”中的配置为例(pmon中类似),参考SDRAM芯片手册中,修改SDRAM相关参数。龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。完整的源...原创 2018-02-07 18:21:09 · 2277 阅读 · 0 评论 -
【龙芯1c库】移植标准c库libc(libm类似)
本文将pmon中的libc移植到龙芯1c库中,用于龙芯1c的纯裸机编程。实际上标准的c库libc不应该属于龙芯1c库,狭义的“龙芯1c库”应该是像“STM32库”那样只封装了各个外设的功能,这里说的“龙芯1c库”我认为应该是“广义的”,泛指裸机编程需要的各种常用功能的集合。先不咬文嚼字了,暂且这样理解吧。除了libc外,标准数学库libm的移植也是类似的。龙芯1c库的git地址是https://g...原创 2018-03-14 11:21:22 · 2645 阅读 · 0 评论 -
【龙芯1c库】封装CAN接口和使用示例
can使用还是比较广泛的,之前有网友在龙芯1b和龙芯1c上已经测试过了在裸机编程中使用CAN接口,这里把他们分享的程序贴上来,供大家参考。龙芯1b上的测试程序在https://gitee.com/caogos/OpenLoongsonLib1b龙芯1c上的测试程序在https://gitee.com/caogos/OpenLoongsonLib1c据说,淘宝上的CAN模块TJA1050可以用。这里...原创 2018-04-05 11:11:22 · 1730 阅读 · 0 评论 -
windows上搭建龙芯1c300B开发环境(eclipse+mysys2)
目录思路简介交叉编译工具链下载和安装安装msys2下载msys2配置pacman更新软件包数据手动安装make添加环境变量编译在命令行中编译龙芯1c库(或者裸机程序)使用make编译在eclipse中编译龙芯1c库(或裸机程序)eclipse的下载和安装新建Makefile项目把龙芯1c库的源码加到工程中在eclipse中编译(...原创 2017-05-22 10:09:02 · 9607 阅读 · 0 评论 -
手焊白菜板经验总结
前言本文是我学习手工焊接白菜板的一些心得体会,供焊接新手参考。如果文中有不对、不妥、或者有更好的思路的话,可以在文末留言。这里先介绍一下白菜板。白菜板是基于龙芯1C300B处理器的最小系统板,也就是把龙芯1C300B当作单片机用。白菜板的所有资料,包括原理图和PCB的源文件,都开源了。感兴趣的童鞋可以直接把pcb源文件拿到嘉立创打样,然后焊接。白菜板原理图和PCB源文件的下载地址是 h...原创 2019-08-02 16:32:35 · 1499 阅读 · 0 评论 -
【龙芯1c库】封装硬件SPI接口和使用示例
本文首先介绍龙芯1c库中封装的硬件SPI相关的几个接口函数,然后使用双路16位ADC芯片TM7705来测试硬件SPI相关接口是否正常工作,然后以linux为参考,分析了硬件SPI接口的要点,最后才是接口函数的源码清单。原创 2017-10-26 15:02:23 · 3566 阅读 · 0 评论 -
【龙芯1c库】封装硬件I2C接口和使用示例
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。完整源码请移步到https://gitee.com/caogos/OpenLoongsonLib1c将温湿度传感器AM2320接在一个硬件I2C引脚上,使用本文封装好的接口与AM2320通信,读取温湿度信息。以此验证硬件I2C接口是否正常工作,其后在详细讲解是如何封装硬件I2C接口的。龙芯1c库中硬件I2C接口使用示例硬件...原创 2017-09-08 10:55:45 · 3426 阅读 · 0 评论 -
【龙芯1c库】封装硬件定时器接口和使用示例
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。完整源码请移步到https://gitee.com/caogos/OpenLoongsonLib1c龙芯1c库中硬件定时器接口使用示例封装的接口函数简介首先来看看有哪些接口,如下// 硬件定时器typedef enum{ TIMER_PWM0, // P...原创 2017-06-22 15:09:31 · 2098 阅读 · 1 评论 -
【龙芯1c库】龙芯1c的中断分析
封装龙芯1c上常见外设接口,便于在裸机程序或实时操作系统中使用,类似于STM32库,正在不断添加中。Git地址是https://gitee.com/caogos/OpenLoongsonLib1c龙芯1c中断结构分析异常和中断的区别在MIPS体系结构中,中断、自陷、系统调用以及其它打断程序正常执行流程的事件称为异常,即异常包括中断,中断是一种特定类型的异常。龙芯1c的异常分为四级第一级: 各种情况...原创 2017-04-10 15:27:18 · 2633 阅读 · 1 评论 -
【龙芯1c库】移植硬浮点FPU
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。完整源码请移步到https://gitee.com/caogos/OpenLoongsonLib1c龙芯1C上有硬浮点协处理器,整个移植过程主要参考《see mips run 中文版.pdf》中第7章“浮点支持”。文档《see mips run 中文版.pdf》可以在“https://gitee.com/caogos/...原创 2017-08-16 10:37:42 · 1817 阅读 · 0 评论 -
【龙芯1c库】封装模拟I2C接口和使用示例
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。Git地址:https://gitee.com/caogos/OpenLoongsonLib1cI2C接口是常用的接口之一,很多传感器都是使用I2C接口,本文使用普通GPIO模拟I2C,实现与温湿度传感器AM2320正常通信。 先展示如何使用模拟I2C接口,然后再来看看怎么封装这些接口的。龙芯1c库中模拟I2C接口使用示例...原创 2017-06-12 11:51:57 · 1461 阅读 · 2 评论 -
【龙芯1c库】封装软件延时接口和使用示例
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。Git地址:https://gitee.com/caogos/OpenLoongsonLib1c程序中难免会用到延时函数,一般通过执行n个nop指令实现延时。为此封装了delay_us(i), delay_ms(i), delay_s(i)三个函数,分别延时ius, ims, is。并测试了几个函数的延时精度,除了延时时间...原创 2017-05-28 18:52:09 · 815 阅读 · 0 评论 -
【龙芯1c库】封装引脚复用接口和使用示例
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。Git地址:https://gitee.com/caogos/OpenLoongsonLib1c引脚复用不是一个单独的功能,但在很多地方都需要用到。我想还是有必要单独讨论一下的,所以就有了此文。龙芯1c库中引脚复用接口使用示例引脚复用接口简介提供两个接口,分别是/* * 把指定pin设置为指定用途(普通gpio,非gpi...原创 2017-05-19 15:25:32 · 1404 阅读 · 0 评论 -
【龙芯1c库】封装硬件pwm接口和使用示例
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。Git地址:https://gitee.com/caogos/OpenLoongsonLib1c本文通过“龙芯1c库”中提供的PWM接口,实现了在4路pwm的输出连续的pwm脉冲和单个脉冲。在讲解了pwm接口之后,才开始详细介绍寄存器,以及怎样使用这些寄存器来封装接口,最后给出了封装的pwm接口代码清单。 龙芯...原创 2017-05-12 18:14:40 · 2209 阅读 · 0 评论 -
【龙芯1c库】封装时钟接口和使用示例
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。Git地址:https://gitee.com/caogos/OpenLoongsonLib1c本文通过“龙芯1c库”中提供的时钟相关接口,获取了PLL,CPU,DDR和APB的时钟,并将其打印出来,然后再详细讲解是如何封装这几个接口的。龙芯1c库中时钟接口使用示例时钟接口简介提供几个clk_get_xxx_rate()的...原创 2017-05-08 18:21:12 · 1029 阅读 · 0 评论 -
【龙芯1c库】封装gpio接口和使用示例
龙芯1c库是把龙芯1c的常用外设的常用功能封装为一个库,类似于STM32库。git地址:https://gitee.com/caogos/OpenLoongsonLib1c本文首先以一个例子介绍“龙芯1c库”中gpio接口是怎样使用的,然后再详细讲解是怎样封装这些接口的。龙芯1c库中gpio接口使用示例gpio接口简介龙芯1c库提供3个接口,分别是gpio_init(),gpio_set()和gp...原创 2017-04-19 16:40:55 · 3306 阅读 · 2 评论 -
【龙芯1c库】龙芯1c上c语言写的函数调用汇编语言写的函数
封装龙芯1c上常见外设接口,便于在裸机程序或实时操作系统中使用,类似于STM32库,正在不断添加中。Git地址是https://gitee.com/caogos/OpenLoongsonLib1c封装龙芯1c库难免会涉及到汇编程序,本文以c语言main()函数中调用一个用汇编实现的禁止中断的函数。源码如下test_entry.S#define v0 $2 /* return v...原创 2017-03-24 12:20:31 · 1620 阅读 · 0 评论