docker 龍芯板_#物聯網


文章目錄

前言

一、GPIO是什麼?

二、新建項目操作步驟(後續文章不再新建項目)

三、點亮LED代碼

四、編譯調試

由於未帶開發板,所有暫時未有實物展示效果,回頭補上

總結


前言

 

docker 龍芯板_#嵌入式硬件_02

ls1x-drv:開發板設備的通用驅動,包含 LS1B 所有控制器

core:啓動文件和 LS1B 的管腳定義

libc:庫文件

include:頭文件 



隨着龍芯1B嵌入式芯片的發展,學習之前一定要先看各類文件!

龍芯 1B 芯片是基於 GS232 處理器核的片上系統,具有高性價比,可廣泛應用於工業控 制、家庭網關、信息家電、醫療器械和安全應用等領域。

1B 採用 Wire Bond BGA256 封裝。

1B 芯片具有以下關鍵特性:

• 集成一個 GS232 雙發射龍芯處理器核,指令和數據 L1 Cache 各 8KB

• 集成一路 LCD 控制器,最大分辨率可支持到 1920*1080@60Hz/16bit

• 集成 2 個 10M/100M 自適應 GMAC

• 集成 1 個 16/32 位 133MHz DDR2 控制器

• 集成 1 個 USB 2.0 接口,兼容 EHCI 和 OHCI

• 集成 1 個 8 位 NAND FLASH 控制器,最大支持 32GB

• 集成中斷控制器,支持靈活的中斷設置

• 集成 2 個 SPI 控制器,支持系統啓動

• 集成 AC97 控制器 • 集成 1 個全功能串口、1 個四線串口和 10 個兩線串口

• 集成 3 路 I2C 控制器,兼容 SMBUS • 集成 2 個 CAN 總線控制器

• 集成 61 個 GPIO 端口

• 集成 1 個 RTC 接口

• 集成 4 個 PWM 控制器

• 集成看門狗電路

docker 龍芯板_#嵌入式硬件_03



docker 龍芯板_新建項目_04

各類説明都有!!!


此文不講述寄存器方式代碼!!!

一、GPIO是什麼?

LS1B0200 具有 61 位 GPIO,支持位操作。

當 GPIO 作為輸入時,高電平電壓範圍是 3.3V-5V, 低電平是 0V;

當 GPIO 作為輸出時,高電平是 3.3V,低電平是 0V;

GPIO 對應的所有 PAD 都 是推拉方式。

GPIO 引腳編號:GPIO00~GPIO61,但是沒有 GPIO31,共計 61 個引腳。

GPIO寄存器方式以及複用方式在羣內文檔中有介紹,在此不再贅述。

docker 龍芯板_#物聯網_05



二、新建項目操作步驟(後續文章不再新建項目)

LED內部電路圖:

docker 龍芯板_docker 龍芯板_06


新建項目:

第一步:

docker 龍芯板_新建項目_07


第二步:

docker 龍芯板_新建項目_08


第三步:

docker 龍芯板_#物聯網_09


 第四步:

docker 龍芯板_#物聯網_10


 第五步:

docker 龍芯板_#單片機_11


新建項目完成:

docker 龍芯板_新建項目_12

三、點亮LED代碼

#include <stdio.h>

#include "ls1b.h"
#include "mips.h"

//-------------------------------------------------------------------------------------------------
// BSP
//-------------------------------------------------------------------------------------------------

#include "bsp.h"
#include "ls1b_gpio.h"
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------

#define LED1 44
#define LED2 45
#define LED3 46



#define ON  0
#define OFF 1


//LED初始化
 void LED_IO(void)
 {
    //設置GPIO為輸出狀態
    gpio_enable(LED3,DIR_OUT);
    gpio_enable(LED2,DIR_OUT);
    gpio_enable(LED1,DIR_OUT);
    
    gpio_write(LED3,OFF);
    gpio_write(LED2,OFF);
    gpio_write(LED1,OFF);
 }

//LED測試函數
 void LED_Test(void)
 {
    gpio_write(LED1,ON);
    delay_ms(100);
    gpio_write(LED1,OFF);
    gpio_write(LED2,ON);
    delay_ms(100);
    gpio_write(LED2,OFF);
    gpio_write(LED3,ON);
    delay_ms(100);
    gpio_write(LED3,OFF);
    
 }

int main(void)
{
    printk("\r\nmain() function.\r\n");
    LED_IO();

    for (;;)
    {
        LED_Test();
    }

    return 0;
}

編譯完成,無問題。

docker 龍芯板_#嵌入式硬件_13

四、編譯調試

(1)點擊

docker 龍芯板_#單片機_14

圖標進行編譯,編譯無誤後,點擊

docker 龍芯板_#嵌入式硬件_15

圖標,將程序下載到內存之 中。注意:此時代碼沒有下載到 nand flash 之中,按下復位鍵後,程序會消失。

(2)改延時時間,調整 LED 閃爍速度。

(3)修改程序,控制其它 3 個 LED 閃爍。


總結

        要理解GPIO的工作方式以及庫函數的編寫方式。龍芯寫代碼讓我感覺特別像STM32CubeMX的方式,其實就是感覺初始化起來很簡單,用起來很方便,只有推拉方式。