Пытаюсь запустить под ARM, часть 2

Только технические вопросы по ЯОС и MINOS. Терминология и прочее - в других форумах.
Ответить
БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 18:58

Начало темы: http://вече.программирование-по-русски. ... ?f=5&t=329

Уже собрал (команды в начале Release.Tool) сборку якобы под RPi, закачал ядро - не работает оно. Вероятно, ему ещё нужны Gof файлы. Заливаю всё, что собралось, на флешку с Wheezy-2015-02-16 (kernel.img копирую в kernel7.img)
Последний раз редактировалось БудДен 27.10.21 22:50, всего редактировалось 1 раз.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 19:06

Не помогло. Для порядка надо проверить работоспособность линукса, на котором основываемся... да. Тогда курим руководство по семинарам...

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 20:29

Нашёл свой же документ, где описан запуск A2. https://gitlab.com/budden/ja-o-s/-/blob ... ск-ос-2.md - там высказано предположение, что модули инициализируются по порядку их перечисления в команде линковки.

А кроме того, вот тут описано: https://lec.inf.ethz.ch/syscon/2016/sli ... es1025.pdf (это описано для x86!)

Правда ли это и почему так - я не могу сказать, но вот список линковки для нашей конфигурации:

Код: Выделить всё

Trace CPU Runtime Counters Processors Queues BaseTypes Timer Activities ExclusiveBlocks 
HeapManager Interrupts Environment Mutexes Machine Heaps Modules GarbageCollector Objects Kernel
Точка входа, предположительно, находится в RPI.Environment.Mod
Смотрим блоки инициализации для всех перечисленных файлов:

* Trace.Mod - ничего
* ARM.CPU.Mod - ничего
* ARM.ARMRuntime.Mod - ничего
* Counters.Mod - ничего (далее не пишем "ничего")
* RPI.Processors.Mod
* Queues.Mod
* BaseTypes.Mod
* RPI.Timer.Mod
* Activities.Mod
* ExclusiveBlocks.Mod
* HeapManager.Mod
* Interrupts.Mod
* RPI.Environment.Mod - содержит тело
* Mutexes.Mod
* Coop.ARM.Machine.Mod - содержит тело
* Coop.Heaps.Mod - содержит тело
* Coop.Modules.Mod - содержит тело
* GarbageCollector.Mod - ничего
* Coop.Objects.Mod - содержит тело
* Coop.Kernel.Mod - содержит тело
Последний раз редактировалось БудДен 27.10.21 20:47, всего редактировалось 1 раз.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 20:38

Ооо! Ведь линкер создал файл kernel.Log, вот он:

Код: Выделить всё

