一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I.MX6ULL官方SDK驅(qū)動(dòng)LED燈

華仔的編程隨筆 ? 2023-05-03 20:53 ? 次閱讀

官方SDK簡(jiǎn)介

I.MX6ULL官方提供了裸機(jī)SDK包,使得學(xué)習(xí)上手冊(cè)很。I.MX6ULL的SDK包在NXP官網(wǎng)下載https://www.nxp.com/search?keyword=i.MX%25206ULL%2520SDK&start=0&category=software

9307d6fc6f838e6b206f4a507577ae20ae19084379e6172bb46e96245bd60fff.png

當(dāng)然原子在資料盤(pán)中也給我們提供了,在目錄L:\\baidudownloads\\【正點(diǎn)原子】阿爾法Linux開(kāi)發(fā)板(A盤(pán))-基礎(chǔ)資料\\【正點(diǎn)原子】阿爾法Linux開(kāi)發(fā)板(A盤(pán))-基礎(chǔ)資料\\07、I.MX6U參考資料\\03、I.MX6ULL SDK包目錄下面:

c88fe0500e157ab0f2c77fb872c412cb9a4fe01e06595812db44d55940512818.png

雙擊安裝程序,在目錄選擇時(shí),指定目錄,好在以后需要時(shí)找得到

f07c4c158a184c15364346a923496915873760a4c8a4f7288029936ceb6b43a6.png

安裝好后,文件夾如下:

77f0d7ae24bb5b845803e75b0f3296cafdaae2c781ae8ad9c7cb59206e0a33bc.png

我們裸機(jī)開(kāi)發(fā)的話用到以下三個(gè)文件:

fsl_common.h:位置為 SDK_2.2_MCIM6ULL\\devices\\MCIMX6Y2\\drivers\\fsl_common.h。

fsl_iomuxc.h: 位置為 SDK_2.2_MCIM6ULL\\devices\\MCIMX6Y2\\drivers\\fsl_iomuxc.h。

MCIMX6Y2.h: 位置為 SDK_2.2_MCIM6ULL\\devices\\MCIMX6Y2\\MCIMX6YH2.h。

整個(gè) SDK 包我們就需要上面這三個(gè)文件,把這三個(gè)文件準(zhǔn)備好,我們后面移植要用。

41b0d34f6e94f082bb0106c780b717242e053a36126d88ca579a18a5b878d749.png

98a18e4ddac692bdbb1bab3b645d14d11ade44ec5a79295edc2e3c319353135b.png

我們把這三個(gè)文拷到一個(gè)文件夾,以備以后開(kāi)發(fā)使用。

b0cfb64bc30566012cb92a4af6eb00b543ac032d70606b4b3567e74bc1fbb02f.png

編寫(xiě)實(shí)驗(yàn)程序

  1. 新建一個(gè)名為cc.h的頭文件,cc.h中存放著一些SDK庫(kù)文件需要使用的數(shù)據(jù)類(lèi)型,如下所示:
/***************************************************************
Copyright ? lugl.
文件名 : main.h
作者 : 劉建華
版本 : V1.0
描述 : 有關(guān)變量的類(lèi)型定義,nxp官方SDK的一些移植文件會(huì)用到。
其他 : 此程序?qū)W習(xí)左中凱老師課程
日志 : 初版 2023/5/3 劉建華修改
**************************************************************/
/************************************************************

* 
* 自定義一些數(shù)據(jù)類(lèi)型供庫(kù)文件使用
* 
* /
  */
  #define __I    volatile
  #define __O    volatile
  #define __IO   volatile

#define ON  1
#define OFF 0

typedef signed char          int8_t;
typedef signed short   int   int16_t;
typedef signed         int   int32_t;
typedef unsigned       char  uint8_t;
typedef unsigned short int   uint16_t;
typedef unsigned       int   uint32_t;
typedef unsigned long long   uint64_t;
typedef signed   char        s8;
typedef signed   short int   s16;
typedef signed   int         s32;
typedef signed   long long int s64;
typedef unsigned char        u8;
typedef unsigned short int   u16;
typedef unsigned int         u32;
typedef unsigned long long int u64;

#endif /* __CC_H */
  1. start.S:
/***************************************************************
Copyright ? lugl.
文件名 : start.s
作者 : 劉建華
版本 : V1.0
描述 : I.MX6U-ALPHA/I.MX6ULL 開(kāi)發(fā)板啟動(dòng)文件,完成 C 環(huán)境初始化,
C 環(huán)境初始化完成以后跳轉(zhuǎn)到 C 代碼。
其他 : 此程序?qū)W習(xí)左中凱老師課程
日志 : 初版 2023/5/3 劉建華修改
**************************************************************/
.global _start       @全局標(biāo)號(hào)

