This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IAR RM57L843

Other Parts Discussed in Thread: RM57L843, RM48L952, HALCOGEN
  • Who has RM57L843+lwip+IAR project can be referred by me? Would you please send to me?
  • Because 003 example is in CCS project. My project is in IAR tool. And I found there is big different between CCS and IAR using HAL Code Gen generation.

 

  • Jia,

    This particular example is only provided for CCS. It should work in IAR too but there may be some adjustments that you need to make. Unfortunately I can't just tell you what they are.
  • My project is used in IAR tool.
    In my target board, 003 example by CCS can be executed very well, so it proves my hardware is ok.
    My project can be executed very well in RM48l952. But, when I transplant to RM57 board, it can't transmitte any data.
    I debugged the xxx_transmit() method, and found that
    " if(txch->active_tail == NULL) {
    EMACTxHdrDescPtrWrite(hdkif->emac_base, (unsigned int)(active_head), 0);
    }else{"
    can be executed without any issue. And I watched all register of EMAC and used variables(such 0xFC520000), they are OK, similar with 003 example's state.
    But when I used wireshark to capture data telegram, I found there are all 0x00(60 bytes or 47 bytes) in data telegram. I am very strange Why?
    I check the driver which generated by HALCoGen and compare with 003's driver, and they are identity. I checked LWIP stack, it is also OK.
    I suspect the little endian/big endian, but I found that 003 example also used little endian which is same with my project. But I tried modified
    from little to big, it doesn't work. Would you give me any clue of solution?
    Before I invoked "EMACTxHdrDescPtrWrite(hdkif->emac_base, (unsigned int)(active_head), 0); ", I watched the 0xFC520000's data is my expected data frame, but actual sent data frame is (0x00, 0x00, ..... 60 bytes) by wireshark.
  • Have you used Wireshark with the CCS based project, and can you see a the data on the wire in that case?
  • Yes, I saw the data telegram flow(contain ARP/ICMP request and response) by CCS, but don't capture by IAR. 

  • So you should compare side by side if possible.


    Try comparing the registers of the EMAC and also the registers of the PHY (through the MDIO interface) to find out what the differences are.


    You should be able to find some difference and then following up on what this is will likely lead to the answer.