реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Использование ROM на TI CC3200
inventor
сообщение Feb 18 2016, 08:38
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Моя программа не помещается в памяти на проце со 128 кб памяти
хочу часть функций из driverlib перетащить во внутренний ROM
компилятор IAR (часто файла линкера)

// Define a region for the on-chip flash.
define region FLASH = mem:[from 0x01000000 to 0x0100FFFF];

в Programmer's guide раздел 6 ROM service
делаю как там написано - ставлю директивы:
TARGET_IS_CC3200
CC3200_ES_1_2_1=0 чтобы использовать проц со 128 к байт памяти минус 16 кб на loader
заодно в опциях линкера ставлю генерацию MAP файла
после генерации сморю ничего не поменялось - все функции и константы остались в RAM
Ставлю Flash=1 в опциях линкера чтобы часто кода записалась в ROM с адресов
в линкерной мап файле - есть, часто функций там прописалась, однако загрузить не могу - ошибка линкера
далее сморю в документации - ROM начинается с адреса 0x000000 а не с 0x01000000
подумал - ошибка, исправил на 0, перекомпилировал,
но снова загрущить не могу.
Вернул все назад, чтобы попробовать запистать все в RAM? откомпилировал, пытаюсь загрузить - ошибка загрузки
вероятно каким то образом переписал loader
Вообще, его можно вернуть или надо проц новый паять
и как вообще использовать ROM сервис правильно ?





Go to the top of the page
 
+Quote Post
inventor
сообщение Feb 18 2016, 12:26
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



ну что, никто с сс3200 дела не имел?
тогда такой вопрос: возможно bootloader на нем восстановить или чип выкидывать надо а новый паять?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 19 2016, 01:14
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(inventor @ Feb 18 2016, 14:38) *
Ставлю Flash=1 в опциях линкера чтобы часто кода записалась в ROM с адресов

Интересно - как это Вы умудрились что-то записать в ReadOnlyMemory ???
Go to the top of the page
 
+Quote Post
inventor
сообщение Feb 19 2016, 07:09
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Цитата(jcxz @ Feb 19 2016, 04:14) *
Интересно - как это Вы умудрились что-то записать в ReadOnlyMemory ???

так как в даташите написано,
там сказано как сделать так, чтобы driverlib оказалось в ROM
Go to the top of the page
 
+Quote Post
NULL
сообщение Feb 19 2016, 07:54
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
inventor
сообщение Feb 19 2016, 10:02
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 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 };
}

Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 19 2016, 10:39
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(inventor @ Feb 19 2016, 13:02) *
получается что своими телодвидениями я мог loader загубить

Не очень понятно как. Коль уж пишут "zero-wait-state ROM", значит это точно не флеш. То есть это mask ROM, а его никак не загубишь. Разве что молотком.
Go to the top of the page
 
+Quote Post
Kaligooola
сообщение Feb 19 2016, 11:52
Сообщение #8


Brubel
***

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



Если загрузчик не стартует, проверьте поднимается ли питание 1,2 В, и 1,9 В, которое делается внутренними преобразователями.
Запускаются ли генераторы, 32 кГц и 40 МГц.
Если их нет, то скорее всего проц на замену. По крайней мере у меня так было. Я доигрался с отсладкой, после чего проц перестал стартовать и прошиваться (не отвечает на запрос в UniFlash).
Были варианты или спаленные преобразователи по цепям от FTDI или процессор. Оказалось процессор, который после перпайки - заработал.

По-поводу восстановления loadera не скажу, так как не стали с этим возится. Может быть можно сформировать все питания внешними источниками и зашить его через JTAG, но этот вопрос скорее всего нужно на e2e.ti.com спрашивать.
Go to the top of the page
 
+Quote Post
inventor
сообщение Feb 19 2016, 18:57
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 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-й проц так полетел.
хилые они какие то
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01434 секунд с 7
ELECTRONIX ©2004-2016