/*

* 描述:_start函數(shù),程序從此函靈敏開(kāi)始執(zhí)行,
* ```
  此函數(shù)主要功能是設(shè)置C運(yùn)行環(huán)境

*/

_start:

/*  進(jìn)入SVC模式 */
mrs r0, cpsr
bic r0, r0, #0x1f    @ 將r0的低5位清零,也就是cpsr的M0-M4
orr r0, r0, #0x13    @ r0或上0x13,表示使用SVC模式
msr cpsr, r0         @ 將r0 的數(shù)據(jù)寫(xiě)入到cpsr_c中

ldr sp, =0x80200000  @ 設(shè)置棧指針
b main               @ 跳轉(zhuǎn)到main函數(shù)(再也不用回來(lái)了)
  1. main.c
/***************************************************************
Copyright ? lugl.
文件名 : main.c
作者 : 劉建華
版本 : V1.0
描述 : 使用C語(yǔ)言來(lái)點(diǎn)亮開(kāi)發(fā)板的LED燈,基于官方的SDK來(lái)開(kāi)發(fā)。
學(xué)習(xí)掌握如何用c語(yǔ)言來(lái)完成對(duì)I.MX6U的GPIO初始化和控制
其他 : 此程序?qū)W習(xí)左中凱老師課程
需要使用到的文件有fsl.common.h、fsl_iomuxc.h、MCIMX6Y2.h
日志 : 初版 2023/5/3劉建華修改
**************************************************************/

#include "fsl_common.h"
#include "fsl_iomuxc.h"
#include "MCIMX6Y2.h"

/***

* @description :使能I.MX6ULL所有外設(shè)時(shí)鐘
* @param       :無(wú)
* @return      :無(wú)
* 

***/
void clk_enable(void)
{
CCM->CCGR0 = 0xFFFFFFFF;
CCM->CCGR1 = 0xFFFFFFFF;
CCM->CCGR2 = 0xFFFFFFFF;
CCM->CCGR3 = 0xFFFFFFFF;
CCM->CCGR4 = 0xFFFFFFFF;
CCM->CCGR5 = 0xFFFFFFFF;
CCM->CCGR6 = 0xFFFFFFFF;
}

/***

* @description :初始化LED對(duì)應(yīng)的GPIO
* @param       :無(wú)
* @return      :無(wú)
* 

*/
void led_init(void)
{
/* 初始化IO 復(fù)用 */
IOMUXC_SetPinMux(IOMUXC_GPIO1_IO03_GPIO1_IO03,0);
/* 配置 IO的屬性 */
IOMUXC_SetPinConfig(IOMUXC_GPIO1_IO03_GPIO1_IO03, 0x10b0);
/* 初始化GPIO 設(shè)置GPIO1_IO03  為輸出*/
GPIO1->GDIR |= (1<<3);
/* 設(shè)置GPIO1——IO03為低電平,打開(kāi)LED0 */
GPIO1->DR &= ~(1<<3);
}

/************************************************************

* @descriptions: 打開(kāi)LED燈
* @param       : 無(wú)
* @return      : 無(wú)
  *************************************************************/
void led_on(void)
{
/*
  * 將GPIO1_DR 的bit3清零,打開(kāi)led0燈
    */
    GPIO1->DR &= ~(1<<3);
    }

/************************************************************

* @descriptions: 關(guān)閉LED燈
* @param       : 無(wú)
* @return      : 無(wú)
  *************************************************************/
void led_off(void)
{
/*
  * 將GPIO1_DR 的bit3置1,關(guān)閉led0燈
    */
    GPIO1->DR |= (1<<3);
    }

/************************************************************

* @descriptions: 短時(shí)間延時(shí)函數(shù)
* @param -n    : 要延時(shí)循環(huán)次數(shù),模式延時(shí)
* @return      : 無(wú)
  *************************************************************/
  void delay_short(volatile unsigned int n)
  {
  while (n--)
  {
  ;
  }
  }

/************************************************************

* @descriptions: 延時(shí)函數(shù),在396MHz的主頻下延時(shí)時(shí)間大約為1ms
* @param -n    : 要延時(shí)的ms數(shù)
* @return      : 無(wú)
  *************************************************************/
  void delay(volatile unsigned int n)
  {
  while (n--)
  {
  delay_short(0x7ff);
  }

}

/************************************************************

* @descriptions: main函數(shù)
* @param       : 無(wú)
* @return      : 無(wú)
  *************************************************************/
  int main(void)
  {
  clk_enable();  //使能所有時(shí)鐘
  led_init();    //初始化LED
  
  while (1)
  {
  led_on();   //打開(kāi)LED
  delay(500); //延時(shí)
  led_off();  //關(guān)閉LED
  delay(500);
  }
  return 0;
  }
  1. lds、makefile 拷貝前面的就OK,
  2. 把文件放到虛擬機(jī)上,運(yùn)行make,就得到ledc.bin文件,燒寫(xiě)到SD卡

