Final week at Aeste

This week I am still working on the data corruption error when testing the write operations of each modules together. It took me quite a while to find out which part of JavaScript went wrong as I have to analyze every line of JavaScript codes related. The error occurs in the convertAddress function. The value ORed with the address of register is incorrect. This results in wrong value returned when the function is called and eventually generated wrong address value. My Read more

Back-end Caching

Caching So.. this week I focused more on building the file caching mechanism that fully uses the server’s back-end. I am using a write-back approach to handle the caching process. Initially, a fresh copy of the project will be downloaded and stored in local cache. The file will be sent to another back-end and will be open for edit. Changes in the CodeMirror editor or the synthesis completion will both initiate a request (using back-end) and sends the latest file to Read more

Digging Deeper into Bug

This week I dig deeper into identifying the TCPIP Stack bug. Ideal Case Based on the document UG380 and XAPP502, ‘init_b’ of FPGA should be HIGH (reading from PIC32), if it was LOW during configuration means there is an error,  ‘init_b’ can also be pulled LOW to delay configuration, in other words ‘init_b’ is a multipurpose pin for FPGA. Even after configuration ‘init_b’ will still remain HIGH. Experiment Result Therefore at the start of my state machine (PIC32), by enabling Read more

Display Data on Schematic

This week I tried to show the data values on the simulator schematic when performing data transmission with UART, MSPI or I2C. When successfully reading or writing data, user will be allowed to see that the data in hexadecimal values are displayed beside the related ports of the module. To achieve this, I first created a text tag in the SVG JavaScript with a unique class name corresponding to the port. Next I created a new function in each JavaScript module Read more

TCPIP Stack Bug

This week I continue trying to figure out how to ‘download’ a huge file with TCP protocol. Set up a USB cdc com port to ease debugging. Fixing ‘init_b’ staying LOW. TCP Server looping READ socket To be able to ‘download’ or I should say read a file being uploaded by a CLIENT is to loop the socket READ state. Continuously looping the READ & WRITE socket, both CLIENT and TCP Server (PIC32) will automatically communicate packet by packet of Read more

More Improvements

More on cURLpp I talked about cURLpp in my last post. There’s much more to it than just uploading files to Google Drive endpoints. A few things I discovered is :- curlpp::infos This allows certain response info to be obtained directly. There are a list of info obtained, which can be referred from “curlpp/include/Infos.hpp”. A more useful one would be ResponseCode, which is great to have. After request.perform(), long responseCode; curlpp::infos::ResponseCode::get(req,responseCode); and you can use the responseCode as you please. WriteStream There Read more

Null Termination Issue

This week I have been trying to make the read and readstring function working in the simulator. There are two main problems: Read function can only return the same data byte every time it is called. For example, when a string “HELLO” is written to the data register, read function can only return the last character of the string, which is ‘O’ or 79 in ASCII. Readstring function continued to read each byte of data without stopping. This is because Read more

PIC32MZ TCPIP Server

This week I integrate my previous TLS TCP Server code onto ‘the board’ – PIC32MZ. DHCP enabled & Fixed IP adress test First I experiment with having DHCP enabled on MHC. Using ‘tcpip_discoverer’ from Harmony to fetch the assign IP address. java -jar tcpip_discoverer.jar The discoverer tool is very useful to fetch the IP address. Next is to disabled DHCP, to have a fixed IP address test. Both test passes. *Harmony > tcpip examples project was used Self sign CERTIFICATES Reusing the Read more

Object Mapping Issues

This week I am rewriting the read and write functions in C programming for UART. Dr Shawn really taught me a lot about the easy and correct way to write the codes. Next I need to make sure that the information are stored to the respective address correctly when the instructions are called. For this case, an objectMapping object will be created in JavaScript to map the address and values. However, the object mapping object was not created by the JavaScript Read more

Adopting cURLpp

So.. I was using system() to perform CURL requests in my application. There were a few downsides to this:- Error handling of response. Messy codes. My boss talked about using the cURLpp library to replace the existing system() curl mechanism. So this week I tried my hand on it in my Wt Application. Examples There are plenty of cURLpp examples available in the git repo. However, the documentation is quite lacking. For some usage that is not shown in the examples, Read more