The hex file ouput of keil and Softconsole are different.
After loading the keil hex file into flashpro and programming it to a2f-eval-kit, there is no output displayed on UART.
But the functionality is proper with softconsole hex file.
From what i have read, both of them produce intel hex file as output.
How to get the same output as that of softconsole using Keil.
Thanks
You mean this: https://www.microsemi.com/product-directory/design-tools/4879-softconsole ?
Note that's a Microsemi thing - nothing to do with Keil.
But, according to the above-linked page, it used GCC - an entirely different compiler - so it is entirely to be expected that the Hex files will be different.
If a Softconsole-generated executable works, I guess that must show that your hardware works.
Are you using exactly the same source files in your Keil project?
If your Keil-generated executable doesn't work, and the source files are the same, that suggests that the problem lies in your Keil Project setup.
Have you tried using the debugger to see where it is failing ?
You will need to refer to the Microsemi documentation for instructions on how to correctly configure a project for their product.
Even if your source files are the same, the startup files are likely to be different.
And, of course, this is an FPGA.
Keil knows nothing about FPGAs - so, again, you will have to study the Microsemi documentation for how to combine the microcontroller executable with the rest of the FPGA config.
Andy Neil said:ou mean this: https://www.microsemi.com/product-directory/design-tools/4879-softconsole
Yes. Softconsole is a product from microsemi.
Andy Neil said:it used GCC
Yes. And Keil by default uses ARMCC compiler. Softconsole takes (.ld ) file as linker script. Keil takes a scatter file(.sct)
Andy Neil said:If a Softconsole-generated executable works, I guess that must show that your hardware works
yes. softconsole project works.so hardware is right.
Andy Neil said:If your Keil-generated executable doesn't work, and the source files are the same, that suggests that the problem lies in your Keil Project setup.
toolsets (compilers,linkers,loaders..) were different in keil and softconsole. So I changed the toolset to GNU (GCC,ld..)(Keil has the provision to do so) which is what is used by softconsole. Keil throws an error saying it cannot recognize file format (.lib)
Andy Neil said:Have you tried using the debugger to see where it is failing ?
No.I haven't
Andy Neil said:You will need to refer to the Microsemi documentation for instructions on how to correctly configure a project for their product. Even if your source files are the same, the startup files are likely to be different. And, of course, this is an FPGA. Keil knows nothing about FPGAs - so, again, you will have to study the Microsemi documentation for how to combine the microcontroller executable with the rest of the FPGA config.
Libero is used to configure IDE (softconsole,keil,IAR..) and i followed the process showed in documentation, which automatically generates a keil project with default toolset.
Keil uses different toolset (ARMCC.) while softconsole uses GNU(GCC,ld..) So I changed the settings in Keil to GNU.But keil throws an error saying it can't recognize the file format (.lib).
Again, you need to study the Microsemi documentation for how to properly configure & use Keil for the parts you are using.
naren_v said:I changed the settings in Keil to GNU
You're not going to get far with just making random changes!
If SoftConsole works, why not just use it - especially if you're not going to take advantage of the ARM compiler anyhow?!
Again, this is an FPGA - so there's a lot more to the development & deployment than just the microcontroller executable code. So, whatever you do, you're still going to have to be doing an amount of "post processing" on the Keil output to get it into the form required by the FPGA.
Presumably, SoftConsole does all this for you.
Step#1 fully understand the working end-to-end process, once you understand that you'll be in a position to determine what steps are required or missing from the process that doesn't work as expected.
For example does the code get placed at the right location, does the RAM and stack get handled the same.
The .HEX files are bound to differ, but the placement of code/data should be consistent, and meet the expectations of the hardware.
Prerequisites would be an ability to digest the technical documentation for all components, and the diagnostic skills to be able to apply or leverage the knowledge gained.
naren_v said: i followed the process showed in documentation
Then you need to contact Microsemi for any corrections and/or updates to their documentation!
Did you see the "Important Notes" at the end of the linked SoftConsole page?
It says:
"Please read the release notes for the relevant version of SoftConsole to be aware of all relevant features, known issues, troubleshooting tips etc"
Have you done that - in particular, applying the "troubleshooting tips" ?
There is also a 'Support' link at that top of that page.
naren_v said:No.I haven't
Why not ?
There is a lot more to software development than just writing code!
It is your job to test & debug your code - it's no use just throwing up your hands, saying "it doesn't work" - and expecting others to fix it for you.
How To Debug
You have a big advantage here, as you have an example that works, and one that doesn't - so you can compare & contrast to see where the non-working one differs ...