|
|
  |
Использование ROM на TI CC3200 |
|
|
|
Feb 19 2016, 07:09
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(jcxz @ Feb 19 2016, 04:14)  Интересно - как это Вы умудрились что-то записать в ReadOnlyMemory ??? так как в даташите написано, там сказано как сделать так, чтобы driverlib оказалось в ROM
|
|
|
|
|
Feb 19 2016, 07:54
|
Частый гость
 
Группа: Свой
Сообщений: 124
Регистрация: 27-05-05
Из: St.-P
Пользователь №: 5 462

|
Цитата(inventor @ Feb 18 2016, 21:09)  там сказано как сделать так, чтобы driverlib оказалось в ROM Скорее всего там написано, как использовать driverlib, уже лежащую в ROM. А оказывается оно там на заводе. Собственно: 5.8.2.2 ROM The internal zero-wait-state ROM of the CC3200 device is at address 0x0000 0000 of the device memory and programmed with the following components: • Bootloader • Peripheral driver library (DriverLib) release for product-specific peripherals and interfaces И далее: The DriverLib APIs in ROM can be called by applications to reduce flash memory requirements and free the flash memory to be used for other purposes. Т.е. с целью минимизирование использования флеши, можно использовать DriverLib из ROM, используя соответствующие API.
|
|
|
|
|
Feb 19 2016, 10:02
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(NULL @ Feb 19 2016, 10:54)  Скорее всего там написано, как использовать driverlib, уже лежащую в ROM. А оказывается оно там на заводе.
Собственно: 5.8.2.2 ROM The internal zero-wait-state ROM of the CC3200 device is at address 0x0000 0000 of the device memory and programmed with the following components: • Bootloader • Peripheral driver library (DriverLib) release for product-specific peripherals and interfaces
И далее: The DriverLib APIs in ROM can be called by applications to reduce flash memory requirements and free the flash memory to be used for other purposes.
Т.е. с целью минимизирование использования флеши, можно использовать DriverLib из ROM, используя соответствующие API. Спасиб, я понял. накололся... получается что своими телодвидениями я мог loader загубить, у меня еще пара вопросов: 1) возможно loader восставновить ? 2) что за адреса в linker файле, который идут вместе с IAR ? CODE // // Define a memory region that covers the entire 4 GB addressable space of the // processor. // define memory mem with size = 4G;
// // Define a region for the on-chip flash. // define region FLASH = mem:[from 0x01000000 to 0x0100FFFF];
// // Define a region for the on-chip SRAM. // SRAM size of 240KB for CC3200 ES 1.33 device define region SRAM = mem:[from 0x20004000 to 0x2003C000];
// // Define a block for the heap. The size should be set to something other // than zero if things in the C library that require the heap are used. // define block HEAP with alignment = 8, size = 0x00008000 { }; keep {readonly section .cmdtbl}; define block CmdTbl {section .cmdtbl };
// // Indicate that the noinit values should be left alone. This includes the // stack, which if initialized will destroy the return address from the // initialization code, causing the processor to branch to zero and fault. // do not initialize { section .noinit };
define block CSTACK with alignment = 8, size = 0x800 { section .stack }; do not initialize { section .stack}; place at end of SRAM { block CSTACK };
//----------------------------------------------------------- initialize by copy { readwrite }; //-----------------------------------------------------------
// // Place the interrupt vectors at the start of flash. // Define Flash = 0 if application doesn't use Flash memory // else define Flash = 1 //
if (!isdefinedsymbol(Flash)) { //----------------------------------------------------------- place at start of SRAM { readonly section .intvec }; //-----------------------------------------------------------
// // Place the remainder of the read-only items into flash. // place in SRAM { readonly };
// // Place the RAM vector table at the start of SRAM. //
//----------------------------------------------------------- place in SRAM { section VTABLE }; //------------------------------------------------------------
// // Place all read/write items into SRAM. //
place in SRAM { block CmdTbl }; place in SRAM { readwrite, block HEAP }; } else if (!Flash) { //----------------------------------------------------------- place at start of SRAM { readonly section .intvec }; //-----------------------------------------------------------
// // Place the remainder of the read-only items into flash. // place in SRAM { readonly };
// // Place the RAM vector table at the start of SRAM. //
//----------------------------------------------------------- place in SRAM { section VTABLE }; //------------------------------------------------------------
// // Place all read/write items into SRAM. //
place in SRAM { block CmdTbl }; place in SRAM { readwrite, block HEAP }; } else { //----------------------------------------------------------- place at start of FLASH { readonly section .intvec }; //-----------------------------------------------------------
// // Place the remainder of the read-only items into flash. // place in FLASH { readonly }; place in FLASH { block CmdTbl };
// // Place the RAM vector table at the start of SRAM. //
//----------------------------------------------------------- place in SRAM { section VTABLE }; //------------------------------------------------------------
// // Place all read/write items into SRAM. // place in SRAM { readwrite, block HEAP }; }
|
|
|
|
|
Feb 19 2016, 11:52
|

Brubel
  
Группа: Свой
Сообщений: 321
Регистрация: 17-11-06
Из: Oudergem
Пользователь №: 22 444

|
Если загрузчик не стартует, проверьте поднимается ли питание 1,2 В, и 1,9 В, которое делается внутренними преобразователями. Запускаются ли генераторы, 32 кГц и 40 МГц. Если их нет, то скорее всего проц на замену. По крайней мере у меня так было. Я доигрался с отсладкой, после чего проц перестал стартовать и прошиваться (не отвечает на запрос в UniFlash). Были варианты или спаленные преобразователи по цепям от FTDI или процессор. Оказалось процессор, который после перпайки - заработал.
По-поводу восстановления loadera не скажу, так как не стали с этим возится. Может быть можно сформировать все питания внешними источниками и зашить его через JTAG, но этот вопрос скорее всего нужно на e2e.ti.com спрашивать.
|
|
|
|
|
Feb 19 2016, 18:57
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(Kaligooola @ Feb 19 2016, 14:52)  Если загрузчик не стартует, проверьте поднимается ли питание 1,2 В, и 1,9 В, которое делается внутренними преобразователями. Запускаются ли генераторы, 32 кГц и 40 МГц. Если их нет, то скорее всего проц на замену. По крайней мере у меня так было. Я доигрался с отсладкой, после чего проц перестал стартовать и прошиваться (не отвечает на запрос в UniFlash). Были варианты или спаленные преобразователи по цепям от FTDI или процессор. Оказалось процессор, который после перпайки - заработал.
По-поводу восстановления loadera не скажу, так как не стали с этим возится. Может быть можно сформировать все питания внешними источниками и зашить его через JTAG, но этот вопрос скорее всего нужно на e2e.ti.com спрашивать. именно такие симптомы. уже третий или 4-й проц так полетел. хилые они какие то
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|