Проект на асемблере разбит на несколько файлов (по функциям). В процессе сборки возникает куча ошибок типа:
*** ERROR L121: IMPROPER FIXUP
MODULE: Initialization.obj (INITIALIZ)
SEGMENT: INITIALIZ_
OFFSET: 0059H
Я так понимаю что при сборке нескольких файлов они накладываются друг на друга.
Если в опциях проекта в закладке Device поставить "Use extended linker (LX51) ...." то проект собирается и работает нормально, но во время симуляции на каждом шаге выскакивает окно дизасемблера (если закрыть то на следующем шаге все одно выскакивает).
В хелпе на Keil нашел
"QUESTION
Why does the 251 linker (L251) report "L121 Improper fixup error" in my STARTUP.A51 file?
ANSWER
Make sure that if you modify the startup file to set the STACK correctly. In the 80251, the stack pointer is a 16-bit value. If you are accustomed to using the 8051, it is easy to forget to initialize the upper byte. This means the upper byte never gets set which may cause this error message."
Может кто знает как вручную выставить этот 16 битный стек (похоже что обычный (не расширеный) линкер устанавливает 8 битный стек)???