Rendering Bug and Session Cookies

For the most part of this week I was exploring new ideas, exploring Wt’s capabilities, debugging some annoying bugs, and designing algorithms for some objectives. First, let me start with the interface bug. Slow connection rendering bug When the interface was changed to the current one, a weird bug occurred on slow connections where the two widgets (the code editor and the schematic editor) overlaps. However, whenever the browser size changes (hence, Wt will calculate new dimensions for the widgets) Read more

Contiki and FreeRTOS

Last week, I am still doing on contiki’s functions testing in my new porting microprocessor and platform. After 1 week plus of function testing, the basic functions are working in my porting microprocessor and platform. The process in contiki OS called protothread. All of those protothread are scheduled in cooperative manner. The current cooperative process need to be finish first before the following scheduled cooperative process can be run. Other than that, contiki os also support preemptive process. It is normally Read more

TCP/IP Echo Server

This week my job scope was about the TCPIP. I need to use the PICDEM.net 2 as a TCP echo server that listen on a TCP/IP socket and transmits back exactly everything that it receives. There are some demos in the microchip application library, what I have to do was to study them and create a simple echo server. This task was difficult since it require a lot of understanding on networking and strong mastering on C programming. The coding Read more

Code Auto-Completion

For five weeks in row we have been working on the enhancement of the code. I really don’t know why it’s taking that much time. Is that what usually happens in any project developing?! Feel like we are in infinite loop… Hopefully we will reach the “break;” statement soon. Lol !! Code Auto-Completion: Anyway, this week I was working on adding the AUTO-Completion feature to our code editor. Our code editor is based on Code-mirror JavaScript editor which is rich Read more

Bare Metal RISC-V Angel Simulator

This week, I finally get the RISC-V Angel Simulator to run the C/C++ code compiled from the default RISC-V GNU compiler, which is specifically designed to compile files into ELF file that to be used with the RISC-V Spike and Proxy Kernel. I had verified that the bootloader extracted from proxy kernel is usable. How Software Works I really need to thank my supervisor in figuring that my problem during the findings for the solution of the necessity of proxy Read more

Exploring the Intermediate Representation of GCC

This week I gained a deeper and clearer understanding about some terminologies and the flow within a compiler that I have posted last week. Frontend Basically it uses a parser to produce the syntax tree abstraction of a given source file. It will translate source codes into intermediate representation (IR) like GENERIC, GIMPLE, and RTL that are used in GCC. GENERIC GENERIC is a common representation that is able to represent programs written in all the languages supported by GCC. It Read more

A Deeper Look on RISC-V Angel

This week, I had really a hard time with RISC-V Angel. It started with finding the bootloader code from the RISC-V Proxy Kernel, as the bootloader is the primary program/codes that needs to be load up before the main program actually runs. I searched all over the proxy kernel code and eventually I realized that the bootloader code is in one of the file name “pk.S”, which loads a bundle of assembly codes that initialize the stack pointer, global pointer and Read more

WEEK 4: Spartan 6 FPGA

My task of this week is the configuration of FPGA. I had to configure the Spartan 6 XC6SLX9 FPGA in the slave serial mode, by using the USART port in the PIC18F97J60. This is something really new to me and web references are scare. Therefore, the only way is to refer the Xilinx documentation to figure the method of doing it. At the beginning, for me the documentation is difficult to understand and I spent lots of time on reading Read more

Running Tasks with Contiki

In contiki os, there are a lot of functions predefined in the core file. During programming in contiki os, programmers require to follow the contiki programming style to create their own code. These functions are PROCESS_BEGIN(), PROCESS_END(), PROCESS_YIELD() and so on. All of the functions have its own uses but some of it only slightly difference between each other. This week I am doing the on running simple task using contiki os. Function used are PROCESS_BEGIN, PROCESS_END, PROCESS_YIELD, PROCESS_WAIT_EVENT, PROCESS_WAIT_EVENT_UNTIL, PT_SEM_INIT, PT_SEM_SIGNAL, PT_SEM_WAIT. PROCESS_BEGIN() Read more

Code Restructure!

The stream of code bugs and necessary modifications continued running this week as well. I had to do some code modification, complete some features and solve some bugs here and there. This  really took longer than I thought it would! Hopefully it will finish soon. Customizable BRAM size. I had already mentioned this issue in one of my past blog entries but since I was not done with it yet at that time, I didn’t talk in much details about Read more