I have a project called UART Palindrome Checker. The Task In this project, you will be writing a program that receives a string of characters via the UART, checks if this string is a palindrome, and then uses a print function to print either “Yes” or “No”. A palindrome sequence of characters (typically a word or phrase) that is the same both forwards and backwards. For this project, strings will be terminated using a period (‘.’). You may assume that a string will contain at least one character in addition to a period. You will not need to handle empty strings or strings with only a period. Your program should be able to handle multiple strings sent one after another or concatenated together. For example, the string: “abba. data.” should print “Yes” followed by “No” on the next line. Spaces should be ignored when checking for a palindrome and the palindrome should not be case sensitive. For example, “A nut for a jar of Tuna.” would be considered a palindrome.
A skeleton PLP project file was provided. The PLP project includes a second ASM file titled, project3_print.asm. This ASM file contains the print function used in this project. PLPTool concatenates all ASM files within a PLP project into a single location in memory (unless additional .org statements have been added to specify different location for code). No changes to project3_print.asm should be made. When called, depending on the value in register $a0, the following string will be displayed on the simulated UART device’s output. If $a0 contains a zero then “No” will be displayed and if $a0 contains a non-zero value (e.g. one) then “Yes” will be displayed. The print function is name is:
call project3_print
To use the print function, the PLP program needs to initialize the stack pointer ($sp) before performing the function call (or any other operations involving the stack pointer). For this reason, the skeleton project file includes an initialization that sets the stack pointer to 0x10fffffc (the last address of RAM). Space allocation should also be used by taking the number of words to be allocated by using .space directive. For this project is .space 100.
I have to show that the UART receive process is implemented properly. That the strings are successfully stored in a data structure in a data structure such as a stack, array, or queue. Characters from a string are retrieved and compared with the string in the opposite order (palindrome verification). Show the use of PUSH and POP. Space characters are ignored and case sensitivity is handled either during storage or verification. And the provided print function is successfully used to print a value of “Yes” if palindrome or “No” if not.


0 comments