-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Timeout: No response of the request msg received #45
Comments
Hello, |
Hi @RainerZ , Sorry for the wrong error code(above image error). Actually it will not showing above error while executing the code. When i trying to calibrating global parameter(uint32_t par_uint32 = 32), it will not executing XcpCommand() switch case. only executing XcpPrintCmd() SHORT_UPLOAD case then terminating the execution. Please find details for your reference. Please find generated A2l code for QNX Thanks! |
Ok Sorry, the code has never been testet on QNX. Most important thing to make sure is, that ApplXcpGetPointer(gXcp.MtaExt, gXcp.MtaAddr) creates a correct pointer to your calibration variable on QNX. But another thing should be checked first: The mode check happens a bit hidden in the macro below: It goes in dynamic address mode, when address extension is 1. This happens in XcpWriteMta: So please check first, if XcpWriteMta returns CRC_CMD_PENDING and if yes, why the address extension is set to dynamic addressing mode (=1). Regards 1.) |
Hello @RainerZ,
As I said program control does not go into switch case of XcpCommand(). The above function(ApplXcpGetPointer(gXcp.MtaExt, gXcp.MtaAddr) is calling from XcpCommand() switchcases like CC_SET_MTA, CC_SHORT_DOWNLOAD and CC_SHORT_UPLOAD. And XcpWriteMta() it is calling from XcpCommand() switch cases. But in XcpPrintCommand() SHORT_UPLOAD returning address ext 0h as given above image. My question is do we need to add any logic for address creation for a2l file. Because I see in xcpAppl.c their is some platform specific code is given for ApplXcpGetAddr() function. As shown in above image. I have one more doubt, we can create A2l file using linker map file right? It is not necessary to use a2l.cpp class in application. If we don't want to call a2l.cpp APIs then we need call only Xcp APIs only right? For that do we have any demo example. It will be very helpful. Thanks! |
Hi sayali0112,
In new v6 version, I made some changes in the CPP_Demo example, which might help to make things clearer.
While doing this, I decided to merge the master branch v.5.4 with version V6.0. This was overdue. So just pull from the master branch.
1.
I added some global variables in CCP_DEMO to show measurement and calibration of static address space, for people who just prefer the C++ class wrapper for the XCP driver, but do not intend to deal with dynamic instances.
2.
There is an option to fully disable the dynamic measurement and calibration example code in CPP_Demo:
#define OPTION_ENABLE_DYNAMIC_DEMO OFF
3.
There is another option to enable/disable A2L generation (there was, but it should work now):
#define OPTION_ENABLE_A2L_GEN OFF
In this case, the automatic detection of A2L file has to be turned off in CANape and Linker Map update may be turned on in the CANape device settings.
I have added a second CANape project (CANape_static) to demonstrates these settings. Of course, you need to adjust the path to A2L and Linker file.
The job of ApplXcpGetAddr() is simply to create a valid byte pointer from the XCP address coming from XCP SET_MTA for instance.
CANape gets the XCP address from A2L and A2L addresses are usually created or updated with the linker map reader.
So it depends on platform and toolchain, how to convert it to a pointer.
On Linux 32 bit, there is usually no transformation needed.
This may not be the same on QNX with the toolchain you are using. You need to figure it out by yourself.
If there are changes needed, we would be happy to take over this code.
I am still unclear, what the reason for the behavior of SHORT_DOWNLOAD is. I cannot reproduce it on Linux x64. May its Linux x86 or its your toolchain on QNX. When debugging, take a look at the macros involved.
Regards
Rainer
From: sayali0112 ***@***.***>
Sent: Friday, February 2, 2024 6:25 AM
To: vectorgrp/XCPlite ***@***.***>
Cc: Zaiser, Rainer ***@***.***>; Mention ***@***.***>
Subject: Re: [vectorgrp/XCPlite] Timeout: No response of the request msg received (Issue #45)
Hello @RainerZ<https://github.com/RainerZ>,
Thanks for reply!
Most important thing to make sure is, that ApplXcpGetPointer(gXcp.MtaExt, gXcp.MtaAddr) creates a correct pointer to your calibration variable on QNX.
As I said program control does not go into switch case of XcpCommand(). The above function(ApplXcpGetPointer(gXcp.MtaExt, gXcp.MtaAddr) is calling from XcpCommand() switchcases like CC_SET_MTA, CC_SHORT_DOWNLOAD and CC_SHORT_UPLOAD.
And XcpWriteMta() it is calling from XcpCommand() switch cases.
tmp_c59a09e4-1f5d-4705-a611-49040d6ec7fa.png (view on web)<https://github.com/vectorgrp/XCPlite/assets/91561440/00e4d9da-a5f1-4836-849a-4cb13c0a650d>
But in XcpPrintCommand() SHORT_UPLOAD returning address ext 0h as given above image.
tmp_8144adff-b178-49ec-bffe-7bee2a90918e.png (view on web)<https://github.com/vectorgrp/XCPlite/assets/91561440/1858e9ad-848f-4161-8e9f-ae3832e15175>
My question is do we need to add any logic for address creation for a2l file. Because I see in xcpAppl.c their is some platform specific code is given for ApplXcpGetAddr() function. As shown in above image.
I have one more doubt, we can create A2l file using linker map file right? It is not necessary to use a2l.cpp class in application.
If we don't want to call a2l.cpp APIs then we need call only Xcp APIs only right? For that do we have any demo example. It will be very helpful.
Thanks!
—
Reply to this email directly, view it on GitHub<#45 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABAJOU3ZRWXDLFZRAZ3OE7TYRR2DVAVCNFSM6AAAAABCREPFFCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMRSHA2TGMRRGI>.
You are receiving this because you were mentioned.Message ID: ***@***.******@***.***>>
|
Hi @RainerZ, It was failing inside XcpReadMta() function. It doesn't allow to assign value to *data from *gXcp.MtaPtr pointer. Even if, It contains value. As shown in above image, gXcp.MtaPtr = 3089928206 It goes into while loop of XcpReadMta() function then terminate the code. Note: Calibration and measurement is working for instance variable for aarch64. Can you please help me to resolve this issue. Thanks! |
Hello, maybe I misunderstood, what you mean when you say "terminate the code", Please make sure the piece of code below works without terminating or assert:
XCPlite uses direct memory access for static variables. The ApplXxx functions above, provide platform specific address translations from A2L representation (uint8_t,uint32_t) to code in XCPlite using (uint8_t*) (like in XcpReadMta). Note that XCPlite uses address extension 0, to access static memory in the main modules address space. Shared module support is not implemented. XCPlite is not a Vector product. But if you are a CANape user, I suggest you to contact Vector CANape support to clarify this individually. Please ask for a second level support contact and refer to XCPlite for QNX on ARM architecture. Regards |
Hello, i am new to xcp, i am trying to execute cpp_demo.exe but while calibrating global parameter. i am facing below error in CANape.
![tmp_e05af837-d12f-40cb-8ddb-eac22cadcbc9](https://private-user-images.githubusercontent.com/91561440/300800499-c62f6995-d982-440f-87da-0c041e336a8d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg4NTc3MzgsIm5iZiI6MTcxODg1NzQzOCwicGF0aCI6Ii85MTU2MTQ0MC8zMDA4MDA0OTktYzYyZjY5OTUtZDk4Mi00NDBmLTg3ZGEtMGMwNDFlMzM2YThkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIwVDA0MjM1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRjOTQ1YmZjMzY1NTBiZjQ1ZDk1ZmQ0NTc0MWQyZWM0OWJjNDgwYjI0NzljZWMxZmZlMTI3NWYxYmNjZjk3ZTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.PAC2hEQszwv0cKJQqOEd31ujiLw1g7Mt5RliVEoiEc0)
After debugging i found that download command not executing and in short_upload command error part is executing, you can refer below image. what do you mean by CRC_OUT_OF_RANGE
Can you please help me to resolve this error. Note: I am executing this code on aarch64 architecture.
The text was updated successfully, but these errors were encountered: