RP2040 Assembly Language Programming: ARM Cortex-M0+ on the Raspberry Pi Pico
內容描述
Chapter 1: How to Set Up the Development EnvironmentAbout the Raspberry Pi PicoAbout the Host ComputerHow to Solder and WireHow to Install SoftwareA Simple Program to Ensure Things are WorkingChapter 2: Our First Assembly Language ProgramAbout the ARM ProcessorComputers and NumbersCPU RegistersARM Instruction FormatRP2040 MemoryAbout the GCC AssemblerFlashing LEDs in Assembly LanguageChapter 3: How to Build and Debug ProgramsCMakeGNU MakePrint StatementsGDBChapter 4: Loading and AddingNegative NumbersLittle Endian FormatHow to Shift and RotateMOV/MVNADD/ADCSUB/SBCChapter 5: How to Controll Program FlowUnconditional BranchAbout the CPSRBranch on ConditionAbout the CMP InstructionLoopsIf/Then/ElseLogical OperatorsDesign PatternsChapter 6: Thanks for the MemoriesHow to Define Memory ContentsHow to Load a RegisterPC Relative AddressingHow to Load from MemoryHow to Index Through MemoryHow to Store a RegisterHardware as MemoryIntroduction to DMAChapter 7: How to Call Functions and Use the StackThe StackBranch with LinkHow to Nest Function CallsFunction Parameters and Return ValuesHow to Manage the RegistersSummary of the Function Call AlgorithmStack FramesChapter 8: Interacting with C and the SDKHow to Call C RoutinesHow to Call Assembly Routines from CHow to Deal with Inline C RoutinesHow to Use SDK Header FilesChapter 9: How to Program the Built-in HardwareThe GPIO PinsAnalog to DigitalPWMChapter 10: How to Set and Catch InterruptsOverviewHow to Create an Interrupt HandlerTimers ExampleChapter 11: How to Initialize and Interact with Programmable I/OOverviewSDK SupportPIO InstructionsHow to Control TimingExamplesChapter 12: How to Connect Pico to IoTConnectivity OptionsUsing a UART or I2CInternet BasicsSecurityChapter 13: Multiplication, Division and Floating PointMultiplication CoprocessorDivision CoprocessorInterpolationFloating Point LibraryChapter 14: MultiprocessingUsing Both CPU CoresHow to Synchronize and Share ResourcesAudience: Intermediate