Gast
#969363
Hallo zusammen, ich schreibe im Moment einen kleine Scheduler. FreeRTOS könnte ich zwar nehmen, aber ich mache das rein aus Interesse und um was zu lernen. Ich verwende einen XC866 von Infineon und programmiere in C mit SDCC. Unten ist ein Ausschnitt aus dem Programm angehängt. Und im Moment schalte ich auch nur zwischen zwei Funktionen hin und her, ohne vorher Stack und Register zu sichern. Das kommt noch. Erstmal zu meinem Problem: Meine Lösung zum Funktion umschalten funktioniert zwar, aber ich finde Sie nicht besonders schön. Die Adresse der Funktion schreibe ich vor dem ASM-Teil in zwei Byte (Low/High) Variablen, auf die ich dann in ASM zugreife. Kann man nich in ASM direkt auf die Funktionsadresse zugreifen? Ich habe dann immer Fehler bekommen (falsche Adressierung oder so...). Kann ich auf Elemente der Struktur in ASM zugreifen und dazu Variablen als Index benutzen? Dann könnte ich direkt auf den Funktionszeiger in dem TaskArray zugreifen. Danke schonmal für die Hilfe Krümel
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |