Jump to content

    
Sign in to follow this  
uriy

Migration ADS 1.2 to KEIL 5

Recommended Posts

Перетаскиваю старый проект из ADS 1.2 в KEIL 5.

Помогите перенести следующий кусок:

BSS_Start_Ptr
    IMPORT  |Image$$ZI$$Base|
    DCD     |Image$$ZI$$Base|
;
BSS_End_Ptr
    IMPORT  |Image$$ZI$$Limit|
    DCD     |Image$$ZI$$Limit|
;
ROM_Data_Start_Ptr
    IMPORT  |Image$$RO$$Limit|
    DCD     |Image$$RO$$Limit|
;
RAM_Start_Ptr
    IMPORT  |Image$$RW$$Base|
    DCD     |Image$$RW$$Base|
  
.......
  
  	LDR     a1,[pc, #ROM_Data_Start_Ptr-.-8]
	LDR     a2,[pc, #RAM_Start_Ptr-.-8]     
	LDR     a4,[pc, #BSS_Start_Ptr-.-8]     
 

KEIL не понимает эти константы L6218E: Undefined symbol Image$$RO$$Limit

Тут пишут http://www.keil.com/support/man/docs/armlink/armlink_pge1362065957713.htm что нужно создать секции в скаттер файле.

Но ведь в скаттер файле это будут фиксированные адреса. А сейчас в ADS нет фиксированных адресов. Или я что-то неправильно понимаю?

Программа и данные находятся во внешней RAM.

Сейчас у меня такие адреса:

Image$$RO$$Base = 0x40000000
Image$$RO$$Limit= 0x400739a8
Image$$RW$$Base = 0x400739a8
Image$$RW$$Limit= 0x402d7814
Image$$ZI$$Base = 0x40097524
Image$$ZI$$Limit= 0x402d7814

 

Share this post


Link to post
Share on other sites

Проблема в том что кейл не понимает эти константы.

Вот так он понимает:

BSS_Start_Ptr
	IMPORT  |Image$$ER_IROM1$$ZI$$Base|
	DCD     |Image$$ER_IROM1$$ZI$$Base|
;
BSS_End_Ptr
	IMPORT  |Image$$ER_IROM1$$ZI$$Limit|
	DCD     |Image$$ER_IROM1$$ZI$$Limit|
;
ROM_Data_Start_Ptr
	IMPORT  |Image$$ER_IROM1$$RO$$Limit|
	DCD     |Image$$ER_IROM1$$RO$$Limit|
;
RAM_Start_Ptr
	IMPORT  |Image$$ER_IROM1$$RW$$Base|
	DCD     |Image$$ER_IROM1$$RW$$Base|

Нашел тут https://community.arm.com/developer/tools-software/tools/f/keil-forum/22328/determining-image-size-from-within-code

Share this post


Link to post
Share on other sites

Общий стнтаксис описан тут. Здесь region_name - имя интересующего execution region. Он берется из линкер-скрипта .sct. А туда попадает из меню опций проекта (вкладка линкер). Там предопределено несколько стандартных имен для регионов памяти. Но никто не мешает написать линкер-скрипт самому и использовать его. Тогда имена регионов могут быть любыми, отличными от стандартных предопоеделенных в Кейле.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this