Trace:processing
CPU:processing
Counters:processing
Processors:processing
Queues:processing
BaseTypes:processing
Runtime:processing
Timer:processing
Activities:processing
ExclusiveBlocks:processing
HeapManager:processing
Interrupts:processing
Environment:processing
Mutexes:processing
Machine:processing
Heaps:processing
Modules:processing
GarbageCollector:processing
Objects:processing
Kernel:processing
000008000H: code Environment.KernelBegin to 000008013H
000008014H: code Trace.@BodyStub to 000008033H
000008034H: code CPU.@BodyStub to 000008053H
000008054H: code Counters.@BodyStub to 000008073H
000008074H: code Processors.@BodyStub to 000008093H
000008094H: code Queues.@BodyStub to 0000080B3H
0000080B4H: code BaseTypes.@BodyStub to 0000080D3H
0000080D4H: code Runtime.@BodyStub to 0000080F3H
0000080F4H: code Timer.@BodyStub to 000008113H
000008114H: code Activities.@BodyStub to 000008133H
000008134H: code ExclusiveBlocks.@BodyStub to 000008153H
000008154H: code HeapManager.@BodyStub to 000008173H
000008174H: code Interrupts.@BodyStub to 000008193H
000008194H: code Environment.@BodyStub to 0000081B3H
0000081B4H: code Mutexes.@BodyStub to 0000081D3H
0000081D4H: code Machine.@BodyStub to 0000081F3H
0000081F4H: code Heaps.@BodyStub to 000008213H
000008214H: code Modules.@BodyStub to 000008233H
000008234H: code GarbageCollector.@BodyStub to 000008253H
000008254H: code Objects.@BodyStub to 000008273H
000008274H: code Kernel.@BodyStub to 000008293H
000008294H: code Modules.Main to 000008377H
000008378H: code Trace.@Body to 0000083D7H
0000083D8H: code Trace.@CodeSections to 00000981FH
0000083D8H: code Trace.Enter
000008400H: code Trace.Exit
000008434H: code Trace.Ln
000008490H: code Trace.Send
000008548H: code Trace.String
0000085F8H: code Trace.StringLn
00000864CH: code Trace.Int
0000088BCH: code Trace.Boolean
000008940H: code Trace.IntSuffix
000008A88H: code Trace.Hex
000008E54H: code Trace.Address
000008EA8H: code Trace.HIntHex
000008EF8H: code Trace.Memory
000009174H: code Trace.StackFrames
000009390H: code Trace.Buffer
0000093E0H: code Trace.Bits
00000947CH: code Trace.Set
000009614H: code Trace.Blue
000009658H: code Trace.Green
00000969CH: code Trace.Red
0000096E0H: code Trace.Yellow
000009724H: code Trace.Default
000009768H: code Trace.NullChar
000009790H: code Trace.NullColor
0000097B8H: code Trace.Init
000009808H: code Trace.@Trace
000009820H: data Trace.@DataSections to 000009827H
000009820H: code Trace.Char
000009824H: code Trace.Color
000009828H: data Trace.@ConstSections to 00000A287H
000009828H: code Trace.Send.@Descriptor
000009834H: code Trace.String.@Descriptor
000009840H: code Trace.StringLn.@Descriptor
00000984CH: code Trace.@const0
000009864H: code Trace.@const1
00000986CH: code Trace.@const2
000009874H: code Trace.IntSuffix.@Descriptor
000009880H: code Trace.@const3
000009884H: code Trace.StackFrames.Anonymous@4629
000009890H: code Trace.StackFrames.Anonymous@4629.@Pointer
00000989CH: code Trace.@const4
0000098A0H: code Trace.Buffer.@Descriptor
0000098ACH: code Trace.@Module
000009968H: code Trace.@Module.@Descriptor
000009978H: code Trace.@Info
0000099B0H: code Trace.@PointerArray
0000099D4H: code Trace.@ImportsArray
0000099F8H: code Trace.@CommandArray
000009BA8H: code Trace.@ExceptionArray
000009BCCH: code Trace.@TypeInfoArray
000009BF4H: code Trace.@References
000009C18H: code Trace.@ProcTable
000009C2CH: code Trace.@EmptyArray
000009C50H: code Trace.@NamePool
000009DF8H: code Trace.@ExportArray1
00000A1A0H: code Trace.@ExportArray2
00000A250H: code Trace.@ExportArray3
00000A288H: code CPU.@Body to 00000A2E7H
00000A2E8H: code CPU.@CodeSections to 00000B7B7H
00000A2E8H: code CPU.Backoff
00000A31CH: code CPU.Delay
00000A350H: code CPU.Reset
00000A3E8H: code CPU.WriteWord
00000A41CH: code CPU.Halt
00000A454H: code CPU.IdentityMapMemory
00000A524H: code CPU.EnableMemoryManagementUnit
00000A57CH: code CPU.Invalidate
00000A5B0H: code CPU.Clean
00000A5E4H: code CPU.ReadWord
00000A614H: code CPU.ReadMask
00000A644H: code CPU.WriteMask
00000A678H: code CPU.Mask
00000A6B4H: code CPU.Unmask
00000A6F0H: code CPU.MaskIn
00000A734H: code CPU.InstallInterrupt
00000A820H: code CPU.HandleInterrupt
00000A930H: code CPU.DisableInterrupt
00000AA70H: code CPU.EnableIRQ
00000AAD0H: code CPU.DisableIRQ
00000AB30H: code CPU.Initialize
00000AC08H: code CPU.UndefinedInstructionHandler
00000AC2CH: code CPU.SoftwareInterruptHandler
00000AC50H: code CPU.PrefetchAbortHandler
00000AC74H: code CPU.DataAbortHandler
00000AC98H: code CPU.IRQHandler
00000ACBCH: code CPU.DivS8
00000AD38H: code CPU.DivModS32
00000AE4CH: code CPU.DivS16
00000AEC8H: code CPU.DivS32
00000AF30H: code CPU.DivU32
00000AF98H: code CPU.DivModU32
00000B00CH: code CPU.DivS64
00000B098H: code CPU.DivModS64
00000B220H: code CPU.ModS8
00000B29CH: code CPU.ModS16
00000B318H: code CPU.ModS32
00000B380H: code CPU.ModU32
00000B3E8H: code CPU.ModS64
00000B474H: code CPU.DivModU64
00000B6C8H: code CPU.Clz64
00000B710H: code CPU.MulS64
00000B7A0H: code CPU.@Trace
00000C000H: data CPU.@DataSections to 00001001BH
00000C000H: code CPU.pageTable
000010000H: code CPU.handlers
00001001CH: data CPU.@ConstSections to 000010A83H
00001001CH: code CPU.Anonymous@935
000010028H: code CPU.Anonymous@935.@Pointer
000010034H: code CPU.InstallInterrupt.@Descriptor
000010040H: code CPU.DivModS32.@Descriptor
00001004CH: code CPU.DivModU32.@Descriptor
000010058H: code CPU.DivModS64.@Descriptor
000010064H: code CPU.DivModU64.@Descriptor
000010070H: code CPU.@Module
00001012CH: code CPU.@Module.@Descriptor
00001013CH: code CPU.@Info
000010174H: code CPU.@PointerArray
000010198H: code CPU.@ImportsArray
0000101BCH: code CPU.@CommandArray
0000101E0H: code CPU.@ExceptionArray
000010204H: code CPU.@TypeInfoArray
00001022CH: code CPU.@References
000010250H: code CPU.@ProcTable
000010264H: code CPU.@EmptyArray
000010288H: code CPU.@NamePool
000010528H: code CPU.@ExportArray1
0000109D4H: code CPU.@ExportArray2
000010A84H: code Counters.@Body to 000010AE3H
000010AE4H: code Counters.@CodeSections to 000010E03H
000010AE4H: code Counters.Read
000010B20H: code Counters.Increment
000010BBCH: code Counters.Decrement
000010C6CH: code Counters.Inc
000010D30H: code Counters.Dec
000010DECH: code Counters.@Trace
000010E04H: data Counters.@ConstSections to 0000113FFH
000010E04H: code Counters.Counter
000010E10H: code Counters.Counter.@Pointer
000010E1CH: code Counters.AlignedCounter
000010E28H: code Counters.AlignedCounter.@Pointer
000010E34H: code Counters.Read.@Descriptor
000010E40H: code Counters.Increment.@Descriptor
000010E4CH: code Counters.Decrement.@Descriptor
000010E58H: code Counters.Inc.@Descriptor
000010E64H: code Counters.Dec.@Descriptor
000010E70H: code Counters.@Module
000010F2CH: code Counters.@Module.@Descriptor
000010F3CH: code Counters.@Info
000010F74H: code Counters.@PointerArray
000010F98H: code Counters.@ImportsArray
000010FC0H: code Counters.@CommandArray
000010FE4H: code Counters.@ExceptionArray
000011008H: code Counters.@TypeInfoArray
000011030H: code Counters.@References
000011054H: code Counters.@ProcTable
000011068H: code Counters.@EmptyArray
00001108CH: code Counters.@NamePool
000011188H: code Counters.@ExportArray1
00001133CH: code Counters.@ExportArray2
000011400H: code Processors.@Body to 00001145FH
000011460H: code Processors.@CodeSections to 0000116E7H
000011460H: code Processors.SuspendCurrentProcessor
00001148CH: code Processors.ResumeAllProcessors
0000114B8H: code Processors.StartAll
0000114E4H: code Processors.Boot
0000115A0H: code Processors.Initialize
000011674H: code Processors.Terminate
0000116D0H: code Processors.@Trace
0000116E8H: data Processors.@DataSections to 0000116EFH
0000116E8H: code Processors.count
0000116ECH: code Processors.running
0000116F0H: data Processors.@ConstSections to 000011C2BH
0000116F0H: code Processors.@Module
0000117ACH: code Processors.@Module.@Descriptor
0000117BCH: code Processors.@Info
0000117F4H: code Processors.@PointerArray
000011818H: code Processors.@ImportsArray
000011844H: code Processors.@CommandArray
000011868H: code Processors.@ExceptionArray
00001188CH: code Processors.@TypeInfoArray
0000118B4H: code Processors.@References
0000118D8H: code Processors.@ProcTable
0000118ECH: code Processors.@EmptyArray
000011910H: code Processors.@NamePool
000011A2CH: code Processors.@ExportArray1
000011BF4H: code Processors.@ExportArray2
000011C2CH: code Queues.@Body to 000011C8BH
000011C8CH: code Queues.@CodeSections to 0000131AFH
000011C8CH: code Queues.Node.@Trace
000011CD8H: code Queues.Node.@Pointer.@Trace
000011CFCH: code Queues.Node.@Array.@Trace
000011D38H: code Queues.Node.@Reset
000011D74H: code Queues.Node.@Array.@Reset
000011DB0H: code Queues.Node.@Assign
000011E04H: code Queues.Node.@Array.@Assign
000011E50H: code Queues.Item.Finalize
000011EF0H: code Queues.Acquire
000012034H: code Queues.Queue.@Trace
000012080H: code Queues.Queue.@Pointer.@Trace
0000120A4H: code Queues.Queue.@Array.@Trace
0000120E0H: code Queues.Queue.@Reset
00001211CH: code Queues.Queue.@Array.@Reset
000012158H: code Queues.Queue.@Assign
0000121ACH: code Queues.Queue.@Array.@Assign
0000121F8H: code Queues.AlignedQueue.@Trace
000012210H: code Queues.AlignedQueue.@Pointer.@Trace
000012234H: code Queues.AlignedQueue.@Array.@Trace
000012270H: code Queues.AlignedQueue.@Reset
000012288H: code Queues.AlignedQueue.@Array.@Reset
0000122C4H: code Queues.AlignedQueue.@Assign
0000122DCH: code Queues.AlignedQueue.@Array.@Assign
000012328H: code Queues.Swap
0000123A8H: code Queues.Initialize
0000125CCH: code Queues.Initialize.@Reset
0000125FCH: code Queues.Access
000012738H: code Queues.Access.@Reset
000012768H: code Queues.Discard
0000127CCH: code Queues.Enqueue
000012B28H: code Queues.Enqueue.@Reset
000012B80H: code Queues.Dequeue
000012F14H: code Queues.Dequeue.@Reset
000012F6CH: code Queues.Dispose
00001304CH: code Queues.Terminate
000013198H: code Queues.@Trace
0000131C0H: data Queues.@DataSections to 00001331FH
0000131C0H: code Queues.processors
000013320H: data Queues.@ConstSections to 000013D83H
000013320H: code Queues.Node
00001332CH: code Queues.Node.@Pointer
000013338H: code Queues.Item
000013348H: code Queues.Queue
000013354H: code Queues.Queue.@Pointer
000013360H: code Queues.AlignedQueue
00001336CH: code Queues.AlignedQueue.@Pointer
000013378H: code Queues.Anonymous@898
000013384H: code Queues.Anonymous@898.@Pointer
000013390H: code Queues.Anonymous@898.Anonymous@999
00001339CH: code Queues.Anonymous@898.Anonymous@999.@Pointer
0000133A8H: code Queues.Swap.@Descriptor
0000133B4H: code Queues.Acquire.@Descriptor
0000133C0H: code Queues.Initialize.@Descriptor
0000133CCH: code Queues.Access.@Descriptor
0000133D8H: code Queues.Enqueue.@Descriptor
0000133E4H: code Queues.Dequeue.@Descriptor
0000133F0H: code Queues.Dispose.@Descriptor
0000133FCH: code Queues.@Module
0000134B8H: code Queues.@Module.@Descriptor
0000134C8H: code Queues.@Info
000013500H: code Queues.@PointerArray
000013524H: code Queues.@ImportsArray
000013550H: code Queues.@CommandArray
000013574H: code Queues.@ExceptionArray
000013598H: code Queues.@TypeInfoArray
0000135C0H: code Queues.@References
0000135E4H: code Queues.@ProcTable
0000135F8H: code Queues.@EmptyArray
00001361CH: code Queues.@NamePool
00001378CH: code Queues.@ExportArray1
0000139E0H: code Queues.@ExportArray2
000013C5CH: code Queues.@ExportArray3
000013D84H: code BaseTypes.@Body to 000013DE3H
000013DE4H: code BaseTypes.@CodeSections to 0000144BFH
000013DE4H: code BaseTypes.Pointer.Trace
000013E0CH: code BaseTypes.Array.@Trace
000013E18H: code BaseTypes.Array.@Assign
000013E24H: code BaseTypes.PointerArray.@Assign
000013E30H: code BaseTypes.PointerArray.Trace
000013E80H: code BaseTypes.RecordArray.@Assign
000013E8CH: code BaseTypes.RecordArray.Trace
000013EE8H: code BaseTypes.DelegateArray.@Assign
000013EF4H: code BaseTypes.DelegateArray.Trace
000013F44H: code BaseTypes.Record.@Trace
000013F50H: code BaseTypes.Record.@Assign
000013F5CH: code BaseTypes.Action.@Trace
000013F90H: code BaseTypes.Action.@Pointer.@Trace
000013FB4H: code BaseTypes.Action.@Array.@Trace
000013FF0H: code BaseTypes.Action.@Reset
000014018H: code BaseTypes.Action.@Array.@Reset
000014054H: code BaseTypes.Action.@Assign
000014088H: code BaseTypes.Action.@Array.@Assign
0000140D4H: code BaseTypes.Monitor.@Trace
000014120H: code BaseTypes.Monitor.@Pointer.@Trace
000014144H: code BaseTypes.Monitor.@Array.@Trace
000014180H: code BaseTypes.Monitor.@Reset
0000141C0H: code BaseTypes.Monitor.@Array.@Reset
0000141FCH: code BaseTypes.Monitor.@Assign
000014254H: code BaseTypes.Monitor.@Array.@Assign
0000142A0H: code BaseTypes.Object.@Trace
0000142F4H: code BaseTypes.Object.@Assign
00001434CH: code BaseTypes.Object.Finalize
000014480H: code BaseTypes.StackFrame.Reset
0000144A8H: code BaseTypes.@Trace
0000144C0H: data BaseTypes.@ConstSections to 000014E03H
0000144C0H: code BaseTypes.Descriptor
0000144CCH: code BaseTypes.Descriptor.@Pointer
0000144D8H: code BaseTypes.Pointer
0000144E8H: code BaseTypes.Array
0000144F8H: code BaseTypes.PointerArray
000014508H: code BaseTypes.RecordArray
000014518H: code BaseTypes.DelegateArray
000014528H: code BaseTypes.Record
000014538H: code BaseTypes.Action
000014544H: code BaseTypes.Action.@Pointer
000014550H: code BaseTypes.Monitor
00001455CH: code BaseTypes.Monitor.@Pointer
000014568H: code BaseTypes.Object
000014578H: code BaseTypes.StackFrame
000014584H: code BaseTypes.@Module
000014640H: code BaseTypes.@Module.@Descriptor
000014650H: code BaseTypes.@Info
000014688H: code BaseTypes.@PointerArray
0000146ACH: code BaseTypes.@ImportsArray
0000146D8H: code BaseTypes.@CommandArray
0000146FCH: code BaseTypes.@ExceptionArray
000014720H: code BaseTypes.@TypeInfoArray
000014748H: code BaseTypes.@References
00001476CH: code BaseTypes.@ProcTable
000014780H: code BaseTypes.@EmptyArray
0000147A4H: code BaseTypes.@NamePool
0000148FCH: code BaseTypes.@ExportArray1
000014B00H: code BaseTypes.@ExportArray2
000014D40H: code BaseTypes.@ExportArray3
000014E04H: code Runtime.@Body to 000014E63H
000014E64H: code Runtime.@CodeSections to 000015343H
000014E64H: code Runtime.CompareString
000014F60H: code Runtime.CopyString
00001500CH: code Runtime.EnsureAllocatedStack
000015088H: code Runtime.Trap
000015184H: code Runtime.New
000015230H: code Runtime.Dispose
00001532CH: code Runtime.@Trace
000015344H: data Runtime.@DataSections to 000015347H
000015344H: code Runtime.trapHandler
000015348H: data Runtime.@ConstSections to 0000158DBH
000015348H: code Runtime.CompareString.@Descriptor
000015354H: code Runtime.CopyString.@Descriptor
000015360H: code Runtime.@const0
000015368H: code Runtime.Dispose.@Descriptor
000015374H: code Runtime.@Module
000015430H: code Runtime.@Module.@Descriptor
000015440H: code Runtime.@Info
000015478H: code Runtime.@PointerArray
00001549CH: code Runtime.@ImportsArray
0000154C8H: code Runtime.@CommandArray
0000154ECH: code Runtime.@ExceptionArray
000015510H: code Runtime.@TypeInfoArray
000015538H: code Runtime.@References
00001555CH: code Runtime.@ProcTable
000015570H: code Runtime.@EmptyArray
000015594H: code Runtime.@NamePool
0000156A0H: code Runtime.@ExportArray1
000015868H: code Runtime.@ExportArray2
0000158DCH: code Timer.@Body to 00001593BH
00001593CH: code Timer.@CodeSections to 0000159CFH
00001593CH: code Timer.GetCounter
000015988H: code Timer.GetFrequency
0000159B8H: code Timer.@Trace
0000159D0H: data Timer.@ConstSections to 000015E43H
0000159D0H: code Timer.@Module
000015A8CH: code Timer.@Module.@Descriptor
000015A9CH: code Timer.@Info
000015AD4H: code Timer.@PointerArray
000015AF8H: code Timer.@ImportsArray
000015B20H: code Timer.@CommandArray
000015B44H: code Timer.@ExceptionArray
000015B68H: code Timer.@TypeInfoArray
000015B90H: code Timer.@References
000015BB4H: code Timer.@ProcTable
000015BC8H: code Timer.@EmptyArray
000015BECH: code Timer.@NamePool
000015CBCH: code Timer.@ExportArray1
000015E0CH: code Timer.@ExportArray2
000015E44H: code Activities.@Body to 000015EA3H
000015EA4H: code Activities.@CodeSections to 000018647H
000015EA4H: code Activities.Activity.@Trace
000015EF0H: code Activities.Activity.@Assign
000015F48H: code Activities.Activity.InitializeActivity
0000160ECH: code Activities.Start
00001617CH: code Activities.Activity.Finalize
000016278H: code Activities.Process.@Trace
000016290H: code Activities.Process.@Assign
0000162A8H: code Activities.Process.InitializeProcess
0000163ACH: code Activities.Process.InitializeProcess.@Reset
0000163DCH: code Activities.Process.Unlink
000016440H: code Activities.Process.Finalize
000016560H: code Activities.Resume
0000165FCH: code Activities.Process.Finalize.@Reset
00001662CH: code Activities.Processor.@Trace
000016684H: code Activities.Processor.@Pointer.@Trace
0000166A8H: code Activities.Processor.@Array.@Trace
0000166E4H: code Activities.Processor.@Reset
000016730H: code Activities.Processor.@Array.@Reset
00001676CH: code Activities.Processor.@Assign
0000167D0H: code Activities.Processor.@Array.@Assign
00001681CH: code Activities.GetProcessTime
000016900H: code Activities.GetProcessTime.@Reset
000016930H: code Activities.GetCurrentActivity
000016960H: code Activities.GetCurrentProcessorIndex
0000169A8H: code Activities.SetCurrentPriority
000016A24H: code Activities.BindToCurrentProcessor
000016A58H: code Activities.Select
000016C80H: code Activities.Enqueue
000016D58H: code Activities.Select.@Reset
000016D88H: code Activities.Switch
000016E70H: code Activities.SwitchTo
000016FB4H: code Activities.FinalizeSwitch
000017038H: code Activities.Switch.@Reset
000017068H: code Activities.Resume.@Reset
000017098H: code Activities.TerminateCurrentActivity
000017110H: code Activities.Create
0000172A8H: code Activities.Create.@Reset
0000172D8H: code Activities.CreateVirtualProcessor
00001746CH: code Activities.CallVirtual
000017514H: code Activities.Call
000017670H: code Activities.Call.@Reset
0000176A0H: code Activities.Execute
000017724H: code Activities.BeginExecution
000017940H: code Activities.Dispose
000017980H: code Activities.YieldExecution
000017B18H: code Activities.YieldExecution.@Reset
000017B48H: code Activities.EndExecution
000017BE4H: code Activities.Idle
000017C88H: code Activities.Wait
000017E30H: code Activities.EnqueueWaiting
000017F50H: code Activities.Wait.@Reset
000017F94H: code Activities.EnqueueWaiting.@Reset
000017FC4H: code Activities.ReturnToStackSegment
000018048H: code Activities.ReturnToStackSegment0
000018068H: code Activities.ExpandStack
0000183E4H: code Activities.IsLocalVariable
0000184B8H: code Activities.AssignmentsInProgress
000018550H: code Activities.Terminate
0000185E8H: code Activities.@Trace
000018660H: data Activities.@DataSections to 00001894FH
000018660H: code Activities.processors
000018920H: code Activities.readyQueue
000018940H: code Activities.working
000018944H: code Activities.physicalProcessors
000018948H: code Activities.virtualProcessors
00001894CH: code Activities.awaiting
000018950H: data Activities.@ConstSections to 0000199FFH
000018950H: code Activities.StackRecord
00001895CH: code Activities.StackRecord.@Pointer
000018968H: code Activities.Activity
00001897CH: code Activities.Process
000018998H: code Activities.Process.InitializeProcess.@Descriptor
0000189A4H: code Activities.Process.Finalize.@Descriptor
0000189B0H: code Activities.Processor
0000189BCH: code Activities.Processor.@Pointer
0000189C8H: code Activities.GetProcessTime.@Descriptor
0000189D4H: code Activities.GetCurrentActivity.@Descriptor
0000189E0H: code Activities.Select.@Descriptor
0000189ECH: code Activities.Switch.@Descriptor
0000189F8H: code Activities.Resume.@Descriptor
000018A04H: code Activities.SwitchTo.@Descriptor
000018A10H: code Activities.Start.Anonymous@11009
000018A1CH: code Activities.Start.Anonymous@11009.@Pointer
000018A28H: code Activities.Create.@Descriptor
000018A34H: code Activities.CreateVirtualProcessor.@Descriptor
000018A40H: code Activities.Call.@Descriptor
000018A4CH: code Activities.YieldExecution.@Descriptor
000018A58H: code Activities.Wait.@Descriptor
000018A64H: code Activities.EnqueueWaiting.@Descriptor
000018A70H: code Activities.@Module
000018B2CH: code Activities.@Module.@Descriptor
000018B3CH: code Activities.@Info
000018B74H: code Activities.@PointerArray
000018D44H: code Activities.@ImportsArray
000018D80H: code Activities.@CommandArray
000018DD0H: code Activities.@ExceptionArray
000018DF4H: code Activities.@TypeInfoArray
000018E1CH: code Activities.@References
000018E40H: code Activities.@ProcTable
000018E54H: code Activities.@EmptyArray
000018E78H: code Activities.@NamePool
0000191B0H: code Activities.@ExportArray1
00001960CH: code Activities.@ExportArray2
000019928H: code Activities.@ExportArray3
000019A00H: code ExclusiveBlocks.@Body to 000019A5FH
000019A60H: code ExclusiveBlocks.@CodeSections to 00001A7B3H
000019A60H: code ExclusiveBlocks.Enter
000019C00H: code ExclusiveBlocks.Enqueue
000019D24H: code ExclusiveBlocks.Enter.@Reset
000019D54H: code ExclusiveBlocks.Enqueue.@Reset
000019D84H: code ExclusiveBlocks.Exit
00001A054H: code ExclusiveBlocks.Exit.@Reset
00001A084H: code ExclusiveBlocks.Await
00001A408H: code ExclusiveBlocks.Transfer
00001A4F0H: code ExclusiveBlocks.Release
00001A64CH: code ExclusiveBlocks.Await.@Reset
00001A690H: code ExclusiveBlocks.Release.@Reset
00001A6C0H: code ExclusiveBlocks.FinalizeAwait
00001A79CH: code ExclusiveBlocks.@Trace
00001A7B4H: data ExclusiveBlocks.@ConstSections to 00001ADC7H
00001A7B4H: code ExclusiveBlocks.Enter.@Descriptor
00001A7C0H: code ExclusiveBlocks.Enqueue.@Descriptor
00001A7CCH: code ExclusiveBlocks.Exit.@Descriptor
00001A7D8H: code ExclusiveBlocks.Await.@Descriptor
00001A7E4H: code ExclusiveBlocks.Release.@Descriptor
00001A7F0H: code ExclusiveBlocks.@Module
00001A8ACH: code ExclusiveBlocks.@Module.@Descriptor
00001A8BCH: code ExclusiveBlocks.@Info
00001A8F4H: code ExclusiveBlocks.@PointerArray
00001A918H: code ExclusiveBlocks.@ImportsArray
00001A948H: code ExclusiveBlocks.@CommandArray
00001A96CH: code ExclusiveBlocks.@ExceptionArray
00001A990H: code ExclusiveBlocks.@TypeInfoArray
00001A9B8H: code ExclusiveBlocks.@References
00001A9DCH: code ExclusiveBlocks.@ProcTable
00001A9F0H: code ExclusiveBlocks.@EmptyArray
00001AA14H: code ExclusiveBlocks.@NamePool
00001AB14H: code ExclusiveBlocks.@ExportArray1
00001ACC8H: code ExclusiveBlocks.@ExportArray2
00001ADC8H: code HeapManager.@Body to 00001AE27H
00001AE28H: code HeapManager.@CodeSections to 00001BCA3H
00001AE28H: code HeapManager.GetIndex
00001AE9CH: code HeapManager.Initialize
00001B0F0H: code HeapManager.Access
00001B1A0H: code HeapManager.Discard
00001B1F0H: code HeapManager.IsHazardous
00001B284H: code HeapManager.Pool
00001B334H: code HeapManager.Acquire
00001B4ECH: code HeapManager.Release
00001B7D0H: code HeapManager.Allocate
00001B9DCH: code HeapManager.Deallocate
00001BAFCH: code HeapManager.IsValid
00001BB70H: code HeapManager.GetSize
00001BC8CH: code HeapManager.@Trace
00001BCC0H: data HeapManager.@DataSections to 00001BE1FH
00001BCC0H: code HeapManager.processors
00001BE20H: data HeapManager.@ConstSections to 00001C64BH
00001BE20H: code HeapManager.Block
00001BE2CH: code HeapManager.Block.@Pointer
00001BE38H: code HeapManager.Heap
00001BE44H: code HeapManager.Heap.@Pointer
00001BE50H: code HeapManager.Heap.Anonymous@932
00001BE5CH: code HeapManager.Heap.Anonymous@932.@Pointer
00001BE68H: code HeapManager.Anonymous@1080
00001BE74H: code HeapManager.Anonymous@1080.@Pointer
00001BE80H: code HeapManager.Initialize.@Descriptor
00001BE8CH: code HeapManager.Access.@Descriptor
00001BE98H: code HeapManager.Pool.@Descriptor
00001BEA4H: code HeapManager.Acquire.@Descriptor
00001BEB0H: code HeapManager.Release.@Descriptor
00001BEBCH: code HeapManager.Allocate.@Descriptor
00001BEC8H: code HeapManager.Deallocate.@Descriptor
00001BED4H: code HeapManager.IsValid.@Descriptor
00001BEE0H: code HeapManager.GetSize.@Descriptor
00001BEECH: code HeapManager.@Module
00001BFA8H: code HeapManager.@Module.@Descriptor
00001BFB8H: code HeapManager.@Info
00001BFF0H: code HeapManager.@PointerArray
00001C014H: code HeapManager.@ImportsArray
00001C040H: code HeapManager.@CommandArray
00001C064H: code HeapManager.@ExceptionArray
00001C088H: code HeapManager.@TypeInfoArray
00001C0B0H: code HeapManager.@References
00001C0D4H: code HeapManager.@ProcTable
00001C0E8H: code HeapManager.@EmptyArray
00001C10CH: code HeapManager.@NamePool
00001C270H: code HeapManager.@ExportArray1
00001C4D8H: code HeapManager.@ExportArray2
00001C614H: code HeapManager.@ExportArray3
00001C64CH: code Interrupts.@Body to 00001C6ABH
00001C6ACH: code Interrupts.@CodeSections to 00001D167H
00001C6ACH: code Interrupts.Install
00001C8ACH: code Interrupts.Handle
00001C9ACH: code Interrupts.Install.@Reset
00001C9DCH: code Interrupts.Await
00001CBECH: code Interrupts.Enqueue
00001CD60H: code Interrupts.NotifyNext
00001CE20H: code Interrupts.Await.@Reset
00001CE50H: code Interrupts.Enqueue.@Reset
00001CE80H: code Interrupts.NotifyNext.@Reset
00001CEB0H: code Interrupts.Cancel
00001CFE4H: code Interrupts.Cancel.@Reset
00001D014H: code Interrupts.Terminate
00001D108H: code Interrupts.@Trace
00001D168H: data Interrupts.@DataSections to 00001D1F3H
00001D168H: code Interrupts.timestamps
00001D184H: code Interrupts.awaitingQueues
00001D1BCH: code Interrupts.previousHandlers
00001D1D8H: code Interrupts.processors
00001D1F4H: data Interrupts.@ConstSections to 00001D937H
00001D1F4H: code Interrupts.Interrupt
00001D200H: code Interrupts.Interrupt.@Pointer
00001D20CH: code Interrupts.Install.@Descriptor
00001D218H: code Interrupts.Await.@Descriptor
00001D224H: code Interrupts.Enqueue.@Descriptor
00001D230H: code Interrupts.NotifyNext.@Descriptor
00001D23CH: code Interrupts.Cancel.@Descriptor
00001D248H: code Interrupts.@Module
00001D304H: code Interrupts.@Module.@Descriptor
00001D314H: code Interrupts.@Info
00001D34CH: code Interrupts.@PointerArray
00001D3C4H: code Interrupts.@ImportsArray
00001D3F8H: code Interrupts.@CommandArray
00001D41CH: code Interrupts.@ExceptionArray
00001D440H: code Interrupts.@TypeInfoArray
00001D468H: code Interrupts.@References
00001D48CH: code Interrupts.@ProcTable
00001D4A0H: code Interrupts.@EmptyArray
00001D4C4H: code Interrupts.@NamePool
00001D60CH: code Interrupts.@ExportArray1
00001D824H: code Interrupts.@ExportArray2
00001D938H: code Environment.@Body to 00001DAB7H
00001DAB8H: code Environment.@CodeSections to 00001EBA3H
00001DAB8H: code Environment.Abort
00001DB28H: code Environment.Allocate
00001DBF8H: code Environment.Deallocate
00001DC50H: code Environment.Write
00001DCE4H: code Environment.Read
00001DE54H: code Environment.Flush
00001DEB0H: code Environment.GetString
00001DEE4H: code Environment.Clock
00001DFC0H: code Environment.Sleep
00001E168H: code Environment.HandleTimer
00001E290H: code Environment.LED
00001E3B4H: code Environment.Shutdown
00001E4CCH: code Environment.Reboot
00001E550H: code Environment.Exit
00001E63CH: code Environment.InitTrace
00001E7F8H: code Environment.InitMemory
00001E944H: code Environment.Blink
00001EAA4H: code Environment.Initialize
00001EB38H: code Environment.Terminate
00001EB8CH: code Environment.@Trace
00001EBA4H: data Environment.@DataSections to 00001ECD7H
00001EBA4H: code Environment.memory
00001EBA8H: code Environment.heap
00001ECB4H: code Environment.clock
00001ECB8H: code Environment.frequency
00001ECBCH: code Environment.status
00001ECC0H: code Environment.uartInterruptInstalled
00001ECC4H: code Environment.timerInterruptInstalled
00001ECC8H: code Environment.uartInterrupt
00001ECD0H: code Environment.previousTimerHandler
00001ECD4H: code Environment.atags
00001ECD8H: data Environment.@ConstSections to 00001F737H
00001ECD8H: code Environment.Read.@Descriptor
00001ECE4H: code Environment.GetString.@Descriptor
00001ECF0H: code Environment.@const0
00001ED0CH: code Environment.@const1
00001ED18H: code Environment.@const2
00001ED28H: code Environment.@const3
00001ED48H: code Environment.InitMemory.Anonymous@5016
00001ED54H: code Environment.InitMemory.Anonymous@5016.@Pointer
00001ED60H: code Environment.@Module
00001EE1CH: code Environment.@Module.@Descriptor
00001EE2CH: code Environment.@const4
00001EE38H: code Environment.@const5
00001EE44H: code Environment.@const6
00001EE48H: code Environment.@const7
00001EE58H: code Environment.@const8
00001EE60H: code Environment.@Info
00001EE98H: code Environment.@PointerArray
00001EEBCH: code Environment.@ImportsArray
00001EEFCH: code Environment.@CommandArray
00001EF78H: code Environment.@ExceptionArray
00001EF9CH: code Environment.@TypeInfoArray
00001EFC4H: code Environment.@References
00001EFE8H: code Environment.@ProcTable
00001EFFCH: code Environment.@EmptyArray
00001F020H: code Environment.@NamePool
00001F258H: code Environment.@ExportArray1
00001F68CH: code Environment.@ExportArray2
00001F700H: code Environment.@ExportArray3
00001F738H: code Mutexes.@Body to 00001F797H
00001F798H: code Mutexes.@CodeSections to 00001FCF3H
00001F798H: code Mutexes.Mutex.@Trace
00001F7C8H: code Mutexes.Mutex.@Pointer.@Trace
00001F7ECH: code Mutexes.Mutex.@Array.@Trace
00001F828H: code Mutexes.Mutex.@Reset
00001F84CH: code Mutexes.Mutex.@Array.@Reset
00001F888H: code Mutexes.Mutex.@Assign
00001F8B4H: code Mutexes.Mutex.@Array.@Assign
00001F900H: code Mutexes.Acquire
00001FA04H: code Mutexes.Enqueue
00001FB20H: code Mutexes.Acquire.@Reset
00001FB50H: code Mutexes.Enqueue.@Reset
00001FB80H: code Mutexes.Release
00001FCACH: code Mutexes.Release.@Reset
00001FCDCH: code Mutexes.@Trace
00001FCF4H: data Mutexes.@ConstSections to 000020347H
00001FCF4H: code Mutexes.Mutex
00001FD00H: code Mutexes.Mutex.@Pointer
00001FD0CH: code Mutexes.Acquire.@Descriptor
00001FD18H: code Mutexes.Enqueue.@Descriptor
00001FD24H: code Mutexes.Release.@Descriptor
00001FD30H: code Mutexes.@Module
00001FDECH: code Mutexes.@Module.@Descriptor
00001FDFCH: code Mutexes.@Info
00001FE34H: code Mutexes.@PointerArray
00001FE58H: code Mutexes.@ImportsArray
00001FE84H: code Mutexes.@CommandArray
00001FEA8H: code Mutexes.@ExceptionArray
00001FECCH: code Mutexes.@TypeInfoArray
00001FEF4H: code Mutexes.@References
00001FF18H: code Mutexes.@ProcTable
00001FF2CH: code Mutexes.@EmptyArray
00001FF50H: code Mutexes.@NamePool
000020048H: code Mutexes.@ExportArray1
0000201C0H: code Mutexes.@ExportArray2
0000202D4H: code Mutexes.@ExportArray3
000020348H: code Machine.@Body to 000020467H
000020468H: code Machine.@CodeSections to 00002159FH
000020468H: code Machine.StrToInt
0000208B0H: code Machine.CurrentPC
0000208DCH: code Machine.MapPhysical
000020948H: code Machine.UnmapPhysical
000020970H: code Machine.TranslateVirtual
000020BDCH: code Machine.Ensure32BitAddress
000020C88H: code Machine.Is32BitAddress
000020D24H: code Machine.Fill32
000020D88H: code Machine.GetConfig
000020E18H: code Machine.Shutdown
000020EA8H: code Machine.Cli
000020F20H: code Machine.Sti
000020F98H: code Machine.GetTimer
000021034H: code Machine.ID
0000210C4H: code Machine.Acquire
00002117CH: code Machine.Release
000021234H: code Machine.ValidHeapAddress
0000212CCH: code Machine.GetFreeK
000021350H: code Machine.PhysicalAdr
0000213D0H: code Machine.AtomicTestSet
00002141CH: code Machine.NumberOfProcessors
0000214A4H: code Machine.InvalidateDCacheRange
000021504H: code Machine.FlushDCacheRange
000021564H: code Machine.@Trace
0000215A0H: data Machine.@DataSections to 00002169FH
0000215A0H: code Machine.MMXSupport
0000215A4H: code Machine.SSESupport
0000215A8H: code Machine.SSE2Support
0000215ACH: code Machine.SSE3Support
0000215B0H: code Machine.SSSE3Support
0000215B4H: code Machine.SSE41Support
0000215B8H: code Machine.SSE42Support
0000215BCH: code Machine.SSE5Support
0000215C0H: code Machine.AVXSupport
0000215C4H: code Machine.version
000021604H: code Machine.features
000021608H: code Machine.features2
00002160CH: code Machine.fcr
000021610H: code Machine.mhz
000021618H: code Machine.boottime
000021620H: code Machine.lock
00002162CH: code Machine.mutex
000021698H: code Machine.memBlockHead
00002169CH: code Machine.memBlockTail
0000216A0H: data Machine.@ConstSections to 0000223D3H
0000216A0H: code Machine.Range
0000216ACH: code Machine.Range.@Pointer
0000216B8H: code Machine.MemoryBlockDesc
0000216C4H: code Machine.MemoryBlockDesc.@Pointer
0000216D0H: code Machine.Stack
0000216DCH: code Machine.Stack.@Pointer
0000216E8H: code Machine.StrToInt.@Descriptor
0000216F4H: code Machine.MapPhysical.@Descriptor
000021700H: code Machine.TranslateVirtual.@Descriptor
00002170CH: code Machine.GetConfig.@Descriptor
000021718H: code Machine.GetFreeK.@Descriptor
000021724H: code Machine.AtomicInc.@Descriptor
000021730H: code Machine.AtomicDec.@Descriptor
00002173CH: code Machine.AtomicAdd.@Descriptor
000021748H: code Machine.AtomicTestSet.@Descriptor
000021754H: code Machine.AtomicCAS.@Descriptor
000021760H: code Machine.@Module
00002181CH: code Machine.@Module.@Descriptor
00002182CH: code Machine.@const0
000021838H: code Machine.@const1
000021858H: code Machine.Version
000021878H: code Machine.DefaultObjectFileExtension
000021880H: code Machine.@Info
0000218B8H: code Machine.@PointerArray
000021924H: code Machine.@ImportsArray
000021960H: code Machine.@CommandArray
0000219DCH: code Machine.@ExceptionArray
000021A00H: code Machine.@TypeInfoArray
000021A28H: code Machine.@References
000021A4CH: code Machine.@ProcTable
000021A60H: code Machine.@EmptyArray
000021A84H: code Machine.@NamePool
000021D88H: code Machine.@ExportArray1
0000222D4H: code Machine.@ExportArray2
0000223D4H: code Heaps.@Body to 00002243FH
000022440H: code Heaps.@CodeSections to 00002588FH
000022440H: code Heaps.RootObject.@Trace
000022474H: code Heaps.RootObject.@Assign
0000224A4H: code Heaps.RootObject.FindRoots
00002251CH: code Heaps.ProcessLink.@Trace
000022568H: code Heaps.ProcessLink.@Assign
0000225CCH: code Heaps.ProcessQueue.@Trace
000022618H: code Heaps.ProcessQueue.@Pointer.@Trace
00002263CH: code Heaps.ProcessQueue.@Array.@Trace
000022678H: code Heaps.ProcessQueue.@Reset
0000226B4H: code Heaps.ProcessQueue.@Array.@Reset
0000226F0H: code Heaps.ProcessQueue.@Assign
000022744H: code Heaps.ProcessQueue.@Array.@Assign
000022790H: code Heaps.FinalizerNode.@Trace
000022824H: code Heaps.FinalizerNode.@Pointer.@Trace
000022848H: code Heaps.FinalizerNode.@Array.@Trace
000022884H: code Heaps.FinalizerNode.@Reset
00002290CH: code Heaps.FinalizerNode.@Array.@Reset
000022948H: code Heaps.FinalizerNode.@Assign
000022A0CH: code Heaps.FinalizerNode.@Array.@Assign
000022A58H: code Heaps.HeapBlockDesc.@Trace
000022A8CH: code Heaps.HeapBlockDesc.@Pointer.@Trace
000022AB0H: code Heaps.HeapBlockDesc.@Array.@Trace
000022AECH: code Heaps.HeapBlockDesc.@Reset
000022B14H: code Heaps.HeapBlockDesc.@Array.@Reset
000022B50H: code Heaps.HeapBlockDesc.@Assign
000022B84H: code Heaps.HeapBlockDesc.@Array.@Assign
000022BD0H: code Heaps.FreeBlockDesc.@Trace
000022C04H: code Heaps.FreeBlockDesc.@Pointer.@Trace
000022C28H: code Heaps.FreeBlockDesc.@Array.@Trace
000022C64H: code Heaps.FreeBlockDesc.@Reset
000022C98H: code Heaps.FreeBlockDesc.@Array.@Reset
000022CD4H: code Heaps.FreeBlockDesc.@Assign
000022D14H: code Heaps.FreeBlockDesc.@Array.@Assign
000022D60H: code Heaps.SystemBlockDesc.@Trace
000022D78H: code Heaps.SystemBlockDesc.@Pointer.@Trace
000022D9CH: code Heaps.SystemBlockDesc.@Array.@Trace
000022DD8H: code Heaps.SystemBlockDesc.@Reset
000022DF0H: code Heaps.SystemBlockDesc.@Array.@Reset
000022E2CH: code Heaps.SystemBlockDesc.@Assign
000022E44H: code Heaps.SystemBlockDesc.@Array.@Assign
000022E90H: code Heaps.RecordBlockDesc.@Trace
000022EA8H: code Heaps.RecordBlockDesc.@Pointer.@Trace
000022ECCH: code Heaps.RecordBlockDesc.@Array.@Trace
000022F08H: code Heaps.RecordBlockDesc.@Reset
000022F20H: code Heaps.RecordBlockDesc.@Array.@Reset
000022F5CH: code Heaps.RecordBlockDesc.@Assign
000022F74H: code Heaps.RecordBlockDesc.@Array.@Assign
000022FC0H: code Heaps.ProtRecBlockDesc.@Trace
000023040H: code Heaps.ProtRecBlockDesc.@Pointer.@Trace
000023064H: code Heaps.ProtRecBlockDesc.@Array.@Trace
0000230A0H: code Heaps.ProtRecBlockDesc.@Reset
000023120H: code Heaps.ProtRecBlockDesc.@Array.@Reset
00002315CH: code Heaps.ProtRecBlockDesc.@Assign
00002320CH: code Heaps.ProtRecBlockDesc.@Array.@Assign
000023258H: code Heaps.ArrayBlockDesc.@Trace
000023270H: code Heaps.ArrayBlockDesc.@Pointer.@Trace
000023294H: code Heaps.ArrayBlockDesc.@Array.@Trace
0000232D0H: code Heaps.ArrayBlockDesc.@Reset
0000232E8H: code Heaps.ArrayBlockDesc.@Array.@Reset
000023324H: code Heaps.ArrayBlockDesc.@Assign
00002333CH: code Heaps.ArrayBlockDesc.@Array.@Assign
000023388H: code Heaps.SetAllocationLogger
0000233F8H: code Heaps.CheckCandidates
000023420H: code Heaps.GetFinalizer
000023670H: code Heaps.GetFinalizer.@Reset
0000236A0H: code Heaps.CleanupModuleFinalizers
000023E28H: code Heaps.CleanupModuleFinalizers.@Reset
000023E80H: code Heaps.InvokeGC
000023EECH: code Heaps.LazySweepGC
000023F64H: code Heaps.InitFreeBlock
0000240E8H: code Heaps.InitFreeBlock.@Reset
000024118H: code Heaps.NewSys
000024400H: code Heaps.SetPC
0000244ACH: code Heaps.SetPC.@Reset
0000244DCH: code Heaps.NewRec
000024864H: code Heaps.NewProtRec
000024D38H: code Heaps.NewArr
000025210H: code Heaps.FillStaticType
0000253BCH: code Heaps.AddFinalizer
00002562CH: code Heaps.AddFinalizer.@Reset
000025670H: code Heaps.GetHeapInfo
0000256F4H: code Heaps.Init
00002583CH: code Heaps.@Trace
000025890H: data Heaps.@DataSections to 0000258FFH
000025890H: code Heaps.GC
000025894H: code Heaps.realtimeList
000025898H: code Heaps.checkRoot
00002589CH: code Heaps.finalizeRoot
0000258A0H: code Heaps.freeBlockTag
0000258A4H: code Heaps.systemBlockTag
0000258A8H: code Heaps.recordBlockTag
0000258ACH: code Heaps.protRecBlockTag
0000258B0H: code Heaps.arrayBlockTag
0000258B4H: code Heaps.Nnew
0000258B8H: code Heaps.NnewBytes
0000258C0H: code Heaps.Ngc
0000258C4H: code Heaps.Nmark
0000258C8H: code Heaps.Nmarked
0000258CCH: code Heaps.NfinalizeAlive
0000258D0H: code Heaps.NfinalizeDead
0000258D4H: code Heaps.NgcCyclesMark
0000258DCH: code Heaps.NgcCyclesLastRun
0000258E4H: code Heaps.NgcCyclesMax
0000258ECH: code Heaps.NgcCyclesAllRuns
0000258F4H: code Heaps.freeBlockFound
0000258F8H: code Heaps.freeBlockNotFound
0000258FCH: code Heaps.allocationLogger
000025900H: data Heaps.@ConstSections to 000026E27H
000025900H: code Heaps.RootObject
000025914H: code Heaps.ProcessLink
000025928H: code Heaps.ProcessQueue
000025934H: code Heaps.ProcessQueue.@Pointer
000025940H: code Heaps.FinalizerNode
00002594CH: code Heaps.FinalizerNode.@Pointer
000025958H: code Heaps.HeapBlockDesc
000025964H: code Heaps.HeapBlockDesc.@Pointer
000025970H: code Heaps.FreeBlockDesc
00002597CH: code Heaps.FreeBlockDesc.@Pointer
000025988H: code Heaps.SystemBlockDesc
000025994H: code Heaps.SystemBlockDesc.@Pointer
0000259A0H: code Heaps.RecordBlockDesc
0000259ACH: code Heaps.RecordBlockDesc.@Pointer
0000259B8H: code Heaps.ProtRecBlockDesc
0000259C4H: code Heaps.ProtRecBlockDesc.@Pointer
0000259D0H: code Heaps.ArrayBlockDesc
0000259DCH: code Heaps.ArrayBlockDesc.@Pointer
0000259E8H: code Heaps.StaticTypeDesc
0000259F4H: code Heaps.StaticTypeDesc.@Pointer
000025A00H: code Heaps.FreeList
000025A0CH: code Heaps.FreeList.@Pointer
000025A18H: code Heaps.GetFinalizer.@Descriptor
000025A24H: code Heaps.@const0
000025A3CH: code Heaps.@const1
000025A50H: code Heaps.CleanupModuleFinalizers.@Descriptor
000025A5CH: code Heaps.InitFreeBlock.@Descriptor
000025A68H: code Heaps.NewSys.@Descriptor
000025A74H: code Heaps.SetPC.@Descriptor
000025A80H: code Heaps.NewRec.@Descriptor
000025A8CH: code Heaps.NewProtRec.@Descriptor
000025A98H: code Heaps.NewArr.@Descriptor
000025AA4H: code Heaps.FillStaticType.@Descriptor
000025AB0H: code Heaps.AddFinalizer.@Descriptor
000025ABCH: code Heaps.GetHeapInfo.@Descriptor
000025AC8H: code Heaps.@Module
000025B84H: code Heaps.@Module.@Descriptor
000025B94H: code Heaps.@Info
000025BCCH: code Heaps.@PointerArray
000025BF8H: code Heaps.@ImportsArray
000025C24H: code Heaps.@CommandArray
000025CF8H: code Heaps.@ExceptionArray
000025D1CH: code Heaps.@TypeInfoArray
000025D44H: code Heaps.@References
000025D68H: code Heaps.@ProcTable
000025D7CH: code Heaps.@EmptyArray
000025DA0H: code Heaps.@NamePool
000026114H: code Heaps.@ExportArray1
000026660H: code Heaps.@ExportArray2
000026B84H: code Heaps.@ExportArray3
000026E28H: code Modules.@Body to 000026E93H
000026E94H: code Modules.@CodeSections to 00002DD3BH
000026E94H: code Modules.Module.@Trace
000026FE8H: code Modules.Module.@Assign
0000271D8H: code Modules.AddLoader
0000273DCH: code Modules.RemoveLoader
0000277D0H: code Modules.Append
000027A2CH: code Modules.Publish
0000280D8H: code Modules.Unregister
000028494H: code Modules.SortExceptionTable
000028558H: code Modules.SortProcedureDescs
00002861CH: code Modules.Publish.@Reset
00002864CH: code Modules.Initialize
000028788H: code Modules.ModuleByName
0000289E0H: code Modules.ModuleByName.@Reset
000028A10H: code Modules.GetFileName
000028CACH: code Modules.SortProcedureDescs.Quick
000028F88H: code Modules.SortProcedureDescs.@Reset
000028FB8H: code Modules.SortProcedureDescs.Less
00002913CH: code Modules.SortProcedureDescs.Swap
0000293A8H: code Modules.SortProcedureDescs.Swap.@Reset
0000293D8H: code Modules.SortExceptionTable.Quick
0000296B4H: code Modules.SortExceptionTable.@Reset
0000296E4H: code Modules.SortExceptionTable.Less
000029830H: code Modules.SortExceptionTable.Swap
000029A58H: code Modules.ThisModule
00002A0C4H: code Modules.ThisModule.@Reset
00002A11CH: code Modules.ThisModuleByAdr0
00002A49CH: code Modules.FindProc
00002A884H: code Modules.ThisModuleByAdr0.@Reset
00002A8C8H: code Modules.ThisModuleByAdr
00002AA38H: code Modules.ThisModuleByAdr.@Reset
00002AA7CH: code Modules.GetProcedure
00002AF64H: code Modules.GetProcedure.@Reset
00002AFA8H: code Modules.ThisType
00002B37CH: code Modules.ThisType.@Reset
00002B3C0H: code Modules.ThisTypeByAdr
00002B56CH: code Modules.NewObj
00002B69CH: code Modules.NewObj.@Reset
00002B6E0H: code Modules.TypeOf
00002B81CH: code Modules.TypeOf.@Reset
00002B874H: code Modules.FindProc.@Reset
00002B8A4H: code Modules.InstallTermHandler
00002B9CCH: code Modules.InstallTermHandler.@Reset
00002BA10H: code Modules.FreeModule
00002C83CH: code Modules.FreeModule.@Reset
00002C894H: code Modules.Shutdown
00002CE70H: code Modules.Shutdown.@Reset
00002CEA0H: code Modules.IsExceptionHandled
00002D0BCH: code Modules.GetExceptionHandler
00002D2D8H: code Modules.GetExceptionHandler.BinSearch
00002D6A4H: code Modules.GetExceptionHandler.@Reset
00002D6E8H: code Modules.GetExceptionHandler.BinSearch.@Reset
00002D718H: code Modules.Initialized
00002D7E0H: code Modules.Initialized.@Reset
00002D810H: code Modules.Init
00002D930H: code Modules.Register
00002D998H: code Modules.Unregister.@Reset
00002D9DCH: code Modules.PublishRegisteredModules
00002DC58H: code Modules.FinalizeModules
00002DCCCH: code Modules.@Trace
00002DD3CH: data Modules.@DataSections to 00002DD98H
00002DD3CH: code Modules.extension
00002DD64H: code Modules.loader
00002DD78H: code Modules.numLoaders
00002DD7CH: code Modules.freeRoot
00002DD80H: code Modules.root
00002DD84H: code Modules.shutdown
00002DD88H: code Modules.trace
00002DD8CH: code Modules.register
00002DD94H: code Modules.procedureDescriptors
00002DD98H: code Modules.mayAllocate
00002DD9CH: data Modules.@ConstSections to 00002F2A3H
00002DD9CH: code Modules.Command
00002DDA8H: code Modules.Command.@Pointer
00002DDB4H: code Modules.ExportDesc
00002DDC0H: code Modules.ExportDesc.@Pointer
00002DDCCH: code Modules.TypeDesc
00002DDD8H: code Modules.TypeDesc.@Pointer
00002DDE4H: code Modules.ExceptionTableEntry
00002DDF0H: code Modules.ExceptionTableEntry.@Pointer
00002DDFCH: code Modules.ProcedureDesc
00002DE08H: code Modules.ProcedureDesc.@Pointer
00002DE14H: code Modules.Module
00002DE28H: code Modules.Anonymous@4180
00002DE34H: code Modules.Anonymous@4180.@Pointer
00002DE40H: code Modules.AddLoader.@Descriptor
00002DE4CH: code Modules.@const0
00002DE50H: code Modules.RemoveLoader.@Descriptor
00002DE5CH: code Modules.Append.@Descriptor
00002DE68H: code Modules.@const1
00002DE74H: code Modules.Publish.@Descriptor
00002DE80H: code Modules.Initialize.@Descriptor
00002DE8CH: code Modules.ModuleByName.@Descriptor
00002DE98H: code Modules.GetFileName.@Descriptor
00002DEA4H: code Modules.SortProcedureDescs.@Descriptor
00002DEB0H: code Modules.SortProcedureDescs.Less.@Descriptor
00002DEBCH: code Modules.SortProcedureDescs.Swap.@Descriptor
00002DEC8H: code Modules.SortProcedureDescs.Quick.@Descriptor
00002DED4H: code Modules.SortExceptionTable.@Descriptor
00002DEE0H: code Modules.SortExceptionTable.Less.@Descriptor
00002DEECH: code Modules.SortExceptionTable.Swap.@Descriptor
00002DEF8H: code Modules.SortExceptionTable.Quick.@Descriptor
00002DF04H: code Modules.@const2
00002DF08H: code Modules.@const3
00002DF0CH: code Modules.@const4
00002DF1CH: code Modules.@const5
00002DF2CH: code Modules.@const6
00002DF30H: code Modules.ThisModule.@Descriptor
00002DF3CH: code Modules.@case0
00002DF44H: code Modules.ThisModuleByAdr0.@Descriptor
00002DF50H: code Modules.ThisModuleByAdr.@Descriptor
00002DF5CH: code Modules.GetProcedure.@Descriptor
00002DF68H: code Modules.ThisType.@Descriptor
00002DF74H: code Modules.ThisTypeByAdr.@Descriptor
00002DF80H: code Modules.NewObj.@Descriptor
00002DF8CH: code Modules.TypeOf.@Descriptor
00002DF98H: code Modules.FindProc.@Descriptor
00002DFA4H: code Modules.InstallTermHandler.@Descriptor
00002DFB0H: code Modules.@const7
00002DFB4H: code Modules.@const8
00002DFC0H: code Modules.@const9
00002DFCCH: code Modules.@const10
00002DFDCH: code Modules.@const11
00002DFF8H: code Modules.@const12
00002E004H: code Modules.FreeModule.@Descriptor
00002E010H: code Modules.@const13
00002E020H: code Modules.@const14
00002E03CH: code Modules.Shutdown.@Descriptor
00002E048H: code Modules.IsExceptionHandled.@Descriptor
00002E054H: code Modules.GetExceptionHandler.@Descriptor
00002E060H: code Modules.GetExceptionHandler.BinSearch.@Descriptor
00002E06CH: code Modules.Initialized.@Descriptor
00002E078H: code Modules.@const15
00002E088H: code Modules.Unregister.@Descriptor
00002E094H: code Modules.@Module
00002E150H: code Modules.@Module.@Descriptor
00002E160H: code Modules.DefaultContext
00002E164H: code Modules.@Info
00002E19CH: code Modules.@PointerArray
00002E1CCH: code Modules.@ImportsArray
00002E20CH: code Modules.@CommandArray
00002E288H: code Modules.@ExceptionArray
00002E2ACH: code Modules.@TypeInfoArray
00002E2D4H: code Modules.@References
00002E2F8H: code Modules.@ProcTable
00002E30CH: code Modules.@EmptyArray
00002E330H: code Modules.@NamePool
00002E6E4H: code Modules.@ExportArray1
00002ED0CH: code Modules.@ExportArray2
00002F1CCH: code Modules.@ExportArray3
00002F2A4H: code GarbageCollector.@Body to 00002F303H
00002F304H: code GarbageCollector.@CodeSections to 000030A2FH
00002F304H: code GarbageCollector.Delegate.@Trace
00002F338H: code GarbageCollector.Mark
00002F4ECH: code GarbageCollector.Delegate.@Pointer.@Trace
00002F510H: code GarbageCollector.Delegate.@Array.@Trace
00002F54CH: code GarbageCollector.Delegate.@Reset
00002F574H: code GarbageCollector.Reset
00002F614H: code GarbageCollector.Delegate.@Array.@Reset
00002F650H: code GarbageCollector.Delegate.@Assign
00002F684H: code GarbageCollector.Assign
00002F780H: code GarbageCollector.Delegate.@Array.@Assign
00002F7CCH: code GarbageCollector.Watch
00002F8D4H: code GarbageCollector.AssignDelegate
00002F934H: code GarbageCollector.AssignPointerArray
00002FA04H: code GarbageCollector.AssignDelegateArray
00002FAA0H: code GarbageCollector.CompareAndSwap
00002FBC0H: code GarbageCollector.ResetArray
00002FC4CH: code GarbageCollector.ResetDelegate
00002FC90H: code GarbageCollector.ResetDelegateArray
00002FD1CH: code GarbageCollector.Increment
00002FDACH: code GarbageCollector.Collect
000030068H: code GarbageCollector.TraceMarkedPointers
000030238H: code GarbageCollector.AcquireList
0000302DCH: code GarbageCollector.MarkReferenced
000030484H: code GarbageCollector.Sweep
0000305E8H: code GarbageCollector.MarkPointerArray
000030678H: code GarbageCollector.MarkRecordArray
00003070CH: code GarbageCollector.MarkDelegateArray
000030798H: code GarbageCollector.InsertWatched
000030844H: code GarbageCollector.Initialize
000030910H: code GarbageCollector.Terminate
000030A18H: code GarbageCollector.@Trace
000030A30H: data GarbageCollector.@DataSections to 000030A4BH
000030A30H: code GarbageCollector.tracings
000030A34H: code GarbageCollector.currentCycle
000030A38H: code GarbageCollector.oldestCycle
000030A3CH: code GarbageCollector.firstMarked
000030A40H: code GarbageCollector.firstWatched
000030A44H: code GarbageCollector.markedSentinel
000030A48H: code GarbageCollector.watchedSentinel
000030A4CH: data GarbageCollector.@ConstSections to 000031547H
000030A4CH: code GarbageCollector.Delegate
000030A58H: code GarbageCollector.Delegate.@Pointer
000030A64H: code GarbageCollector.Assign.@Descriptor
000030A70H: code GarbageCollector.AssignPointerArray.@Descriptor
000030A7CH: code GarbageCollector.AssignDelegateArray.@Descriptor
000030A88H: code GarbageCollector.CompareAndSwap.@Descriptor
000030A94H: code GarbageCollector.Reset.@Descriptor
000030AA0H: code GarbageCollector.ResetArray.@Descriptor
000030AACH: code GarbageCollector.ResetDelegateArray.@Descriptor
000030AB8H: code GarbageCollector.Increment.@Descriptor
000030AC4H: code GarbageCollector.MarkPointerArray.@Descriptor
000030AD0H: code GarbageCollector.MarkDelegateArray.@Descriptor
000030ADCH: code GarbageCollector.AcquireList.@Descriptor
000030AE8H: code GarbageCollector.MarkReferenced.@Descriptor
000030AF4H: code GarbageCollector.@Module
000030BB0H: code GarbageCollector.@Module.@Descriptor
000030BC0H: code GarbageCollector.@Info
000030BF8H: code GarbageCollector.@PointerArray
000030C1CH: code GarbageCollector.@ImportsArray
000030C50H: code GarbageCollector.@CommandArray
000030CA0H: code GarbageCollector.@ExceptionArray
000030CC4H: code GarbageCollector.@TypeInfoArray
000030CECH: code GarbageCollector.@References
000030D10H: code GarbageCollector.@ProcTable
000030D24H: code GarbageCollector.@EmptyArray
000030D48H: code GarbageCollector.@NamePool
000030FB4H: code GarbageCollector.@ExportArray1
000031348H: code GarbageCollector.@ExportArray2
0000314D4H: code GarbageCollector.@ExportArray3
000031548H: code Objects.@Body to 0000315B3H
0000315B4H: code Objects.@CodeSections to 0000355C7H
0000315B4H: code Objects.Timer.@Trace
000031618H: code Objects.Timer.@Pointer.@Trace
00003163CH: code Objects.Timer.@Array.@Trace
000031678H: code Objects.Timer.@Reset
0000316D0H: code Objects.Timer.@Array.@Reset
00003170CH: code Objects.Timer.@Assign
000031788H: code Objects.Timer.@Array.@Assign
0000317D4H: code Objects.RealtimeTimer.@Trace
000031838H: code Objects.RealtimeTimer.@Pointer.@Trace
00003185CH: code Objects.RealtimeTimer.@Array.@Trace
000031898H: code Objects.RealtimeTimer.@Reset
0000318F0H: code Objects.RealtimeTimer.@Array.@Reset
00003192CH: code Objects.RealtimeTimer.@Assign
0000319A8H: code Objects.RealtimeTimer.@Array.@Assign
0000319F4H: code Objects.Clock.@Trace
000031A28H: code Objects.Clock.@Assign
000031A58H: code Objects.Clock.@Body
000031E7CH: code Objects.Process.@Trace
000031EC8H: code Objects.Process.@Assign
000031F2CH: code Objects.FinalizedCollection.RemoveAll
000031FBCH: code Objects.FinalizedCollection.RemoveAll.@Reset
000031FECH: code Objects.FinalizerNode.@Trace
000032020H: code Objects.FinalizerNode.@Pointer.@Trace
000032044H: code Objects.FinalizerNode.@Array.@Trace
000032080H: code Objects.FinalizerNode.@Reset
0000320B4H: code Objects.FinalizerNode.@Array.@Reset
0000320F0H: code Objects.FinalizerNode.@Assign
000032130H: code Objects.FinalizerNode.@Array.@Assign
00003217CH: code Objects.InterruptList.@Trace
0000321C8H: code Objects.InterruptList.@Pointer.@Trace
0000321ECH: code Objects.InterruptList.@Array.@Trace
000032228H: code Objects.InterruptList.@Reset
000032268H: code Objects.InterruptList.@Array.@Reset
0000322A4H: code Objects.InterruptList.@Assign
0000322FCH: code Objects.InterruptList.@Array.@Assign
000032348H: code Objects.Interrupter.@Trace
00003237CH: code Objects.Interrupter.@Assign
0000323ACH: code Objects.Interrupter.Init
00003243CH: code Objects.Interrupter.Add
00003267CH: code Objects.Interrupter.Add.@Reset
0000326C4H: code Objects.Interrupter.Remove
000032A30H: code Objects.Interrupter.Remove.@Reset
000032A8CH: code Objects.Interrupter.Count
000032CA0H: code Objects.Interrupter.Count.@Reset
000032CD0H: code Objects.Interrupter.Cancel
000032DD0H: code Objects.Interrupter.Handle
000032FACH: code Objects.Interrupter.Handle.@Reset
000032FDCH: code Objects.Interrupter.@Body
0000330E0H: code Objects.SetPriority
000033140H: code Objects.LockedByCurrent
0000332ACH: code Objects.ActiveObject
0000333A0H: code Objects.LockedByCurrent.@Reset
0000333E4H: code Objects.Yield
000033450H: code Objects.CurrentProcess
000033518H: code Objects.GetStackBottom
0000335E4H: code Objects.GetStackBottom.@Reset
000033614H: code Objects.GetProcessID
0000336B4H: code Objects.TerminateThis
0000336DCH: code Objects.TerminateThis.@Reset
00003370CH: code Objects.Terminate
000033790H: code Objects.SetTimeout
000033D88H: code Objects.SetTimeout.@Reset
000033DE4H: code Objects.SetTimeoutAt
0000343B4H: code Objects.SetTimeoutAt.@Reset
000034410H: code Objects.CancelTimeout
0000346ECH: code Objects.CancelTimeout.@Reset
00003471CH: code Objects.InitEventHandling
000034964H: code Objects.NumReady
0000349E4H: code Objects.GetCpuCycles
000034D78H: code Objects.GetCpuCycles.@Reset
000034DA8H: code Objects.CurrentProcessTime
000034E40H: code Objects.TimerFrequency
000034EDCH: code Objects.InstallHandler
0000351F0H: code Objects.@Trace
000035284H: code Objects.InstallHandler.@Reset
0000352CCH: code Objects.RemoveHandler
000035580H: code Objects.RemoveHandler.@Reset
0000355C8H: data Objects.@DataSections to 0000355F7H
0000355C8H: code Objects.event
0000355CCH: code Objects.awc
0000355D0H: code Objects.awl
0000355D4H: code Objects.oberonLoop
0000355D8H: code Objects.clock
0000355DCH: code Objects.interrupt
0000355F8H: data Objects.@ConstSections to 000036853H
0000355F8H: code Objects.ProtectedObject
000035604H: code Objects.ProtectedObject.@Pointer
000035610H: code Objects.Timer
00003561CH: code Objects.Timer.@Pointer
000035628H: code Objects.RealtimeTimer
000035634H: code Objects.RealtimeTimer.@Pointer
000035640H: code Objects.Clock
000035654H: code Objects.Process
000035668H: code Objects.Process.Anonymous@2580
000035674H: code Objects.Process.Anonymous@2580.@Pointer
000035680H: code Objects.FinalizedCollection
000035694H: code Objects.FinalizedCollection.RemoveAll.@Descriptor
0000356A0H: code Objects.FinalizerNode
0000356ACH: code Objects.FinalizerNode.@Pointer
0000356B8H: code Objects.InterruptList
0000356C4H: code Objects.InterruptList.@Pointer
0000356D0H: code Objects.Interrupter
0000356FCH: code Objects.Interrupter.Add.@Descriptor
000035708H: code Objects.Interrupter.Remove.@Descriptor
000035714H: code Objects.Interrupter.Count.@Descriptor
000035720H: code Objects.Interrupter.Handle.@Descriptor
00003572CH: code Objects.LockedByCurrent.@Descriptor
000035738H: code Objects.CurrentProcess.@Descriptor
000035744H: code Objects.GetStackBottom.@Descriptor
000035750H: code Objects.ActiveObject.@Descriptor
00003575CH: code Objects.TerminateThis.@Descriptor
000035768H: code Objects.SetTimeout.@Descriptor
000035774H: code Objects.SetTimeoutAt.@Descriptor
000035780H: code Objects.CancelTimeout.@Descriptor
00003578CH: code Objects.GetCpuCycles.@Descriptor
000035798H: code Objects.@Module
000035854H: code Objects.@Module.@Descriptor
000035864H: code Objects.InstallHandler.@Descriptor
000035870H: code Objects.RemoveHandler.@Descriptor
00003587CH: code Objects.@Info
0000358B4H: code Objects.@PointerArray
000035900H: code Objects.@ImportsArray
000035944H: code Objects.@CommandArray
000035A44H: code Objects.@ExceptionArray
000035A68H: code Objects.@TypeInfoArray
000035A90H: code Objects.@References
000035AB4H: code Objects.@ProcTable
000035AC8H: code Objects.@EmptyArray
000035AECH: code Objects.@NamePool
000035D98H: code Objects.@ExportArray1
000036168H: code Objects.@ExportArray2
000036614H: code Objects.@ExportArray3
000036854H: code Kernel.@Body to 000036937H
000036938H: code Kernel.@CodeSections to 00003868BH
000036938H: code Kernel.FinalizerNode.@Trace
000036950H: code Kernel.FinalizerNode.@Pointer.@Trace
000036974H: code Kernel.FinalizerNode.@Array.@Trace
0000369B0H: code Kernel.FinalizerNode.@Reset
0000369C8H: code Kernel.FinalizerNode.@Array.@Reset
000036A04H: code Kernel.FinalizerNode.@Assign
000036A1CH: code Kernel.FinalizerNode.@Array.@Assign
000036A68H: code Kernel.Timer.@Trace
000036A9CH: code Kernel.Timer.@Assign
000036ACCH: code Kernel.Timer.HandleTimeout
000036BB0H: code Kernel.Timer.Sleep
000036E08H: code Kernel.Timer.Wakeup
000036ECCH: code Kernel.Timer.Init
000036FFCH: code Kernel.FinalizedCollection.@Trace
000037030H: code Kernel.FinalizedCollection.@Assign
000037060H: code Kernel.FinalizedCollection.Add
000037348H: code Kernel.FinalizedCollection.Add.@Reset
0000373A4H: code Kernel.FinalizedCollection.Remove
000037684H: code Kernel.FinalizedCollection.Remove.@Reset
0000376DCH: code Kernel.FinalizedCollection.RemoveAll
0000379B4H: code Kernel.FinalizedCollection.RemoveAll.@Reset
000037A0CH: code Kernel.FinalizedCollection.Enumerate
000037CF8H: code Kernel.FinalizedCollection.Enumerate.@Reset
000037D54H: code Kernel.FinalizedCollection.EnumerateN
000038124H: code Kernel.FinalizedCollection.EnumerateN.@Reset
000038194H: code Kernel.FinalizedCollection.Clear
0000382E0H: code Kernel.GetTicks
000038370H: code Kernel.GC
0000383DCH: code Kernel.SetTimer
000038484H: code Kernel.Expired
000038534H: code Kernel.Elapsed
0000385D0H: code Kernel.Left
000038674H: code Kernel.@Trace
00003868CH: data Kernel.@DataSections to 00003868FH
00003868CH: code Kernel.second
000038690H: data Kernel.@ConstSections to 00003910FH
000038690H: code Kernel.FinalizerNode
00003869CH: code Kernel.FinalizerNode.@Pointer
0000386A8H: code Kernel.MilliTimer
0000386B4H: code Kernel.MilliTimer.@Pointer
0000386C0H: code Kernel.Timer
0000386E0H: code Kernel.FinalizedCollection
000038708H: code Kernel.FinalizedCollection.Add.@Descriptor
000038714H: code Kernel.FinalizedCollection.Remove.@Descriptor
000038720H: code Kernel.FinalizedCollection.RemoveAll.@Descriptor
00003872CH: code Kernel.FinalizedCollection.Enumerate.@Descriptor
000038738H: code Kernel.FinalizedCollection.EnumerateN.@Descriptor
000038744H: code Kernel.SetTimer.@Descriptor
000038750H: code Kernel.Expired.@Descriptor
00003875CH: code Kernel.Elapsed.@Descriptor
000038768H: code Kernel.Left.@Descriptor
000038774H: code Kernel.@Module
000038830H: code Kernel.@Module.@Descriptor
000038840H: code Kernel.@const0
00003884CH: code Kernel.@const1
000038868H: code Kernel.@Info
0000388A0H: code Kernel.@PointerArray
0000388C4H: code Kernel.@ImportsArray
0000388FCH: code Kernel.@CommandArray
00003894CH: code Kernel.@ExceptionArray
000038970H: code Kernel.@TypeInfoArray
000038998H: code Kernel.@References
0000389BCH: code Kernel.@ProcTable
0000389D0H: code Kernel.@EmptyArray
0000389F4H: code Kernel.@NamePool
000038B90H: code Kernel.@ExportArray1
000038DBCH: code Kernel.@ExportArray2
000038FD4H: code Kernel.@ExportArray3
000039120H: code Environment.KernelEnd to 00003911FH
code displacement 000008000H
kernel.img:written 1607936 bits (= 200992 units).

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 21:06