06725e846809d30cc9c26c158f351d857296e903dcf5017b1021362457fe6ad2.png

5dd6650983ad8c4b13699cee3c783f91f12640f33acf307b87f1dfc80e9ac81b.png

經(jīng)驗(yàn)

教程上說(shuō),三個(gè)SDK文件需要做相應(yīng)的修改,我們?cè)诰幾g時(shí),根據(jù)錯(cuò)誤提示修改就行了。這次的實(shí)驗(yàn)主要體驗(yàn)SDK在裸機(jī)開(kāi)發(fā)方面所提供的方便。特別是宏定義來(lái)一給一些固定的參數(shù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23614

    瀏覽量

    669076
  • NXP
    NXP
    +關(guān)注

    關(guān)注

    61

    文章

    1318

    瀏覽量

    186797
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5389

    瀏覽量

    100888
  • SDK
    SDK
    +關(guān)注

    關(guān)注

    3

    文章

    1057

    瀏覽量

    47341
  • i.MX6
    +關(guān)注

    關(guān)注

    1

    文章

    37

    瀏覽量

    16478
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    i.MX6ULL 驅(qū)動(dòng)開(kāi)發(fā)7—按鍵輸入捕獲與GPIO輸入配置與高低電平讀取

    本篇主要介紹了i.MX6ULL的按鍵檢測(cè)的使用,主要的知識(shí)點(diǎn)是設(shè)備樹(shù)的修改,以及GPIO的輸入配置與高低電平的讀取。
    的頭像 發(fā)表于 05-24 09:11 ?6655次閱讀
    <b class='flag-5'>i.MX6ULL</b> <b class='flag-5'>驅(qū)動(dòng)</b>開(kāi)發(fā)7—按鍵輸入捕獲與GPIO輸入配置與高低電平讀取

    移植NXP官方linux 5.4內(nèi)核到i.MX6ULL開(kāi)發(fā)板

    本文描述移植NXP官方 linux 5.4 內(nèi)核到i.MX6ULL開(kāi)發(fā)板。
    發(fā)表于 12-19 11:10 ?2243次閱讀

    如何在i.MX6ULL睡眠時(shí)停止刷新LCD?

    為了更好的 EMC,我們需要在 i.MX6ULL 進(jìn)入睡眠狀態(tài)時(shí)停止 LCD 刷新。 能否實(shí)現(xiàn) ? 平臺(tái): i.MX6ULL 系統(tǒng): Linux
    發(fā)表于 04-03 07:14

    迅為I.MX6ULL終結(jié)者開(kāi)發(fā)板支持JTAG調(diào)試

    i.MX6ULL SDK開(kāi)發(fā)包NXP官方提供了i.MX6ULLSDK開(kāi)發(fā)包, 這個(gè)SDK包提供
    發(fā)表于 05-06 14:09

    i.MX6ULL開(kāi)發(fā)板硬件資源

    迅為i.MX6ULL 終結(jié)者開(kāi)發(fā)板硬件資源非常豐富,幾乎將 i.MX6ULL 芯片的所有資源都擴(kuò)展引出到底板上了,底板提供了豐富的外設(shè)接口,開(kāi)發(fā)板的尺寸是 190mm*125mm,充分考慮了人性化設(shè)計(jì),整體顯得十分大。
    發(fā)表于 12-29 06:18

    初識(shí) i.MX6ULL 寄存器

    裸機(jī)開(kāi)發(fā)_L1_匯編LED實(shí)驗(yàn)0. 本節(jié)目標(biāo)1. 硬件層電路2. 初識(shí) i.MX6ULL 寄存器2.1 i.MX6ULL 時(shí)鐘控制寄存器2.2 i.MX6ULL IO復(fù)用寄存器2.3
    發(fā)表于 12-20 07:13

    關(guān)于i.MX6ULL配置GPIO

    正如學(xué)習(xí)C語(yǔ)言時(shí)寫(xiě)的第一段代碼都是“HelloWorld!”,接觸一款新的處理器時(shí)往往是從點(diǎn)亮一個(gè)LED開(kāi)始;而點(diǎn)亮一個(gè)LED,則需要操作這款芯片的GPIO外設(shè)。那么作為廣受歡迎的i.MX6ULL
    發(fā)表于 08-05 10:37

    I.MX6ULL UART傳輸問(wèn)題求解

    I.MX6ULL UART傳輸問(wèn)題
    發(fā)表于 04-21 08:09

    飛凌i.MX6ULL開(kāi)發(fā)板的評(píng)測(cè),再次進(jìn)階擁有更高的性?xún)r(jià)比

    處理器MCIMX6Y2開(kāi)發(fā)設(shè)計(jì),采用先進(jìn)的ARMCortex-A7內(nèi)核,運(yùn)行速度高達(dá)800MHz。i.MX6ULL應(yīng)用處理器包括一個(gè)集成的電源管理模塊,降低了外接電源的復(fù)雜性,并簡(jiǎn)化了上電時(shí)序。 i.MX6ULL
    發(fā)表于 10-27 11:55 ?1627次閱讀
    飛凌<b class='flag-5'>i.MX6ULL</b>開(kāi)發(fā)板的評(píng)測(cè),再次進(jìn)階擁有更高的性?xún)r(jià)比

    基于NXP i.MX6ULL處理器的FETMX6ULL-C核心板

    “性?xún)r(jià)比高,功能接口豐富,資料齊全,穩(wěn)定性強(qiáng)”這是許多用戶對(duì)飛凌FETMX6ULL-S核心板的評(píng)價(jià)。作為NXP公司一顆經(jīng)典的MPU,i.MX6ULL的市場(chǎng)認(rèn)可度無(wú)需多言。而作為NXP公司的金牌
    發(fā)表于 04-11 15:05 ?1249次閱讀
    基于NXP <b class='flag-5'>i.MX6ULL</b>處理器的FETMX<b class='flag-5'>6ULL</b>-C核心板

    i.MX6ULL驅(qū)動(dòng)開(kāi)發(fā)4——點(diǎn)亮LED(寄存器版)

    本篇主要介紹了如何通過(guò)操作寄存器來(lái)點(diǎn)亮i.MX6ULL開(kāi)發(fā)板上的led,通過(guò)編寫(xiě)LED對(duì)應(yīng)的驅(qū)動(dòng)程序和應(yīng)用程序,實(shí)現(xiàn)程序設(shè)計(jì)的分層。
    的頭像 發(fā)表于 05-21 21:26 ?3194次閱讀
    【<b class='flag-5'>i.MX6ULL</b>】<b class='flag-5'>驅(qū)動(dòng)</b>開(kāi)發(fā)4——點(diǎn)亮<b class='flag-5'>LED</b>(寄存器版)

    基于i.MX6ULL點(diǎn)亮LED

    都說(shuō)入門(mén)一款芯片的第一步是點(diǎn)亮LED,但是i.MX6ULL入門(mén)門(mén)檻比較高,特別是通過(guò)自學(xué)入門(mén)的,這個(gè)系列已經(jīng)寫(xiě)了好久了,最近打算在項(xiàng)目不急的時(shí)候加快一下學(xué)習(xí)進(jìn)度,現(xiàn)在就開(kāi)始學(xué)習(xí)一下怎么點(diǎn)亮一個(gè)LED
    的頭像 發(fā)表于 03-06 09:09 ?1006次閱讀

    【北京迅為】i.MX6ULL開(kāi)發(fā)板移植 Debian 文件系統(tǒng)

    【北京迅為】i.MX6ULL開(kāi)發(fā)板移植 Debian 文件系統(tǒng)
    的頭像 發(fā)表于 02-10 15:34 ?1368次閱讀
    【北京迅為】<b class='flag-5'>i.MX6ULL</b>開(kāi)發(fā)板移植 Debian 文件系統(tǒng)

    基于i.MX6ULL的掉電檢測(cè)設(shè)計(jì)與軟件測(cè)試

    基于i.MX6ULL的掉電檢測(cè)設(shè)計(jì)與軟件測(cè)試基于i.MX6ULL平臺(tái)設(shè)計(jì)實(shí)現(xiàn)掉電檢測(cè)功能,首先選擇一路IO,利用IO電平變化觸發(fā)中斷,在編寫(xiě)驅(qū)動(dòng)時(shí)捕獲該路GPIO的中斷,然后在中斷響應(yīng)函數(shù)中發(fā)
    的頭像 發(fā)表于 11-09 10:40 ?1050次閱讀
    基于<b class='flag-5'>i.MX6ULL</b>的掉電檢測(cè)設(shè)計(jì)與軟件測(cè)試

    【迅為電子】i.MX6UL和i.MX6ULL芯片區(qū)別與開(kāi)發(fā)板對(duì)比

    【迅為電子】i.MX6UL和i.MX6ULL芯片區(qū)別與開(kāi)發(fā)板對(duì)比
    的頭像 發(fā)表于 11-28 14:31 ?1058次閱讀
    【迅為電子】<b class='flag-5'>i.MX6</b>UL和<b class='flag-5'>i.MX6ULL</b>芯片區(qū)別與開(kāi)發(fā)板對(duì)比