After NXP bought Freescale, you had development tools for Freescale Kinetis MCUs such as Design Studio or Kenetis SDK, and others such as LPCXpresso for NXP LPC microcontrollers. The company has worked to unifying software and tools support between its ARM Cortex-M MCU families, and has now announced MCUXPresso software and tools for both NXP Kinetis and LPC MCUs. MCUXpresso unifies thousands of Kinetis and LPC microcontrollers under a set of compatible tools including MCUXpresso SDK – Open-source software MISRA-compliant development kit (SDK) with peripherals drivers, wireless & wired connectivity stacks, middleware, real-time OS, getting started guides, API documentation, and application examples. MCUXpresso IDE – Integrated development environment (IDE) for editing, compiling and debugging. It also integrates MCU-specific debugging views, code trace and profiling, multicore debugging, etc… Both free and professional edition of the IDE will be available, and LPCXpressor and previously Freescale Freedom & Tower platforms will be supported. […]
Intel Launches $15 Quark D2000 Arduino Compatible Board
Intel introduces three new Quark Micro-controllers last year, and I already experimented with Intel System Studio tools, quite similar to the Arduino IDE, and designed for hardware such as Intel Quark D1000 Customer Reference Board. So far the company had not released any boards available to the general public, but this has now changed since they’ve launched the “Intel Quark Microcontroller Developer Kit D2000”. Intel Quark D2000 development board specifications: MCU – Intel Quark D2000 32-bit processor Intel Pentium x86-compatible without x87 FPU @ 32 MHz with 8 KB SRAM, 32 KB instruction flash, 8 KB OTP flash and 4 KB OTP data flash USB – 1x micro USB (JTAG) for power and programming/debugging Sensors – 6-axis Accelerometer / magnetometer with temperature sensor (Bosch Sensortec BCM150) Expansion options: Arduino Uno compatible SIL sockets (3.3V IO only) Booster pack compatible SIL headers (3.3V IO only) Misc – Reset and user buttons, jumpers, […]
Decode or Generate QR Codes in Ubuntu with QtQR and zbar-tools
Sometimes I’ve found myself having to decode a QR code on my computer, and usually I’d just get my Android smartphone, use a QR code app to decode it, and send the results to my computer by email. It works, but wouldn’t it be better to simply do this straight from my computer instead? After a few minutes searching, I eventually found out QtQR graphical utility that can both generate and decode QR codes. In Ubuntu and Debian, you can install it as follows:
1 |
sudo apt-get install qtqr |
You can create a QR code with a given pixel size and level of error correction for text, URL, bookmark, email, phone number, SMS/MMS, WiFi network, and so on, and then use the Save QRCode button to save the resulting picture. If instead you simply want to decode a QR code from an image or your webcam use the Decode button, and the tool will […]
RPi-Monitor is a Web-based Remote Monitoring Tool for ARM Development Boards such as Raspberry Pi and Orange Pi
It can be pretty useful to monitor the CPU load, memory and storage usage, and network traffic of your boards, and they are already graphical tools like System Monitor on Ubuntu providing most of the information, and monit can be used on server, but I’ve recently been introduced to RPi-Monitor utility for Raspberry Pi and Orange Pi boards (patched version), that very easy to install, and provide neat chart of many different variables. Since I’m currently playing with Orange Pi One board running armbian, so that’s the platform I’ve used to run RPi-Monitor (OPi-Monitor). The usage should be exactly the same on Raspberry Pi, but the installation steps are little different. To install RPi-Monitor on Orange Pi One, open a terminal or access the serial console, and you can install and start the service with a single command line:
1 2 3 4 5 6 7 8 |
sudo armbianmonitor -r Installing RPi-Monitor. This can take up to 5 minutes. Be patient please .... Now patching RPi-Monitor to deal correctly with H3 Now you're able to enjoy RPi-Monitor at http://192.168.0.112:8888 |
It actually took around 8 minutes on my board, as […]
Using a Cheap USB Microscope To Read IC Part Numbers
It’s not always easy to read the part number on IC you find on boards, and some time ago, I watched a video where Lady Ada used a USB microscope to demonstrate how to solder some components, and probably using that 5.0 MP model sold on Adafruit for about $80. But I found a similar looking USB microscope with a 2.0MP sensor and 1000X magnification on Ebay for $16.59 shipped, so I bought it, received it today, and I’ve given it a try. Such microscopes can be used to inspect skin and hair, PCB, textile, bank notes, jewelery, and so on. There are apparently other models based on the one I purchased with useful features like auto-focus, wireless support, different levels of magnification, and different colors. Supported operating systems include Windows and Linux, Android, and Windows 8 according to the package. The microscope comes with a stand, a CDROM with […]
GNU Complexity Command Line Tool Measures Complexity of C Code
GNU complexity is a command line tool that computes a complexity measure of C source code, similar to pmccabe, but with a different method of calculating results with short functions scoring lower than pmccabe and highly nested functionality can score considerably higher. It can be useful to locate suspicious areas in unfamiliar code, get an idea of the efforts required to either understand the code or test it, or self-assess your own code. Bruce Korb, the maintainer, has just released version 1.5 with some bug fixes, so I’ve given it a quick try. We’ll need to get the code, build and install it first:
1 2 3 4 5 6 |
wget ftp://ftp.gnu.org/gnu/complexity/complexity-1.5.tar.gz tar xvf complexity-1.5.tar.gz cd complexity-1.5 ./configure make -j8 sudo make install |
The user’s manual provides some insights and an example, which I’ve used against a directory in Linux source code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
cd ~/edev/linux/arch/arm64/kernel complexity --histogram --score --thresh=3 `ls *.c` procedure fpsimd_pm_init in fpsimd.c ended before final close bracket procedure fpsimd_hotplug_init in fpsimd.c ended before final close bracket Complexity Scores Score | ln-ct | nc-lns| file-name(line): proc-name 3 28 17 perf_callchain.c(111): perf_callchain_user 3 20 18 insn.c(337): aarch64_insn_decode_immediate 3 21 19 io.c(27): __memcpy_fromio 3 21 19 io.c(56): __memcpy_toio 3 30 19 cpufeature.c(860): verify_local_cpu_capabilities 3 21 20 module.c(74): reloc_data 3 24 20 setup.c(199): request_standard_resources 3 27 20 alternative.c(89): __apply_alternatives 3 29 20 cpu_ops.c(53): cpu_read_enable_method 3 29 24 insn.c(362): aarch64_insn_encode_immediate 3 31 24 ptrace.c(76): ptrace_hbptriggered 3 54 24 kgdb.c(159): kgdb_arch_handle_exception 3 28 25 armv8_deprecated.c(145): update_insn_emulation_mode 3 32 25 debug-monitors.c(334): aarch32_break_handler 3 35 26 smp.c(413): acpi_map_gic_cpu_interface 3 42 26 process.c(249): copy_thread 3 58 27 perf_event.c(572): armv8pmu_handle_irq 3 32 28 hw_breakpoint.c(544): toggle_bp_registers 3 34 28 insn.c(1019): aarch64_insn_gen_data3 3 34 29 insn.c(519): aarch64_insn_gen_comp_branch_imm 3 56 29 setup.c(121): smp_build_mpidr_hash 3 35 30 insn.c(397): aarch64_insn_encode_register 3 42 31 signal.c(167): setup_sigframe 3 37 33 hw_breakpoint.c(349): arch_bp_generic_fields 3 49 34 setup.c(232): relocate_initrd 3 41 35 insn.c(708): aarch64_insn_gen_add_sub_imm 3 63 38 setup.c(292): setup_arch 3 109 57 cpufeature.c(469): update_cpu_features 4 46 26 smp.c(477): of_parse_and_init_cpus 4 38 31 traps.c(335): call_undef_hook 4 36 32 insn.c(924): aarch64_insn_gen_data1 4 49 33 armv8_deprecated.c(464): cp15barrier_handler 4 71 34 stacktrace.c(41): unwind_frame 4 42 35 ptrace.c(437): hw_break_set 4 42 37 insn.c(968): aarch64_insn_gen_data2 4 49 37 smp.c(708): handle_IPI 4 58 37 hw_breakpoint.c(231): hw_breakpoint_control 4 47 40 insn.c(757): aarch64_insn_gen_bitfield 4 54 44 ptrace.c(376): hw_break_get 4 60 44 armv8_deprecated.c(378): swp_handler 5 28 27 hw_breakpoint.c(198): hw_breakpoint_slot_setup 5 45 35 ptrace.c(672): compat_gpr_get 5 50 36 hw_breakpoint.c(764): reinstall_suspended_bps 5 59 37 hw_breakpoint.c(476): arch_validate_hwbkpt_settings 5 48 42 insn.c(811): aarch64_insn_gen_movewide 5 49 42 insn.c(868): aarch64_insn_gen_add_sub_shifted_reg 5 60 44 psci.c(36): cpu_psci_cpu_init_idle 5 49 46 insn.c(277): aarch64_get_imm_shift_mask 5 95 89 asm-offsets.c(34): main 6 34 32 cpufeature.c(792): __raw_read_system_reg 6 67 37 signal.c(332): do_signal 6 43 39 topology.c(50): parse_core 6 54 41 ptrace.c(724): compat_gpr_set 6 74 44 traps.c(147): dump_backtrace 6 55 49 insn.c(646): aarch64_insn_gen_load_store_pair 6 76 49 hw_breakpoint.c(393): arch_build_bp_info 6 71 52 hw_breakpoint.c(584): breakpoint_handler 6 61 54 insn.c(1062): aarch64_insn_gen_logical_shifted_reg 6 73 59 ptrace.c(1120): compat_arch_ptrace 8 50 30 cpuinfo.c(102): c_show 8 64 50 topology.c(97): parse_cluster 8 97 65 hw_breakpoint.c(660): watchpoint_handler 9 44 32 traps.c(59): dump_mem 11 71 55 signal32.c(129): copy_siginfo_to_user32 31 198 172 module.c(184): apply_relocate_add Complexity Histogram Score-Range Lin-Ct 0-9 2206 ************************************************************ 10-19 55 * 20-29 0 30-39 172 ***** Scored procedure ct: 65 Non-comment line ct: 2433 Average line score: 7 25%-ile score: 3 (75% in higher score procs) 50%-ile score: 5 (half in higher score procs) 75%-ile score: 6 (25% in higher score procs) Highest score: 31 (apply_relocate_add() in module.c) |
The resulting table shows six information per line: the computed score, the number of lines between the opening and closing curly braces (ln-ct), the number […]
Hexiwear is an Open Source Wearable Development Kit Expandable with Add-on Boards (Crowdfunding)
MikroElektronika has designed Hexiwear, a wearable development kit that you can wear and hack as a smartwatch thanks to an (optionally) included wristband, or use a an IoT development kit thanks to its docking station taking up to three “Click” boards among a choice of over 180 modules. . Hexiwear hardware specifications: MCU – NXP Kinetis K64x ARM Cortex-M4 MCU @ 120 MHz with 1MB Flash and 256KB SRAM Storage – 8 MB Flash memory Display – 1.1” full color OLED display with capacitive touch Connectivity – Bluetooth 4.0 LE and 802.15.4 via NXP Kinetis KW4x Cortex-M0+ wireless MCU Sensors -3D accelerometer and magnetometer (NXP FXOS8700CQ), 3-Axis gyroscope (NXP FXAS21002), pressure sensor (NXP MPL3115A2R1), light-to-digital converter, humidity and temperature sensor, heart-rate sensor (HRM) USB – micro USB cable for power and charging Misc – RGB LED, haptic feedback engine, docking connector Battery – 190 mAh 2C Li-Po battery; 600 mA […]
Microchip Introduces MPLAB Xpress Cloud-based IDE and MPLAB Xpress Evaluation Board
Microchip has just launched MPLAB Xpress online IDE with some of the most used features of the company’s MPLAB X IDE, as well as a free – in limited quantities – MPLAB Xpress evaluation board based on a PIC16 micro-controller. Let’s get through the development board specifications first: MCU – Microchip PIC16F18855 MCU with 14KB flash, 1KB SRAM, 256 bytes EEPROM USB – micro USB port for power and programming Expansion Headers Unpopulated mikroBUS header supporting one of 180 Click boards Unpopulated 2x 14-pin header with GPIOs, I2C, SPI, UART, ADC, etc… Misc – Reset button, user button, potentiometer Dimensions – N/A Playing with hardware is always more fun, but if you just want to evaluation the online IDE, you don’t even need the board. Visit MPLAB Xpress Code Examples page, load one of the example, possibly log-in if you want to save changes to the 10GB free online storage […]