【Silicon Labs BG22-EK4108A Bluetooth Development Review】 II. Progress and Obstacles
[Copy link]
This post was last edited by zhang1gong on 2022-1-8 10:49
1 Generate the code for the EXAMPLE PROJECT project and run it
Running "Bluetooth - SoC Blinky" successfully, the LED on the BG22-EK4108A evaluation board can be turned on or off through the app "EFR Connect" on the mobile phone, and the status of the buttons on the evaluation board can be observed. The first battle was very smooth, but after all, it was directly burning and running the generated binary code, and did not go through the whole process of compiling, burning, and running (if it is a real project done by yourself, debugging and troubleshooting are almost inevitable).
I found a few relatively simple example projects to test the whole process. First, I generated the example project "tensorflow_lite_micro_helloworld". I looked at the description of this example program: a module in the example generates a cyclically changing sine function value, and uses this function value to change the pulse width of the PWM signal to control the brightness of the LED. At the same time, the sine function value is sent to the PC through the virtual serial port of the evaluation board (via the USB interface). In the "Simplicity Studio" IDE environment, this example program was successfully compiled, burned and run, and the breathing light effect is as follows:
Open the serial port simulation terminal on the PC and you can receive the data sent by the evaluation board through the virtual serial port:
Import the received data into maltab and use the plot function to plot it. It is indeed a not-so-smooth sine wave (there are only 20 points in each cycle, which is a bit rough).
2 Generate project files for IAR development environment
Although I have a preliminary understanding of SSv5 (Simplicity Studio 5), and compiled, burned and ran a simple sample project, I still don't feel very comfortable using it because I have just started. In the process of learning SSv5, I found that after generating the Simplicity Studio project file, I can generate the project file of the IAR development environment. Since I used IAR a lot before, it is relatively easier to use. I generated the IAR project file of the sample project "blink_pwm_baremetal", and then compiled, burned and ran it in the IAR development environment. It was very smooth and no problem.
3 Encountering obstacles and strange solutions
I saw a post by damiaa that mentioned that the example project for lighting up LEDs under Bluetooth control could not be run after compilation. I remembered that I seemed to have successfully run it after compiling and burning it. Unexpectedly, when I tried again, the compilation and burning passed smoothly without any error prompts, but the results after running were completely wrong, and the mobile app "EFR Connect" did not respond at all. After pausing in SSv5, I saw that the burned code seemed to be completely wrong. After generating the IAR project file, I compiled it in the IAR development environment. It seemed that the target code (obj) was successfully generated, but it was stuck in the linking link, neither reporting an error nor moving forward. This was the case with several Bluetooth-related example projects.
During this period, I reinstalled SSv5, but the problem did not get solved. And the problem seems to have gotten worse: now I cannot directly use "RUN" to run the DEMO, and always get an error: "Part cannot be detected. Please tell Studio what the part is by using context menu of the selected device.", but it was fine before, for some reason. Looking at the previous screenshots, I found that some places seemed to be different from before the reinstallation...
Suddenly I remembered that I had backed up the system two days ago, and spent two hours restoring the system to restore SSv5 to the state it was last year. I can actually "RUN" the DEMO directly again! And the Bluetooth lighting example has returned to normal. After repeated experiments, I found that as long as I have compiled and burned small example projects such as "tensorflow_lite_micro_helloworld", it will not work to compile and run Bluetooth-related programs. I must "run" a Bluetooth-related DEMO again to "activate" it (this experiment was inspired by damiaa's post). Is there a bug somewhere?
|