Порядок BodyStub-ов почти полностью совпадает с порядком модулей в команде линковки, но Runtime куда-то перескочил. Видимо, это неважно, т.к. он
всё равно перескочил в группе модулей, у которых нет тела. Поскольку размер @BodyStub-ов одинаков для всех модулей, видимо, создаётся какой-то вызов, а потом "фиксапами" (Fixup) это как-то чинится. Я хз. Но во всяком случае, это происходит в FoxIntermediateBackend...AddBodyCallStub и там ещё 3 ветки, кто знает, какая из них вызывается - либо просто bodyProcedure, либо Modules.Register, либо Modules.Preregister. Register вставляет модуль в некий список (список модулей?), а Preregister в нашей кооперативной версии просто отсутствует.

Исходя из этого, получается, что процедуры инициализации вроде как должны идти по порядку модулей в образе и это будут:

Код: Выделить всё

RPI.Environment.Mod 
Coop.ARM.Machine.Mod 
Coop.Heaps.Mod 
Coop.Modules.Mod 
Coop.Objects.Mod - создаёт активный объект!
Coop.Kernel.Mod 
На всякий случай, проверяем, что пр-ра с атрибутом INITIAL у нас одна. Предположительно, после всех инициализаций
вызывается Modules.Main, поскольку именно она идёт после всех @BodyStub-ов.
Последний раз редактировалось БудДен 28.10.21 12:51, всего редактировалось 1 раз.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 21:14

