본문 바로가기

보물창고/IT 정보

베레미즈 빌드된 소스 분석 (tcp_ip 테스트 예제 마스터 프로젝트)

반응형

 베레미즈 기본 예제 tcp ip 마스터 프로젝트 빌드 했을때 CAN통신 설정 관련 한부분으로 수정했을시 소스코드에서 변경 되는 부분을 확인 했습니다
 
 이 소스들의 파일 위치는 프로젝트 내에 존지하며 베미즈에서 빌드 했을시 생성 됩니다 (buile 폴더 만들어짐) 
 베레미즈에서 클리어 버튼을 눌르면 빌드 폴더는 삭제되고 다시 빌드하면 새로 생성이 됩니다




이 파일은 영어로 달린 주석 번역과 약간의 소스 내용을 파악해서 추가로 주석 달았은 파일 입니다




CF_0.c 파일

/* Per master node slavebootup callbacks. Checks that
* every node have booted before calling Master_post_SlaveBootup */
int OD_0_0_slave_2_booted = 0;
int OD_0_0_slave_5_booted = 0;

static void OD_0_0_post_SlaveBootup(CO_Data* d, UNS8 nodeId){
switch(nodeId){
case 2:
OD_0_0_slave_2_booted = 1;
break;
case 5:
OD_0_0_slave_5_booted = 1;
break;
default:

break;
}
if( OD_0_0_slave_2_booted && OD_0_0_slave_5_booted )
Master_post_SlaveBootup(d,nodeId);
}



마스터에 슬래이브를 추가한 만큼 case문에 노드 아이디 번호로 추가 됩니다




CF_0.c 파일

/* CAN channels declaration */
BOARD_DECL(OD_0_0, "127.0.0.1", "125K")


nodename, busname, baudrate

마스터 아이디, 베레미즈 CAN_Device, CAN_Baudrate 값 변경시 적용됩니다



#ifndef NOT_USE_DYNAMIC_LOADING
if( !LoadCanDriver("can_peak_win32_USB.dll") ){
fprintf(stderr, "Cannot load CAN interface library for CanFestival (can_peak_win32_USB.dll)\n");\
fflush(stderr);\
return -1;\
}
#endif


드라이브 변경시 적용됨
베레미즈에서 확인된 메시지가 여기서 출력되었음




LOCATED_VARIABLES.h 파일

tcp IP 마스터 예제




__LOCATED_VAR(INT,__QW0_0_2_8193_0,Q,W,0,0,2,8193,0)
__LOCATED_VAR(INT,__IW0_0_2_8192_0,I,W,0,0,2,8192,0)

이곳에 사용자가 추가한 변수 내용들이 추가 됩니다



OD_0_0.c 소스 파일
이 파일에 networkedit 설정 내용이 있습니다

INTEGER16 beremiz__IW0_0_2_8192_0 = 0x0; /* Mapped at index 0x2302, subindex 0x01 */
INTEGER16 beremiz__QW0_0_2_8193_0 = 0x0; /* Mapped at index 0x4302, subindex 0x01 */

이 파일이 선언 되어 있습니다

소스 중간중간에 이 변수가 사용 됩니다



OD_0_0.h 소스파일
OD_0_0.c에 include 되어 있는 파일 입니다

extern INTEGER16 beremiz__IW0_0_2_8192_0; /* Mapped at index 0x2302, subindex 0x01 */
extern INTEGER16 beremiz__QW0_0_2_8193_0; /* Mapped at index 0x4302, subindex 0x01 */

이런 식으로 헤더에 선언 되어 있습니다





반응형