도와주세요!!
여태껏 책으로 배워온 c 언어랑 문법이 다르게 느껴져서 많은 어려움을 겪고 있습니다 .
누구에게 물어 볼 방법이 없어 고민하다 혼자 힘으로 힘들것 같아서 글을 올립니다 .
c 문법이 이렇게 어렵게 느껴지긴 처음입니다..
질문 요약 : 문법이 이해가 안되는 부분이 몇가지가 있습니다 .... 도움을 부탁드립니다 ..
인터넷에서 찾아볼수 잇는건 찾아 보앗지만 저런 문법문제는 어떻게 해야 할지 몰라 ..
글을 올립니다 .
질문 내용 : 1.
구글 검색에서 __attribute__ 컴파일 최적화라고 되있던대요 __((section(".sh0srdata") 이부분은 어떻게 해석해야 하는건가요 ??
아래의 구조체 와 #define된 문장이 어떻게 쓰이는지 구체적으로 알려주세요 ...염치 불구합니다 .
#define SH0SRD __attribute__((section(".sh0srdata")
<font color="#352e2c"></font>
struct dhcpMessage {
u8_t op;
u8_t htype;
u8_t hlen;
u8_t hops;
u32_t xid;
u16_t secs;
u16_t flags;
u32_t ciaddr;
u32_t yiaddr;
u32_t siaddr;
u32_t giaddr;
u8_t chaddr[16];
u8_t sname[64];
u8_t file[128];
u32_t cookie;
u8_t options[308]; /* 312 - cookie */
}__attribute__ ((__packed__));
********************************************************************
<font color="#352e2c"></font>
질문 내용 : 2.
((BYTE *)SH0RAM_BASE ->이 구문이 해석이 안됩니다 .
(포인트 *)변수 인데 변수를 주소를 넣어주어도 되는건가요 ?? (포인터*)에 대가로는 왜붙이는건가요 ??
포인터 변수에 상수를 넣는것이 가능한가요 ??
DmaMemSet_ip((BYTE *)SH0RAM_BASE, 0, SH0RAM_SIZE);
#define SH0RAM_BASE 0xf0000000
<font color="#352e2c"></font>
********************************************************************
질문 내용 : 3.
asm 인터넷으로 찾아보니깐 어셈블리어 언어라고 하는데요
asm("l.mfspr %0,%1,0" : "=r" (value) : "r" (spr)); 처음 보는 문법이라 어떻게 해석해야 하는지 모르겠습니다 .
mfspr->0xf0000000를 인자로 넘겨주는데요 asm("l.mfspr %0,%1,0" : "=r" (value) : "r" (spr)); 여기서
r" (value) : "r" (spr) 어떻게 쓰이는지 가늠이 안됨니다 ..
#define CRITICAL_BEGIN mfspr(EXR1K_CSR)
_NOINS uint mfspr(uint spr)
{
uint value;
asm("l.mfspr %0,%1,0" : "=r" (value) : "r" (spr));
return value;
}
#endif
<font color="#352e2c"></font>
********************************************************************
질문 내용 : 4.
아래의 문법중 PRIVILEGED_DATA 이부분은 어떻게 해석해야 하는건가요 ??
(변수 타입) 변수 = 0 ;
int i=0; 제가 아는 문법은 이렇게 되는건데요 앞에 PRIVILEGED_DATA 이건 무엇을 뜻하는 ....
PRIVILEGED_DATA static volatile signed portBASE_TYPE xSchedulerRunning = pdFALSE;
#define PRIVILEGED_DATA __attribute__((section("privileged_data")))
#define portBASE_TYPE long
#define pdFALSE ( 0 )
<font color="#352e2c"></font>
********************************************************************
질문 내용 : 5.
아래의 문법중 말그대로 구조체를 저렇게 붙여서 define 하는것도 가능한가요 ??
왜이렇게 쓰이는지 ..
#define _regs_ typedef union{ULONG a; struct{ // Register union start
#define _rege_ };}
오늘 하루 중 고민고민 하다 글을 올립니다 . 부탁드립니다 ~~~