OMAP3530裸机GPIO

  • P6_349180
    了解作者
  • 30.7KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-22 04:51
    上传日期
OMAP3530的ARM核操作GPIO口的裸机程序,从XLOADER内搬移出来的,可通过XDS560仿真。供外部调试接口设备的驱动模板。
GPIO初使.rar
  • GPIO初使
  • Debug
  • ccsObjs.opt
    43B
  • objects.mk
    268B
  • subdir_rules.mk
    711B
  • hello.pp
    668B
  • sources.mk
    1.8KB
  • uboot_bin_down.out
    29.5KB
  • ccsSrcs.opt
    13B
  • subdir_vars.mk
    512B
  • makefile
    3.1KB
  • hello.obj
    13.6KB
  • uboot_bin_down.map
    6.1KB
  • .settings
  • org.eclipse.cdt.codan.core.prefs
    93B
  • org.eclipse.core.resources.prefs
    239B
  • org.eclipse.cdt.debug.core.prefs
    154B
  • .project
    2.5KB
  • omap3_down_uboot.ccxml
    2.6KB
  • OMAP3530.cmd
    2.2KB
  • sizes.h
    1.5KB
  • omap3430.h
    4.1KB
  • .ccsproject
    443B
  • .cproject
    16.8KB
  • mux.h
    22.2KB
  • hello.c
    2.2KB
  • hello.h
    1.9KB
内容介绍
#include <stdio.h> #include <stdlib.h> #include "hello.h" #include "omap3430.h" #include "mux.h" void main(void) { u32 var=10000; init_device(); while(1) { // if(var==0)var=10000; var-=1; var+=1; write_data_IIC(4,1); }; } void init_device() { RGE_VALE((OMAP34XX_CTRL_BASE+CONTROL_PADCONF_MMC2_DAT1),(IDIS | PTD | EN | M4)); RGE_VALE((OMAP34XX_GPIO5_BASE+GPIO_OE),(~(1 << (DEBUG_LED1 % 32)))); per_clocks_enable(); } void init_gpio() { // MUX_DEFAULT(); //_raw_writew((IDIS|PTD|EN|M4), (OMAP34XX_CTRL_BASE + CONTROL_PADCONF_MMC2_DAT1)); } void write_data_IIC(uchar write_address,uchar wriet_val) { //unsigned long *p= (unsigned long *)(OMAP34XX_GPIO5_BASE+ 0x94); // unsigned long *p1= (unsigned long *)(OMAP34XX_GPIO5_BASE+ 0x90); /* Alternately turn the LEDs on and off */ // p ; while (1) { RGE_VALE_64((OMAP34XX_GPIO5_BASE+ 0x94),(1 << (DEBUG_LED1 % 32))); delay_ms(1000); RGE_VALE_64((OMAP34XX_GPIO5_BASE+ 0x90),(1 << (DEBUG_LED1 % 32))); delay_ms(1000); } } void read_data_IIC(uchar read_address,uchar read_val) { } void delay_ms(u32 delay_var) { u32 delay_count;// interval counter; for(delay_count=0;delay_count<delay_var;delay_count+=1); } /***************************************************************** * Routine: peripheral_enable * Description: Enable the clks & power for perifs (GPT2, UART1,...) ******************************************************************/ void per_clocks_enable(void)//时钟使能 { /* Enable GPIO5 clocks for blinky LEDs */ sr32(CM_FCLKEN_PER, 16, 1, 0x1); /* FCKen GPIO5 */ sr32(CM_ICLKEN_PER, 16, 1, 0x1); /* ICKen GPIO5 */ delay_ms(1000); } /***************************************************************** * sr32 - clear & set a value in a bit range for a 32 bit address *****************************************************************/ void sr32(u32 addr, u32 start_bit, u32 num_bits, u32 value) { u32 tmp, msk = 0; msk = 1 << num_bits; --msk; tmp = __raw_readl(addr); tmp=tmp& ~(msk << start_bit); tmp |= value << start_bit; __raw_writel(tmp, addr); } void RGE_VALE(unsigned long address,unsigned int value) { *(unsigned short *)address=value; } void RGE_VALE_64(unsigned long address,unsigned long value) { *(unsigned long *)address=value; }
评论
    相关推荐
    • ARM TRAINING
      arm m3 training , 3-days
    • ARM课件
      ARM7课件,无密码
    • arm资料
      arm汇编资料,以及一些其他个人东西
    • arm arm ledtest
      arm arm led arm arm ledtest
    • arm学习
      ARM学习的资料,也是我下载的,希望大家分享
    • ARM教程word
      本文主要介绍了ARM的工作原理,如何设计,指令系统,以及列举了实例来说明ARM的工作原理,是学校ARM从无到有的好教材,文档总共分为8章,详细的介绍了ARM的原理,慢慢的学习,收获将会很大、
    • arm学习
      arm初学者学习资料
    • carm
      carm
    • arm学习
      学习ARM,适用于初学者
    • ARM 指令
      ARM指令