Author: acassis

Flashing NuttX on Engie CE0035 board

$ JLinkExe -device ATSAML21G18 -if SWD
SEGGER J-Link Commander V6.40 (Compiled Oct 26 2018 15:08:38)
DLL version V6.40, compiled Oct 26 2018 15:08:28

Connecting to J-Link via USB…O.K.
Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46
Hardware version: V8.00
S/N: 268006167
License(s): FlashBP, GDB
OEM: SEGGER-EDU
VTref=3.313V

Type “connect” to establish a target connection, ‘?’ for help
J-Link>connect
Specify target interface speed [kHz]. : 4000 kHz
Speed>
Device “ATSAML21G18” selected.

Connecting to target via SWD
InitTarget()
Found SW-DP with ID 0x0BC11477
Scanning AP map to find all available APs
AP[1]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x04770031)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0x41003000
CPUID register: 0x410CC601. Implementer code: 0x41 (ARM)
Found Cortex-M0 r0p1, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
CoreSight components:
ROMTbl[0] @ 41003000
ROMTbl[0][0]: E00FF000, CID: B105100D, PID: 000BB4C0 ROM Table
ROMTbl[1] @ E00FF000
ROMTbl[1][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
ROMTbl[1][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
ROMTbl[1][2]: E0002000, CID: B105E00D, PID: 000BB00B FPB
ROMTbl[0][1]: 41006000, CID: B105900D, PID: 001BB932 MTB-M0+
Cortex-M0 identified.
J-Link>loadbin nuttx.bin 0
Halting CPU for downloading file.
Downloading file [nuttx.bin]…
Comparing flash [100%] Done.
Erasing flash [100%] Done.
Programming flash [100%] Done.
Verifying flash [100%] Done.
J-Link: Flash download: Bank 0 @ 0x00000000: 8 ranges affected (40960 bytes)
J-Link: Flash download: Total time needed: 0.516s (Prepare: 0.024s, Compare: 0.040s, Erase: 0.136s, Program: 0.303s, Verify: 0.008s, Restore: 0.003s)
O.K.
J-Link>exit

Compiling NuttX to BeagleBoneBlack

These are the steps I took to get NuttX running on BeagleBoneBlack (BBB) :

$ git clone https://bitbucket.org/nuttx/nuttx
$ git clone https://bitbucket.org/nuttx/apps
$ cd nuttx
$ ./tools/configure.sh beaglebone-black/nsh
$ make menuconfig
Enter inside:
Build Setup —>
Build Host Platform (Linux)
Optimization Level (Normal, Full optimization)

$ make

After compilation it will create the file nuttx.bin! Copy this file to the root directory of a microSD Card formated as FAT32.

Put this microSD Card in the BBB!

Power on the BeagleBoneBlack and on serial console press some key to stop the U-Boot autoboot:

U-Boot SPL 2014.04-00015-gb4422bd (Apr 22 2014 – 13:24:29)
reading args
spl_load_image_fat_os: error reading image args, err – -1
reading u-boot.img
reading u-boot.img

U-Boot 2014.04-00015-gb4422bd (Apr 22 2014 – 13:24:29)

I2C: ready
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning – readenv() failed, using default environment

Net: not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: 0
U-Boot#

Then execute:

U-Boot# load mmc 0 0x8a000000 nuttx.bin
reading nuttx.bin
188932 bytes read in 17 ms (10.6 MiB/s)

U-Boot# go 0x8a000000
## Starting application at 0x8A000000 …

NuttShell (NSH)
nsh>

Very easy! Kudos to Petro for creating this nice port!

Installing Jenkins on Ubuntu 18.04

I installed Jenkins on my Linux machine following this tutorial:

https://linuxize.com/post/how-to-install-jenkins-on-ubuntu-18-04/

But the command:

$ sudo apt install jenkins

Failed! It happened because my Ubuntu had a newer version of the openjdk, let to remove it:

$ dpkg -l openjdk*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===============================-====================-====================-====================================================================
un openjdk-11-demo (no description available)
ii openjdk-11-jdk:amd64 10.0.2+13-1ubuntu0.1 amd64 OpenJDK Development Kit (JDK)
ii openjdk-11-jdk-headless:amd64 10.0.2+13-1ubuntu0.1 amd64 OpenJDK Development Kit (JDK) (headless)
ii openjdk-11-jre:amd64 10.0.2+13-1ubuntu0.1 amd64 OpenJDK Java runtime, using Hotspot JIT
ii openjdk-11-jre-headless:amd64 10.0.2+13-1ubuntu0.1 amd64 OpenJDK Java runtime, using Hotspot JIT (headless)
un openjdk-11-source (no description available)
un openjdk-6-jre-headless (no description available)
un openjdk-8-demo (no description available)
ii openjdk-8-jdk:amd64 8u191-b12-0ubuntu0.1 amd64 OpenJDK Development Kit (JDK)
ii openjdk-8-jdk-headless:amd64 8u191-b12-0ubuntu0.1 amd64 OpenJDK Development Kit (JDK) (headless)
ii openjdk-8-jre:amd64 8u191-b12-0ubuntu0.1 amd64 OpenJDK Java runtime, using Hotspot JIT
ii openjdk-8-jre-headless:amd64 8u191-b12-0ubuntu0.1 amd64 OpenJDK Java runtime, using Hotspot JIT (headless)
un openjdk-8-source (no description available)
$ sudo apt purge openjdk-11-jre:amd64 openjdk-11-jre-headless:amd64 openjdk-11-jdk-headless:amd64 openjdk-11-jdk:amd64

After doing it the instalation worked fine.

Recovering Android phone pictures after Factory Reset

It is always a good idea to make backup of your pictures to your computer or using some cloud sync solution as Dropbox to make your pictures safe.

But not everybody does that. If you don’t, consider start doing it.

I friend of mine was bored because her smartphone was slow (Samsung Gran Prime DUOS) and she cannot take pictures or record video without waiting a long time.

Then I decided to do Factory Reset for her, but I didn’t backup her pictures, then when we restarted the Android only the old picture from external memory card (2GB disk) was there, all other pictures were lost!

I decided to recovery all file for disk and searching in the internet I found this nice tutorial: http://dflund.se/~jokke/androidfilerecovery/

Unfortunately after download the raw content of /dev/block/mmcblk0 and running the “testdisk” program I noticed that the partition was not shown.

http://www.noah.org/wiki/Forensics,_Undelete,_and_Data_Recovery

http://forum.xda-developers.com/showthread.php?t=2450045

NuttX on Atmel/Microchip SAML21 Xplained Pro

$ ./tools/configure.sh saml21-xplained/nsh

$ make menuconfig

(change build system to Linux)

$ make

$ JLinkExe -device ATSAML21G18 -if SWD

J-Link>connect
Connecting to J-Link via USB…O.K.
Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46
Hardware version: V8.00
S/N: 268006167
License(s): FlashBP, GDB
OEM: SEGGER-EDU
VTref=2.005V
Specify target interface speed [kHz]. : 4000 kHz
Speed>
Device “ATSAML21G18” selected.

Connecting to target via SWD
InitTarget()
Found SW-DP with ID 0x0BC11477
Scanning AP map to find all available APs
AP[1]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x04770031)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0x41003000
CPUID register: 0x410CC601. Implementer code: 0x41 (ARM)
Found Cortex-M0 r0p1, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
CoreSight components:
ROMTbl[0] @ 41003000
ROMTbl[0][0]: E00FF000, CID: B105100D, PID: 000BB4C0 ROM Table
ROMTbl[1] @ E00FF000
ROMTbl[1][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
ROMTbl[1][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
ROMTbl[1][2]: E0002000, CID: B105E00D, PID: 000BB00B FPB
ROMTbl[0][1]: 41006000, CID: B105900D, PID: 001BB932 MTB-M0+
Cortex-M0 identified.
J-Link>

J-Link>loadbin nuttx.hex 0
Halting CPU for downloading file.
Downloading file [nuttx.hex]…
Comparing flash [100%] Done.
Verifying flash [100%] Done.
J-Link: Flash download: Bank 0 @ 0x00000000: Skipped. Contents already match
O.K.
J-Link>

Connect your 3.3V USB/Serial GND pin to EXT1 GND, RXD to PB08 and TXD to PB09.