CPLB miss without replacement error
I am trying to write a program to send data serially over UART in Blackfin-526C. I used the UART driver example available in Cross Core Embedded Studio. When I debug the project it shows no error. But when I run the project it shows following error.
A fatal error or exception has occurred.
Description: An instruction CPLB miss has occurred without a corresponding CPLB entry.
General Type: RunTimeError
Specific Type: ICPLBMissWithoutReplacement
General Code: 0x8
Specific Code: 0x321
Error Value: 0x00000000
Error PC: 0x00000000
I went through many threads on this topic in engineer zone. But I couldn't get an ultimate solution. I am a UG student. I need an answer which I can understand with less difficulty.
Thank You in advance.
Hi Veeresh,
Possible cause of the CPLB miss without replacement in your program could be the use of an invalid address(could be a simple pointer access usage to invalid memory location), or when there is a NULL pointer. Could you share your application so that i can debug?
Regards,
Suraj.
Thank you Suraj for responding.
I am are trying to write a C program in CCES to send AT Commands from Blackfin to GSM module over UART(bcz serial communication the only to communicate between processor and GSM module). I went through the functions that UART drivers uses and modified the example program available on CCES.
As you said CPLB is because of trying to access invalid memory. But i dont know how to check which part of my C program is causing this error.
Hi Veeresh,
You may check the SEQSTAT registers EXCAUSE field to check the type of error and you may check the RETX register while the error is occurred. In RETX register you may find the address of the instruction which is causing exception. For more information regarding SEQSTAT you may refer Blackfin processors PRM manual, which is available at the below link:
http://www.analog.com/static/imported-files/processor_manuals/Blackfin_pgr_rev2.2.pdf
In the disassembly window , you can backtrack the instruction sequence which is leading to this exception, this might give you some clues, where problem is happening.
I am attaching a simple register based code tested on BF533 EZ-Kit which can be used to transmit data using UART, even though you are using BF526 you may easily port this code to BF526 by modifying the pin multiplexing, interrupt assignments as per the BF526, for more information refer Chapter 25 UART port controllers, Chapter 9 General purpose ports, Chpater 5 System interrupts in BF52x HRM, you may find the HRM at the below link:
http://www.analog.com/static/imported-files/processor_manuals/ADSP-BF52x_hwr_rev1.2.pdf
-Suraj.
Please log in to reply.