Теперь попробуем посмотреть, с чего начинается родина, т.е. загрузчик. Согласно SO, нужна команда по типу такой:

Код: Выделить всё

/usr/bin/arm-none-eabi-objdump -b binary --adjust-vma=0x00008000 -m armv5 -D /y/rpib/001-twinkle-twinkle-little-led/led-rpi2.img 
Или arm_any? Странно, мы вот тут идентифицировали нашу машину как ArmV7, а почему же objdump не имеет такой опции?

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 21:39

В общем, только с arm_any для нашего ядра не получается "несуществующих инструкций", идём дальше. Многие модули, в т.ч. Environment, сразу вызывают Trace. Я не понял, как это может работать, ведь Trace.Char присваивается в Environment.Initialize, а она же вызывается только из Modules.Main...

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 21:41

В общем, похоже, опять придётся мигать диодом - далеко до момента, когда начинает работать трассировка.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 22:05

Диод замигал после изменения процедуры вот так:

Код: Выделить всё

PROCEDURE {NOPAF, INITIAL, FIXED(8000H)} KernelBegin;
CODE

	mov r0,#3F000000H
	orr r0,r0,#200000H		

	mov r2,#8000H		
Loop:
	str r2,[r0,#20H]	

	mov r1,#0100000H
WaitA:
	subs r1,r1,#1
	bne WaitA
 
	str r2,[r0,#2CH]	; clear bit
	
	mov r1,#0100000H	; wait a while
WaitB:
	subs r1,r1,#1
	bne WaitB

	b Loop			; again and again

	MOV	SP, #8000H
	LDR	R0, [PC, #tags-$-8]
	STR	R2, [R0, #0]
	B		skip
tags:
	d32	atags
skip:
END KernelBegin;

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 22:06

Попробуем теперь помигать где-нибудь пониже по течению, например, в Modules.Main.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 22:11

Переместил за skip там же - мигает.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 22:23

Попытался поместить в код инициализации модуля Environment - не работает. Да и вообще, какой-то он не живой на вид, в дизассемблинге не видно, чтобы там что-то вызывалось.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 22:49

Воткнул вызов прямо в Modules.Main - работает.

Код: Выделить всё

PROCEDURE {FINAL} Main;
PROCEDURE InitializeGC EXTERN "GarbageCollector.Initialize";
PROCEDURE TerminateGC EXTERN "GarbageCollector.Terminate";
BEGIN {UNCOOPERATIVE, UNCHECKED}
CODE
	mov r0,#3F000000H
	orr r0,r0,#200000H		

	mov r2,#8000H		
Loop:
	str r2,[r0,#20H]	

	mov r1,#0100000H
WaitA:
	subs r1,r1,#1
	bne WaitA
 
	str r2,[r0,#2CH]	; clear bit
	
	mov r1,#010000H	; wait a while
WaitB:
	subs r1,r1,#1
	bne WaitB

	b Loop			; again and again
	(* SYSTEM.SetActivity (NIL);
	SYSTEM.SetFramePointer (NIL);
	Environment.Initialize;
	InitializeGC;
	Processors.Initialize;
	Activities.Execute (PublishRegisteredModules);
	Processors.Terminate;
	FinalizeModules;
	Activities.Terminate;
	Queues.Terminate;
	Environment.Terminate;
	TerminateGC; 
	Environment.Exit (Environment.status); *)
END END Main;
Ну что, продвижение за сегодня неплохое. Дальше нужно, чтобы функции вызывались. Нужно разобраться с этими "фиксапами" - похоже, что они там есть, а я что-то сомневаюсь, что они там должны быть, ведь статическая же сборка. Мне кажется, что либо должен где-то быть код, который их разрешает и превращает в настоящие адреса, либо что-то не так с линковкой.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 23:09

Изменил команду линковки, теперь сборка делается так:

Код: Выделить всё

Release.Build --build --path="./" A2RPiCooperative ~
StaticLinker.Link -a --fileName=kernel.img --extension=Gof --displacement=8000H --path="./" Trace CPU Runtime Counters Processors Queues BaseTypes Timer Activities ExclusiveBlocks HeapManager Interrupts Environment Mutexes Machine Heaps Modules GarbageCollector Objects Kernel ~

Так тоже мигает:

Код: Выделить всё

PROCEDURE {NOPAF} Led1*;
CODE
	mov r0,#3F000000H
	orr r0,r0,#200000H		

	mov r2,#8000H		
Loop:
	str r2,[r0,#20H]	

	mov r1,#010000H
WaitA:
	subs r1,r1,#1
	bne WaitA
 
	str r2,[r0,#2CH]	; clear bit
	
	mov r1,#010000H	; wait a while
WaitB:
	subs r1,r1,#1
	bne WaitB

	b Loop			; again and again
END Led1;



PROCEDURE {FINAL} Main;
PROCEDURE InitializeGC EXTERN "GarbageCollector.Initialize";
PROCEDURE TerminateGC EXTERN "GarbageCollector.Terminate";
BEGIN {UNCOOPERATIVE, UNCHECKED}
 Led1;
	Led1;
	Led1;
	(* SYSTEM.SetActivity (NIL);
	SYSTEM.SetFramePointer (NIL);
	Environment.Initialize;
	InitializeGC;
	Processors.Initialize;
	Activities.Execute (PublishRegisteredModules);
	Processors.Terminate;
	FinalizeModules;
	Activities.Terminate;
	Queues.Terminate;
	Environment.Terminate;
	TerminateGC; 
	Environment.Exit (Environment.status); *)
END Main;
Следующая задача - чтобы процедура мигания вызывалась из другого модуля (а что-то не факт, что она вызывается) - это уже на завтра.
Последний раз редактировалось БудДен 27.10.21 23:49, всего редактировалось 1 раз.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.10.21 23:48

Перенёс пр-ру мигания в RPI.Environment.Mod - мигает.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 28.10.21 01:02

Код: Выделить всё

tag = 00000005
memtag = 0000011C
memTag.size = 989855744

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 28.10.21 12:25

Оно теперь падает где-то в районе включения остальных процессоров - загрузка начинает выполняться повторно. Либо я своими отладочными выводами вмешался в какую-то гонку и изменил в ней победителя, либо достигнут предел работоспособности. Пойду читать их учебные курсы...

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 28.10.21 16:13

Имеется устойчивое ощущение, что код инициализации модуля не то, что не вызывается, а даже не линкуется. Картина слегка смазана тем, что я довольно долго читал дизассемблерный листинг от старого ядра, однако то, что не вызывается - это факт. Это непохоже на правду, т.к. там инициализируются некие константы. Возможно, я что-то не понял. Попробую найти хоть одну работающую кооперативную сборку для любой платформы и посмотрим, как она линкуется и вызывается ли там этот код.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 28.10.21 19:08

В некооперативной сборке код вызывается.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 28.10.21 20:40

Посмотрел на современной (октябрь 2021) ЯОС - поломана генерация кода, ассемблерные инструкции кривые. Нахаляву не прокатило :)

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 28.10.21 20:43

В общем, принимаем гипотезу, что блоки между begin..end должны всё же выполняться, будем смотреть их судьбу и выяснять, почему не выполняются.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 29.10.21 00:41

Что-то не так в начале многопроцессорности. Попытался обойтись одним процессором, но логика на это не рассчитана и сразу падает. Видимо, нужно прочитать исходник. Также нужно внимательно смотреть - любая пр-ра без атрибута Cooperative сама по себе ожидает работающей многозадачности (т.к. компилятор вставляет куски кода).

Короче, сегодня ни черта не продвинулся.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 29.10.21 23:21

Не понял, почему и как, но дела пошли чуть лучше после удаления одной строчки, которая зависала. Блоки инициализации модулей, оказывается, вызываются из процедуры PublishRegisteredModules, Однако, до модуля Kernel дело всё же не доходит - похоже, виснет в Objects при создании активного объекта "clock".
Последний раз редактировалось БудДен 30.10.21 00:33, всего редактировалось 1 раз.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 30.10.21 00:32

EmitCooperativeSwitch -> Activities.Switch

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: Пытаюсь запустить под ARM, часть 2

Сообщение БудДен » 27.03.22 15:42

Итог работы - под RPi2 кооперативное ядро загружается, см. https://tvoygit.ru/budden/ja-o-s/src/br ... erry-pi.md

Ответить