2018.11.12 23:08

이더넷 칩으로 유명한 위즈넷에서 W7500/W7500P에서 보면 최고 48KB까지 SRAM을 사용할 수 있다고 나와있습니다.

SDK를 보면 0x20000000에서 16KB(0x4000)까지 밖에 사용할 수 없는데요.

사용할 수 있는 방법을 찾아보면 Socket 버퍼를 메모리로 사용하는 방법입니다.(신박하네요.)

데이터 시트상에서보면 가상 주소에 물리주소가 겹쳐있는 형태로 되어 있는데 가상 주소가 실제 물리주소보다 크다보니 가상 주소 영역을 넘어가면 물리주소의 0번지부터 되돌아가는 형태로 되어있습니다.

0x461E0000부터 0x461EFFFF까지 잡는다고 해도 실제로는 2KB(0x800)까지밖에 사용하지 못하게 됩니다.

그래도 최대 4KB까지 사용할 수 있는 방법이 있는데요 Socket의 TX와 RX 사이를 겹쳐 잡는 겁니다.

다만 그렇게 되면 사용한 버퍼를 사용하는 소켓은 사용하지 못하게 됩니다.


예제)

START ADDRESS : 0x461EF800 SIZE : 0x1000  => Socket 7

START ADDRESS : 0x4612F800 SIZE : 0x1000  => Socket 6

START ADDRESS : 0x4616F800 SIZE : 0x1000  => Socket 5

START ADDRESS : 0x461AF800 SIZE : 0x1000  => Socket 4

...(3,2,1,0 도 동일하게)


Keil, ds5 등에서는 Scatter 파일 IAR에서는 icf 파일에서 설정해주면 됩니다.


(https://wizwiki.net/wiki/lib/exe/fetch.php?media=:products:w7500:w7500x_rm_v112_20181017_.pdf) 68Page


SDK를 보면서 ST 마이크로사의 STDLIB와 많이 유사한 패턴이 보이네요. 많이 사용하던 칩이라 그런지 눈에 잘 들어와서 좋네요. ㅎㅎ


Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요