„UT.6.01” változatai közötti eltérés
702. sor: | 702. sor: | ||
=== A C felépítése === | === A C felépítése === | ||
<html> | |||
<table class="MsoNormalTable" style="margin-left: 95.4pt; border-collapse: collapse;" border="1"> | |||
<tbody> | |||
<tr> | |||
<td style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1.5pt 1pt 1pt medium; padding: 0in 5.4pt; width: 67.5pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;"><i>Punctuation</i></p> | |||
</td> | |||
<td style="border-style: solid none; border-color: black -moz-use-text-color; border-width: 1.5pt medium 1pt; padding: 0in 5.4pt; width: 225.75pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;"><i>Meaning</i></p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="border-style: none solid none none; border-color: -moz-use-text-color black -moz-use-text-color -moz-use-text-color; border-width: medium 1pt medium medium; padding: 0in 5.4pt; width: 67.5pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;"><b><span style="font-family: 'Courier New';">;</span></b></p> | |||
</td> | |||
<td style="padding: 0in 5.4pt; width: 225.75pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;">End of statement</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="border-style: none solid none none; border-color: -moz-use-text-color black -moz-use-text-color -moz-use-text-color; border-width: medium 1pt medium medium; padding: 0in 5.4pt; width: 67.5pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;"><b><span style="font-family: 'Courier New';">:</span></b></p> | |||
</td> | |||
<td style="padding: 0in 5.4pt; width: 225.75pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;">Defines a label</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="border-style: none solid none none; border-color: -moz-use-text-color black -moz-use-text-color -moz-use-text-color; border-width: medium 1pt medium medium; padding: 0in 5.4pt; width: 67.5pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;"><b><span style="font-family: 'Courier New';">,</span></b></p> | |||
</td> | |||
<td style="padding: 0in 5.4pt; width: 225.75pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;">Separates elements of a list</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="border-style: none solid none none; border-color: -moz-use-text-color black -moz-use-text-color -moz-use-text-color; border-width: medium 1pt medium medium; padding: 0in 5.4pt; width: 67.5pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;"><b><span style="font-family: 'Courier New';">( )</span></b></p> | |||
</td> | |||
<td style="padding: 0in 5.4pt; width: 225.75pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;">Start and end of a parameter list</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="border-style: none solid none none; border-color: -moz-use-text-color black -moz-use-text-color -moz-use-text-color; border-width: medium 1pt medium medium; padding: 0in 5.4pt; width: 67.5pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;"><b><span style="font-family: 'Courier New';">{ }</span></b></p> | |||
</td> | |||
<td style="padding: 0in 5.4pt; width: 225.75pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;">Start and stop of a compound statement</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="border-style: none solid none none; border-color: -moz-use-text-color black -moz-use-text-color -moz-use-text-color; border-width: medium 1pt medium medium; padding: 0in 5.4pt; width: 67.5pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;"><b><span style="font-family: 'Courier New';">[ ]</span></b></p> | |||
</td> | |||
<td style="padding: 0in 5.4pt; width: 225.75pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;">Start and stop of a array index</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="border-style: none solid none none; border-color: -moz-use-text-color black -moz-use-text-color -moz-use-text-color; border-width: medium 1pt medium medium; padding: 0in 5.4pt; width: 67.5pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;"><b><span style="font-family: 'Courier New';">" "</span></b></p> | |||
</td> | |||
<td style="padding: 0in 5.4pt; width: 225.75pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;">Start and stop of a string</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1.5pt medium; padding: 0in 5.4pt; width: 67.5pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;"><b><span style="font-family: 'Courier New';">' '</span></b></p> | |||
</td> | |||
<td style="border-style: none none solid; border-color: -moz-use-text-color -moz-use-text-color black; border-width: medium medium 1.5pt; padding: 0in 5.4pt; width: 225.75pt;"> | |||
<p class="MsoBodyText" style="margin: 0in 0in 0.0001pt;">Start and stop of a character constant</p> | |||
</td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
<html/> | |||
<br /> | |||
=== Változók === | === Változók === |
A lap 2014. január 26., 10:04-kori változata
C1 Bevezetés
Folyamatosan gyűjtöm az anyagokat és fordítom, ahogy lehet
C2 Alap fogalmak
Bináris számok és rendszerek
Hexadecimális számok
Hex Digit |
Decimal Value |
Binary Value |
0 |
0 |
0000 |
1 |
1 |
0001 |
2 |
2 |
0010 |
3 |
3 |
0011 |
4 |
4 |
0100 |
5 |
5 |
0101 |
6 |
6 |
0110 |
7 |
7 |
0111 |
8 |
8 |
1000 |
9 |
9 |
1001 |
A or a |
10 |
1010 |
B or b |
11 |
1011 |
C or c |
12 |
1100 |
D or d |
13 |
1101 |
E or e |
14 |
1110 |
F or f |
15 |
1111 |
Beágyazott rendszerek
Processzor típusok: x86 (ált. asztali gép), ARM.
"Az I/O az a ragasztó, amivel a processzor kapcsolódik a világhoz."
Tervezési szempontok: tesztelhetőség, haszon, energia igény, méret, megfelelő válasz megfelelő időben.
Human-computer interface (HCI) or man-machine interface (MMI).
Tipikus példa: multiméter.
Bevezetés a számítógépekhez
Neumann architecture
Számítógép = proceszor + RAM + ROM + IO.
Neumann architecture,
"A port is a physical connection between the computer and its outside world. Ports allow information to enter and exit the system."
"A bus is a collection of wires used to pass information between modules."
A busz vezetékek gyűjteménye, amit a modulok közti információ cserére használunk.
Harvard architecture
ARM®Cortex™-M processor. "separate data and instruction buses"
Külön adat, és utasítás buszok.
"The nested vectored interrupt controller (NVIC) manages interrupts, which are hardware-triggered software functions. "
A beágyazott irányítható megszakítás-vezérlő - NVIC
Fogalmak
A microprocessor is a small processor.
A microcomputer is a small computer that includes a processor, memory and I/O devices.
A microcontroller is a single chip computer.
IO portok
CPU regiszterek
ISA Instruction set architecture
MEMORY MAP LAYOUT
RAM (random access memory)
ROM (read only memory)
ROM-ok:
Static RAM (SRAM)
Programmable ROM (PROM) 10000 times slower RAM
Electrically erasable programmable ROM (EEPROM)
"In regular EEPROM, you can erase and program individual bytes. "
FLASH ROM
"Flash ROM is a popular type of EEPROM. Each flash bit requires only two MOSFET transistors. The input (gate) of one transistor is electrically isolated, so if we trap charge on this input, it will remain there for years."
"Each flash bit requires only two MOSFET transistors The input (gate) of one transistor is electrically isolated, so if we trap charge on this input, it will remain there for years. The other transistor is used to read the bit by sensing whether or not the other transistor has trapped charge."
"Flash ROM must be erased in large blocks. On many of Stellaris family of microcontrollers, we can erase the entire ROM or just a 1024-byte block."
"Because flash is smaller than regular EEPROM, most microcontrollers have a large flash into which we store the software. For all the systems in this class, we will store instructions and constants in flash ROM and place variables and temporary data in static RAM."
"Flash ROM is higher density because it requires few transistors compared to RAM."
Software
CortexM_InstructionSet.pdf Instruction Set Reference Manual https://courses.edx.org/c4x/UTAustinX/UT.6.01x/asset/CortexM_InstructionSet.pdf
CortexM4_TRM_r0p1.pdf Cortex-M4 Technical Reference Manual https://courses.edx.org/c4x/UTAustinX/UT.6.01x/asset/CortexM_InstructionSet.pdf
LaunchPadUsersManual.pdf LaunchPad Manual
tm4c123gh6pm.pdf Data Sheet for the TM4C123 microcontroller
C3 Elektronikai alapismeretek
Ohm törvény
R = V / I I = V / R
R = V / I
P = V * I Power = Voltage * Current
P = V2 / R Power = Voltage2 / Resistance P = I2 * R Power = Current2 * Resistance
Energia
Elemekre:
E (energia)= V (feszültség) * I (áramerősség) * time (idő)
E-> állandó ; V -> állandó, az idő vagy az I csökkentésével csökkenthetjük a felhasznált energiát.
C4 Digitális logikai műveletek
D Logikai műveletek
A |
B |
AND |
NAND |
OR |
NOR |
EOR |
Ex NOR |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
Symbol |
A&B |
~(A&B) |
A|B |
~(A|B) |
A^B |
~(A^B) |
Boolean Algebra
A & B = B & A |
Commutative Law |
Large numbers reference
Value |
SI Decimal |
SI Decimal |
|
Value |
IEC Binary |
IEC Binary |
10001 |
k |
kilo- |
|
10241 |
Ki |
kibi- |
10002 |
M |
mega- |
|
10242 |
Mi |
mebi- |
10003 |
G |
giga- |
|
10243 |
Gi |
gibi- |
10004 |
T |
tera- |
|
10244 |
Ti |
tebi- |
10005 |
P |
peta- |
|
10245 |
Pi |
pebi- |
10006 |
E |
exa- |
|
10246 |
Ei |
exbi- |
10007 |
Z |
zetta- |
|
10247 |
Zi |
zebi- |
10008 |
Y |
yotta- |
|
10248 |
Yi |
yobi- |
C4 Beveztés a C-be
Háttér
A C nagyon népszerű nyelv (2013-ban a programok 18%), több programot írnak C-ben mint Javaban, PHP-ben, Python-ban vagy Perl-ben.
Szintén nagyon népszerű még Objective-C és a C++ is.
A C nagyon vas közeli, a beágyazott rendszerek pedig az I/O-kra (GPIO-kra) épülnek.
A C felépítése
<html>
<tbody> </tbody>
Punctuation |
Meaning |
; |
End of statement |
: |
Defines a label |
, |
Separates elements of a list |
( ) |
Start and end of a parameter list |
{ } |
Start and stop of a compound statement |
[ ] |
Start and stop of a array index |
" " |
Start and stop of a string |
' ' |
Start and stop of a character constant |