Home

Lab5 - Cristinel Ababei

image

Contents

1. 24 USB_IRQ USB 25 CAN_IRQ CAN 26 DMA IRQ DMA 27 I2S_IRQ I2S not used on MCB1700 28 ENET IRQ Ethernet 29 RIT IRQ Repetitive interrupt timer 30 CPWM_ IRQ otor control PWM 3L QEI IRQ Quadrature encoder 32 PLL1 IRQ USB phase locked loop 33 USBActivity IRQ USB activity 34 CANActivity IRQ CAN activity A particular peripheral can generate its interrupts for a variety of reasons which are configured within that peripheral For example timers can be configured to generate interrupts either on match or on capture The priorities of the interrupts can be set individually See sections 6 5 11 to 6 5 19 of the user manual for details A set of functions is available for enabling and disabling specific interrupts setting their priority and controlling their pending status find them inside core_cm3 h file which is the so called CMSIS Cortex M3 Core Peripheral Access Layer Header File void NVIC_EnableIRQ IRQn Type IRQn void NVIC_DisableIRQ IRQn Type IRQn void NVIC_SetPriority IRQn Type IRQn int32 t priority uint32_ t NVIC GetPriority IRQn Type IRQn void NVIC_SetPendingIRQ IRQn Type IRQn void NVIC_ClearPendingIRQ IRQn Type IRQn IRQn Type NVIC_ GetPendingIRQ IRQn Type IRQn The IRQn names are just the prefix from the table above with an n appended e g TIMEO IRQn We can also enable or disable interrupts altogether using disable irq and enable irq We can also trigger any interrupt in sof
2. www hotmcu com ulink2 debug adapter with usb interface p 9 html cPath 3_25 http www amazon com ULINK2 Emulator Original Firmware Support dp BOOMFY27QO ref sr_1_fkmr0_3 ie UTF8 amp gid 1407427505 amp sr 8 3 fkmr0 amp keywords ULINK2 Debug Adapter 4 Keil ARM Getting Started Creating Applications with Vision http www2 keil com docs default source default document library mdk5 getting started pdf sfvrsn 0
3. viewing the value of a variable 3 Use Timer 0 as well to measure the time it took to draw your smiley face Read the count register before and after your draw command Display the time it took to draw your smiley face in milliseconds on the LCD b Lab 5 questions 1 Using a debugger and breakpoints is incredibly useful for tracking down problems However breakpoints freeze a programs execution which can be problematic for some type of programs Give an example of a real world embedded c program in which using breakpoints would not be practical safe Give an alternative solution to using break points 2 What was the frames per second FPS of the smiley face that you drew How would you improve the FPS 3 Assume the LandTiger display has a resolution of 320 by 240 pixels Assume display uses 16 bit color Assume the display is connected with an 8 bit bus Assume our processor clock speed is at maximum Assume our processor can write 8 bits in 1 clock cycle Optimistically what would be the maximum FPS that our processor could achieve on the screen Would this be fast enough to display a movie that appears in real time to the human eye 8 Credits and references 1 ARM CoreSight technology http www2 keil com coresight 2 uVision IDE and Debugger http www keil com uvision debug asp 3 Keil ULINK2 Debug Adapter costs about 150 if purchased from ARM or about 20 if purchased elsewhere http www keil com ulink2 http
4. 17xx with which we are working 4 Again click on the Debug menu option and select Run The code starts simulating 5 Itis good practice that before going ahead with the actual hardware implementation to perform a debug simulation session to make sure that our program behaves according to the design requirements 2 6 In our example we use PORT2 7 Go to Peripherals menu option then select GPIO Fast Interface followed by Port 2 8 You should get the window that shows P2 1 blinking 9 Stop the simulation Debug gt Stop or hit the Stop icon from the Toolbar Breakpoints 1 Let s set two breakpoints on lines LPC_GPIO2 gt FIOPIN 1 lt lt 1 make P2 1 high LPC _GPIO2 gt FIOPIN amp 1 lt lt 1 make P2 1 low inside blinky1 c To set a breakpoint right click on each of these lines on the left margin of the panel that displays this file and then select Insert Remove Breakpoint 2 Go to Peripherals menu option then select GPIO Fast Interface followed by Port 2 3 Debug gt Run Notice that the simulation starts and runs till the first breakpoint where it stops Notice that P2 1 is 0 To continue the simulation click the icon Step F11 once What happens P2 1 is turned 1 and we stepped with the simulation to the next instruction inside our program 4 Step F11 again more times Observe what happens each time While stepping inside the delay function observe the value of local vari
5. Lab 5 Debugging and More on Interrupts COEN 4720 Embedded Systems Cristinel Ababei and Nathan Zimmerman Dept of Electrical and Computer Engineering Marquette University 1 Objective The objective of this lab is to learn about the different features of the debugger of uVision We ll also re emphasize some aspects about interrupts 2 uVision Debuger The ARM CoreSight technology 1 integrated into the ARM Cortex M processor based devices provides powerful debug and trace capabilities It enables run control to start and stop programs breakpoints memory access and Flash programming Features like PC sampling data trace exceptions including interrupts and instrumentation trace are available in most devices Devices integrate instruction trace using ETM ETB or MTB to enable analysis of the program execution Refer to 1 for a complete overview of the debug and trace capabilities MDK contains the uVision Debugger that connects to various Debug Trace adapters and allows you to program the Flash memory It supports traditional features like simple and complex breakpoints watch windows and execution control Using trace additional features like event exception viewers logic analyzer execution profiler and code coverage are supported The 1 Vision Debugger is completely integrated into the Vision IDE It provides many features including the following 2 Disassembly of the code on C C source or assembly level with program ex
6. able i inside the panel labeled Call Stack Locals on the bottom right side of the uVision IDE Notice how i is incremented To get out from within the delay function click the icon Step out Ctrl F11 5 Once you get a hang of it stop the simulation Logic Analyzer The debugger includes a logic analyzer which allows us to study the relative timing of various signals and variable changes It s activated using the button in the debugger Note that you can only use the logic analyzer when you re running in the simulator not on the board The logic analyzer is mostly self explanatory Use the Setup button to add channels You can use symbolic names such as FIO1PIN to determine what registers or variables to watch and you can specify a mask value which is ANDed with the contents of the register or variable and a right shift value which is applied after the AND operation You can view the result as a numeric value analog or as a bit value At any point you can stop the updating of the screen and or stop the simulation itself and change the resolution to zoom in or out You can also scroll forward and backward in time using the scrollbar below the logic analyzer window There are also prev and next buttons to move quickly from one transition to another 1 Open the Logic Analyzer by clicking the icon Analysis Windows gt Logic Analyzer 2 Click Setup in the new window of the logic analyzer Then cli
7. ck New Insert icon and type FIO2PIN Type in 0x00000002 as And Mask and select Bit as the Display Type 3 Go to Peripherals menu option then select GPIO Fast Interface followed by Port 2 to show the GPIO2 Fast Interface 4 Run simulation and observe how the signal changes inside the Logic Analyzer window 4 More on Interrupts The LPC1768 microprocessor can have many sources of interrupts All the internal peripherals are capable of generating interrupts The specific conditions that produce interrupts can be set individually for each peripheral The individual interrupts can be enabled or disabled using a set of registers think of memory locations in the memory space Selected GPIO pins can also be set to generate interrupts For instance the push button marked INTO on the LandTiger 2 0 board is connected to pin P2 10 of the LPC1768 microprocessor see page 6 of the schematic diagram provided as file 0_HY_LandTiger_SCH pdf in the archive of lab 2 This pin can be a source of external interrupts to the MCU The table below shows different functionalities that can be assigned to P2 10 pin based on the information in the user manual page 119 If you plan to use P2 10 as GPIO then you should also enable this source of interrupt as described in section 9 5 6 of the LPC17xx user manual Note that you can set the P2 10 pin to be sensitive to either the rising edge or the falling edge More information on clearing the interrupt pend
8. ecution in various stepping modes and various view modes like assembler text or mixed mode Multiple breakpoint options including access and complex breakpoints Review and modify memory variable and register values List the program call tree including stack variables Review the status of on chip microcontroller peripherals Debugging commands or C like scripting functions Code Coverage statistics for safety critical application testing Various analyzing tools to view statistics record values of variables and peripheral I O signals and to display them on a time axis Instruction Trace capabilities to view the history of executed instructions The Vision Debugger offers two operating modes 1 Simulator Mode configures the Vision Debugger as a software only product that accurately simulates target systems including instructions and most on chip peripherals serial port external I O timers and interrupts peripheral simulation capabilities vary depending on the device you have selected In this mode you can test your application code before any hardware is available It gives you serious benefits for rapid development of reliable embedded software 2 Target Mode connects the 1 Vision Debugger to real hardware Several target drivers are available that interface to a ULINK JTAG OCDS Adapter that connects to on chip debugging systems Monitor that may be integrated with user hardware or that is available on many eval
9. ed operation as shown in Fig 1 Figure 1 Drawing filled circles on the LCD display of the LandTiger 2 0 board Read and compare the source code from main_circlesl1 c and main_circles2 c Which version do you think is better and why Is there anything that you would change to make this example more efficient 7 Lab Assignment You must implement required programming assignment and also answer the questions Description of your programming solutions as well as answers to the questions below must be included in the lab report a LabS programming assignment 1 Write a program that uses the LCD screen to display a smiley face in the center of the screen In your program you should use the Timer 0 Interrupt to trigger the change of color for the smiley face every other second or so The smiley face s color should alternate between yellow and red The size of the face should be approximately the size of a dime The background can be any other color different from yellow and red Hint Start with modifying any of the projects from Example 3 above This example has already functions for drawing empty circles and lines I have included 6 already place holders for functions that you would need to describe write inside GLCD c and GLCD h Then you also need only to implement the logic of the main program by changing the main function The Timer 0 interrupt is already set up in the Example 3 2 Demonstrate to the TA setting a breakpoint and
10. ing bit can be found in table 123 in section 9 5 6 10 page 147 of the user manual Table E 1 Pin functions for P2 10 ee FINTO To write an interrupt handler in C we need to describe create a function with an appropriate name and it will automatically be used it will be called automatically via the pointers stored inside the vector table The name of this function consists of the prefix from the table below plus the keyword Handler appended to it e g TIMER0_IRQHandler Int Prefix Description 0 WDT_IRQ Watchdog timer 1 TIMERO IRQ Timer 0 2 TIMER1 IRQ Timer 1 3 TIMER2 IRQ Timer 2 4 TIMER3 IRQ Timer 3 5 UARTO_ IRQ UART 0 6 UART1 IRQ UART 1 7 UART2_IRQ UART 2 8 UART3_ IRQ UART 3 9 PWM1_ IRQ PWM 1 not used on MCB1700 10 I2C0_ IRQ I2C 0 not used on MCB1700 11 I2C1 IRQ I2C 1 not used on MCB1700 12 I2C2_ IRQ I2C 2 not used on MCB1700 13 SPI_IRQ SPI used for communicating with LCD display 14 SSPO_IRQ SSP 0 not used on MCB1700 15 SSP1_ IRQ SSP 1 not used on MCB1700 16 PLLO IRQ PLL 0 interrupts not used by our labs L7 RTC_IRQ Real time clock 18 EINTO IRQ External interrupt 0 19 EINT1 IRQ External interrupt 1 not used on MCB1700 20 EINT2 IRQ External interrupt 2 not used on MCB1700 21 EINT3 IRQ External interrupt 3 not used on MCB1700 amp GPIO interrupt 22 ADC_IRQ ADC end of conversion 23 BOD _ IRQ Brown out detected not used 4
11. ision IDE Getting Started Guide 4 this guide was included as file 7_mdk5_getting_started_YOU_SHOULD_READ_IT pdf in the files archive of lab 2 This is optional for this lab 3 Examplel Blinky Revisited The files necessary for this example are located in example1 folder as part of the downloadable archive for this lab As mentioned earlier the Vision Debugger can be configured as a Simulator or as a Target Debugger In this example we ll use the Simulator Go to the Debug tab of the Options for Target dialog to switch between the two debug modes and to configure each mode Configure to Use Simulator Before running the simulation replace the following two lines inside blinky1 c delay 1 lt lt 24 with delay lt lt 14 This is to make the blinking of P1 29 faster inside the simulator otherwise we d need to wait too long to actually see the corresponding bit turning 1 or 0 Simulation Debug Use all the provided files under example1 to create a new uVision project and Build it 1 Click Debug menu option and select Start Stop Debug Session A warning about the fact that this is an evaluation version shows up click OK 2 Then a new window appears where we can see the simulation of the program 3 This window has several different supportive panels sub windows where we can monitor changes during the simulation The left hand side panel Registers provides information regarding the Registers of LPC
12. tware inside our C programs by writing the interrupt number to the NVIC gt STIR register values up to 111 are permitted We must clear interrupt conditions in the interrupt handler This is done in different ways depending on what caused the interrupt For example if we have INTO configured to generate an interrupt you would clear it by setting the low order bit of the LPC_SC gt EXTINT register For detailed descriptions of all interrupts you should read Chapter 6 of the NXP LPC17xxx User Manual 5 Example2 Blink LED using Timer 0 Interrupt The files necessary for this example are located in example2 folder as part of the downloadable archive for this lab Use all the provided files to create a new uVision project and then Build and Flash gt Download it Observe operation and comment Please read the source code to understand how it works it contains lots of comments 6 Example 3 Drawing circles on the 240x320 pixels LCD display of the LandTiger 2 0 board You are given two versions of this example Version 1 files are located in lab5_circles1 and Version 2 files are located in lab5_circles2 Both versions do the same thing plot randomly sized circles at random locations and of random colors on the 240x320 LCD display of the board Create two different uVision projects for each version of this example Build and download each of the projects Observe their operation You should observe a simplified in that circles are not fill
13. uation boards 1 Emulator that connects to the microcontroller pins of the target hardware In System Debugger that is part of the user application program and provides basic test functions ULINKPro Adapter a high speed debug and trace unit connecting to on chip debugging systems via JTAG SWD SW V and offering Cortex M3ETM Instruction Trace capabilities Debug Menu The Debug Menu of uVision IDE includes commands that start and stop a debug session reset the CPU run and halt the program and single step in high level and assembly code In addition commands are available to manage breakpoints view RTOS Kernel information and invoke execution profiling You can modify the memory map and manage debugger functions and settings Note In this lab we ll only study the Simulator Mode of the debugger Among the different ways of debugging the actual hardware target one could use JTAG interface based debugging options One such example include the use of the Keil ULINK2 Debug Adapter 3 which connects the PC s USB port to the target system via JTAG SWD or OCDS and allows us to program and debug embedded programs on target hardware with a JTAG speed up to 10MHz The LandTiger 2 0 has a JTAG connector and if you get your own ULINK2 Debug Adapter you can also borrow one from your instructor you are encouraged to study more debugging features on your own If you do that first please read the Chapter titled Debug Applications from the uV

Download Pdf Manuals

image

Related Search

Related Contents

  Samsung Samsung GT-E1190 Lietotāja rokasgrāmata  汉语语法便览  User manual - Astropedia  Whirlpool W10182518A User's Manual  Smeg SE901GX  Netpro N00-U30JM User Manual ()  PanOptic Ophthalmoscope 118 Series Directions for  

Copyright © All rights reserved.
Failed to retrieve file