登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

求助:这段代码是什么意思?

作者:珊瑚虫 栏目:嵌入式系统
求助:这段代码是什么意思?
void TOSH_SET_PIN_DIRECTIONS(void )
{
  * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned   CHAR *)(0x1A + 0x20) = 0x00;
  * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x17 + 0x20) = 0x00;
  * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x11 + 0x20) = 0x00;
  * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x02 + 0x20) = 0x02;
  * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x03 + 0x20) = 0x02;
  TOSH_MAKE_RED_LED_OUTPUT();
  TOSH_MAKE_YELLOW_LED_OUTPUT();
  TOSH_MAKE_GREEN_LED_OUTPUT();
  TOSH_MAKE_POT_SELECT_OUTPUT();
  TOSH_MAKE_POT_POWER_OUTPUT();

  TOSH_MAKE_PW7_OUTPUT();
  TOSH_MAKE_PW6_OUTPUT();
  TOSH_MAKE_PW5_OUTPUT();
  TOSH_MAKE_PW4_OUTPUT();
  TOSH_MAKE_PW3_OUTPUT();
  TOSH_MAKE_PW2_OUTPUT();
  TOSH_MAKE_PW1_OUTPUT();
  TOSH_MAKE_PW0_OUTPUT();

  TOSH_MAKE_RFM_CTL0_OUTPUT();
  TOSH_MAKE_RFM_CTL1_OUTPUT();
  TOSH_MAKE_RFM_TXD_OUTPUT();
  TOSH_SET_POT_POWER_PIN();



  TOSH_MAKE_FLASH_SELECT_INPUT();

  TOSH_SET_RED_LED_PIN();
  TOSH_SET_YELLOW_LED_PIN();
  TOSH_SET_GREEN_LED_PIN();


  TOSH_MAKE_BOOST_ENABLE_OUTPUT();
  TOSH_SET_BOOST_ENABLE_PIN();

  TOSH_MAKE_ONE_WIRE_INPUT();
  TOSH_SET_ONE_WIRE_PIN();
}

这是nesC编译器nc产生的中间代码文件中的一段,它的硬件平台是ATMEGA103,显然这是一段设置引脚是输入还是输出的代码,但是前几句这实在是搞不懂,如
* (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned   CHAR *)(0x1A + 0x20) = 0x00;

这是怎样的一段类型转换啊?
最终的类型是什么,volatile unsigned CHAR*?

请达人指点,谢谢啦.


2楼: >>参与讨论
computer00
最终类型应该是volatile unsigned CHAR *型。
   搞不懂,中间哪两次转换有什么用?

3楼: >>参与讨论
jxp_sun
分解
* (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned   CHAR *)(0x1A + 0x20) = 0x00;

a = (volatile unsigned   CHAR *)(0x1A + 0x20)
//a = (0x1A + 0x20)存储单元里的值, 是一个CHAR pointer type, 长度为指针长度. 4 bytes ? 8 bytes?

& * 指针所纸的是地址

b =  (unsigned int )a ;  

c = * (volatile unsigned CHAR *)b;

right or not?

参与讨论
昵称:
讨论内容:
 
 
相关帖子
请教-- 自己做HUB用什么芯片?
网口滤波电容问题
急购ST5518防真器和相关开发工具
谁有全串口的使用资料,共享一下吧!谢谢阿!
请教x86的程序从两片AT20C010读出后怎么拼接再反汇编
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号