日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux-tq2440

發(fā)布時間:2025/3/21 linux 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux-tq2440 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
cpp]?view plaincopy
  • ??
  • //?文件名 key_led.c??
  • //?功能:??
  • //?當(dāng)不按任何鍵時,LED2,3,4三個燈流水點亮.??
  • //?當(dāng)按下任何一個按鍵時,對應(yīng)的LED燈點亮,其他的熄滅.??
  • //??
  • //?GPB5,?GPB6,?GPB7,?GPB8?---?LED1,?LED2,?LED3,?LED4??
  • #define?GPBCON??????(*(volatile?unsigned?long?*)0x56000010)??
  • #define?GPBDAT??????(*(volatile?unsigned?long?*)0x56000014)??
  • ??
  • #define?GPB5_msk????(3<<(5*2))??
  • #define?GPB6_msk????(3<<(6*2))??
  • #define?GPB7_msk????(3<<(7*2))??
  • #define?GPB8_msk????(3<<(8*2))??
  • ??
  • #define?GPB5_out????(1<<(5*2))??
  • #define?GPB6_out????(1<<(6*2))??
  • #define?GPB7_out????(1<<(7*2))??
  • #define?GPB8_out????(1<<(8*2))??
  • ??
  • //?GPF1,?GPF4,?GPF2,?GPF0?---?K1,?K2,?K3,?K4??
  • #define?GPFCON??????(*(volatile?unsigned?long?*)0x56000050)??
  • #define?GPFDAT??????(*(volatile?unsigned?long?*)0x56000054)??
  • ??
  • #define?GPF1_msk????(3<<(1*2))??
  • #define?GPF4_msk????(3<<(4*2))??
  • #define?GPF2_msk????(3<<(2*2))??
  • #define?GPF0_msk????(3<<(0*2))??
  • ??
  • #define?GPF1_in?????(0<<(1*2))??
  • #define?GPF4_in?????(0<<(4*2))??
  • #define?GPF2_in?????(0<<(2*2))??
  • #define?GPF0_in?????(0<<(0*2))??
  • ??
  • void??wait(volatile?unsigned?long?dly)??
  • {??
  • ????for(;?dly?>?0;?dly--);??
  • }??
  • ??
  • int?main(void)??
  • {??
  • ????unsigned?long?i?=?0;??
  • ??????
  • ????GPBCON?&=?~(GPB5_msk?|?GPB6_msk?|?GPB7_msk?|?GPB8_msk);??
  • ????GPBCON?|=?GPB5_out?|?GPB6_out?|?GPB7_out?|?GPB8_out;????????//?將LED1,2,3,4對應(yīng)的GPB5/6/7/8三個引腳設(shè)為輸出??
  • ??????
  • ????GPFCON?&=?~(GPF1_msk?|?GPF4_msk?|?GPF2_msk?|?GPF0_msk);??
  • ????GPFCON?|=?GPF1_in?|?GPF4_in?|?GPF2_in?|?GPF0_in;????????????//?將K1,2,3,4對應(yīng)的GPF1/4/2/0三個引腳設(shè)為輸入??
  • ??????
  • ????while(1)??
  • ????{??
  • ????????if((GPFDAT&(1<<1))?==?0)?//?K1??
  • ????????{??
  • ????????????GPBDAT?|=?((1<<5)|(1<<6)|(1<<7)|(1<<8));????//?全熄滅??
  • ????????????GPBDAT?&=?~(1<<5);??
  • ????????}??
  • ????????else?if((GPFDAT&(1<<4))?==?0)?//?K2??
  • ????????{??
  • ????????????GPBDAT?|=?((1<<5)|(1<<6)|(1<<7)|(1<<8));????//?全熄滅??
  • ????????????GPBDAT?&=?~(1<<6);??
  • ????????}??
  • ????????else?if((GPFDAT&(1<<2))?==?0)?//?K3??
  • ????????{??
  • ????????????GPBDAT?|=?((1<<5)|(1<<6)|(1<<7)|(1<<8));????//?全熄滅??
  • ????????????GPBDAT?&=?~(1<<7);??
  • ????????}??
  • ????????else?if((GPFDAT&(1<<0))?==?0)?//?K4??
  • ????????{??
  • ????????????GPBDAT?|=?((1<<5)|(1<<6)|(1<<7)|(1<<8));????//?全熄滅??
  • ????????????GPBDAT?&=?~(1<<8);??
  • ????????}??
  • ????????else??
  • ????????{??
  • ????????????wait(30000*30);??
  • ??????????????
  • ????????????GPBDAT?|=?((1<<5)|(1<<6)|(1<<7)|(1<<8));????//?全熄滅??
  • ????????????GPBDAT?&=?~(1<<(6+i));????????????????????????//?將對應(yīng)位置0,?點亮??
  • ??????????????
  • ????????????i++;??
  • ????????????if(i?>?2)??
  • ????????????{??
  • ????????????????i?=?0;??
  • ????????????}??
  • ????????}??
  • ????}??
  • ??????
  • ????return?0;??
  • }??

  • ?

    [cpp]?view plaincopy
  • @******************************************************************************??
  • @?File:crt0.S??
  • @?功能:通過它轉(zhuǎn)入C程序??
  • @******************************************************************************?????????
  • ??
  • .text??
  • .global?_start??
  • _start:??
  • ????????????ldr?????r0,?=0x53000000?????@?WATCHDOG寄存器地址??
  • ????????????mov?????r1,?#0x0???????????????????????
  • ????????????str???r1,?[r0]??????????????@?寫入0,禁止WATCHDOG,否則CPU會不斷重啟??
  • ??????????????
  • ????????????ldr?????sp,?=1024*4?????????@?設(shè)置堆棧,注意:不能大于4k,?因為現(xiàn)在可用的內(nèi)存只有4K??
  • ????????????????????????????????????????@?nand?flash中的代碼在復(fù)位后會移到內(nèi)部ram中,此ram只有4K??
  • ????????????bl??????main????????????????@?調(diào)用C程序中的main函數(shù)??
  • halt_loop:??
  • ????????????b???????halt_loop??

  • ?

    [cpp]?view plaincopy
  • #?文件名:?Makefile??
  • ??
  • CFLAGS??:=?-Wall?-Wstrict-prototypes?-O2?-fomit-frame-pointer?-ffreestanding?-nostdlib??
  • key_led.bin?:?crt0.S??key_led.c??
  • ????arm-linux-gcc?$(CFLAGS)?-c?-o?crt0.o?crt0.S??
  • ????arm-linux-gcc?$(CFLAGS)?-c?-o?key_led.o?key_led.c??
  • ????arm-linux-ld?-Ttext?0x0000000?crt0.o?key_led.o?-o?key_led_elf??
  • #???arm-linux-ld?-Tleds.lds??crt0.o?key_led.o?-o?key_led_elf??
  • ????arm-linux-objcopy?-O?binary?-S?key_led_elf?key_led.bin??
  • ????arm-linux-objdump?-D?-m?arm??key_led_elf?>?key_led.dis??
  • clean:??
  • ????rm?-f???key_led.dis?key_led.bin?key_led_elf?*.o??
  • ? ?
  • 總結(jié)

    以上是生活随笔為你收集整理的linux-tq2440的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。