Hello. I have a problem with making EEPROM image from *.out file. Some utilites make text file. Of cause EEPROM contents binary data after loading with CCS. My TMS is - C6455. Can anybody tell me how to create binary which I can save to EEPROM 0x0 address?
Hi Michael,
I guess I need to understand what you mean exactly by "memory map and other initialization features". The device's internal memory map is already completely accessible after it boots from the internal ROM. What register settings are you trying to adjust? There may be peripherals or registers that aren't enabled by default that you want to enable. To understand that you will probably have to go through the datasheet to determine. When you run CCS, it automatically runs the .gel file associated with that device, so you can use that file as a guideline for your "init" procedure. The gel file is usually in the CCS\boards\dskxxx\gel directory. Usually the boot program that you load will have a "init" section at the beginning which sets up things and initializes/enables the components you need. When complete, this branches to your main code.
Regards,
Travis
tscheck: Hi Michael, I guess I need to understand what you mean exactly by "memory map and other initialization features". The device's internal memory map is already completely accessible after it boots from the internal ROM. What register settings are you trying to adjust? There may be peripherals or registers that aren't enabled by default that you want to enable. To understand that you will probably have to go through the datasheet to determine. When you run CCS, it automatically runs the .gel file associated with that device, so you can use that file as a guideline for your "init" procedure. The gel file is usually in the CCS\boards\dskxxx\gel directory. Usually the boot program that you load will have a "init" section at the beginning which sets up things and initializes/enables the components you need. When complete, this branches to your main code.
Hi, Travis. I have seen the contents of gel file so I wrote about memory map. There are memory map gel function calls In this gel-file in the StartUp() function.
I found out that leds are on 0xA0000000 address. When I write to this address after CCS connect leds are blinking. When I load program without CCS connect leds are not blinking but program is in memory correctly and registers values are proper. So I can conclude that program runs but I must setup something to let leds blink. What must I setup? And how can I use GEL functions in my code, maybe any analogues in CSL exists? To do program small I use asemmbler if I will use CSL, it will be some problems.
Hi again, Travis. When I used C code and CSL library all works properly. Also I can load big application through the i2c slave boot mode. My new task is raising speed of transmittion. I know that i2c using boot parameters table when I can set my i2c clock frequency. But you wrote to me small boot parameters table where no frequensy.
One more question. When I choose 400KHz on the master device, what frequency will be used by the bootloader?
Michael,
Sorry for the delay, I've been out for most of last week. My understanding is that the I2C interface can run at 400Khz when booted in this mode. The interface speed is set by your master device. However, I've been told that it may be possible that the i2c can receive data faster than the cpu can do checksums and put the data into memory since the PLL1 is in bypass mode. So the actual throughput may be lower than expected. (PLL1 is in bypass mode for all boot modes except SRIO/PCI and that the i2c module frequency is CPU/6.) Assuming 50Mhz PLL1 input clock, this would be 8.33Mhz, which is on the low end of the i2c module operating range of 8 - 12Mhz. 66Mhz would put you on the higher end and may speed it up. Depending on your results, you may want to try and send a configuration table via i2c to take the PLL1 off of bypass before sending the actual boot table. This should work in theory, but I've checked and no one has actually verified it here.
Thank you for the full answer. I think that PLL will not work in "full" mode even it will be confige with configuration table. My transmittion speed when PLL in bypass mode is about 3KB/s - so speed is really lower than 400KHz
I trying to use the second level bootloader (with configued PLL) as solution but I had the other problem. DSP is slave and it receive data not correctly. Some bytes are passing. What could I do wrong? And can I detect current speed of processor? And what about the boot parameters? How can I change it, when I tried to transmit more than six bytes from your example program doesn't works properly. (Using the boot parameters I can increase PLL clock if I've undestand right)
Victory! Second level bootloader works and fast. To load itself (about 30KB) takes about 10-12 seconds but big app (about 250KB using Ethernet) loads with bootloader about 7 seconds. Thank you very much.
ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". TI AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY TI. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM TI.
Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.