I am writing a program using SDK 15.0.0.
I'm trying to merge SPI and TWI programs into BLE programs.
I used keil before to confirm that each program was working properly.However, since it exceeds 32k bytes when it merges, I decided to use Embedded studio.
TWI and SPI are programs that save the output value from the acceleration sensor to the SD card.
In keil I was able to write to the SD card normally, but in Embedded studio the character was not written.However, it turned out that the number of bytes originally intended to be written was secured by tab and line feed.The code is written as “f_write (& file, buf0, 5, (UINT *) & bytes_written);”, but it is possible that keil can write and Embedded studio can not write characters. Is it?Or simply my lack of settings?
Please tell me ignorant me.
Both Keil & SES are just IDEs with associated toolchains - they are both perfectly capable of generating working code for their intended Targets.
However, they are entirely different toolchains - so the generated code will not be identical.
The 3 top suspects would be:
The thing to do is to use the debuggers in both tools to examine what is happening in the working case, and see where the non-working case diverges.
Also use an analyser or oscilloscope on the interface lines - again, examine what is happening in the working case, and see where the non-working case diverges.
Have you tried using some unmodified SES examples from the SDK - to get you familiar with the setup, and give you a known-working basis to work from ?
Thank you for reply.
I will try to find out the cause.
I tried to try the fatfs only example in Embedded studio."L6218E: Undefined symbol __initial_sp (referred from entry2.o)"And could not be built successfully.I do not know the cause of this either.
y001 said:fatfs only example
Do you mean the SD Card Example from the SDK? If you get errors building this in SES, you should try with a fresh copy of the SDK, to make sure you did not modify anything.
If you are still not able to write the SD card, please check the connections, or test with a different card. Are you using an SD card socket board? If you are, please make sure it does not contain a 5 V level shifter.
Thank you for reply,jorgen!
Yes. I am using fatfs_example of SDK 15.0.0 as a sample to write to the SD card.It works fine with keil, but not with SES.In SES, there are no errors or warnings at compile time, but you can see that it is not working properly if executed.Although BLE and nrf_gpio_pin_set () etc are working normally, only SPI is not working properly in SES.I have a question here,I have already edited the fatfs in SDK 15.0.0, so I downloaded SDK 15.3.0 to run the unedited sample in SES.However, the fatfs of SDK 15.3.0 could not be run with keil. Are there any restrictions that only one version of SDK can be used per chip?
y001 said:SPI is not working properly
What, exactly, is "not working" ?
Again, have you looked at the SPI lines on an analyser or oscilloscope?
Have you compared the working & non-working versions - both within the software, and looking at the hardware - to find where they diverge?
y001 said:only one version of SDK can be used per chip
The chip can only run 1 executable at a time.
An executable can only be built from 1 SDK.
I just tested fatfs example from SDK 15.3.0. Bot SES and Keil work as expected. Please check your connection, or test with a different card.
I looked at the signal line with an oscilloscope.If you are able to write to the keil SD card, the SCK line was a clean square wave.However, if you can not write to the SES SD card, it is thought that you can not write well because the SCK line has become trapezoidal. Why is this difference in the same code?