September 22, 2017

Stellaris LM4F120 LaunchPad Compiling in Ubuntu 12.04

For compiling the Stellaris EK-LMF120XL LaunchPad Evaluation Kit with Linux, ie Ubuntu 12.04 LTS

mkdir /TI, mkdir /TI/tools, mkdir /TI/ARM

  1. Download the gcc arm from the below path
    https://launchpad.net/gcc-arm-embedded/4.7/4.7-2013-q1-update/+download/gcc-arm-none-eabi-4_7-2013q1-20130313-linux.tar.bz2
  2. Unzip to the folder cd /TI/tools , tar xjvf gcc-arm-none-eabi-4_7-2013q1-20130313-linux.tar.bz2
  3. export the path for compilation(every time you have to do this when u open the terminal for compilation)
    export PATH=$PATH:/TI/tools/gcc-arm-none-eabi-4_7-2013q1/binor
    export PATH=$PATH:/TI/tools/gcc-arm-none-eabi-4_7-2013q1/bin
    add it to the ~/.bashrc, then type
    prompt > . ~/.bashrc
  4. sudo apt-get install libusb-1.0
  5. Installing the lm4flash tool
    1. cd /TI
    2. git clone https://github.com/utzig/lm4tools.git
    3. cd /TI/lm4tools/lm4flash
    4. make
    5. sudo cp lm4flash /usr/bin/
  6. Installing OpenOCD with ICDI support
    1. download openocd-0.7.0.tar.bz2
    2. cd /TI/ARM
    3. tar xjvf openocd-0.7.0.tar.bz2
    4. cd openocd-0.7.0
    5. ./configure –prefix=/usr –enable-maintainer-mode –enable-stlink –enable-ti-icdi
    6. make
    7. sudo make install
  7. Download StellarisWare for the Stellaris
    1. cd /TI
    2. git clone https://github.com/yuvadm/stellaris.git
    3. cd stellaris/driverlib/
    4. make clean
    5. make
  8. Adding new udev rule to let normal users access the LaunchPad and program it with OpenOCD for the USB
    1. sudo vim /etc/udev/rules.d/10-local.rules , and paste the below content into the file
    2. ATTR{idVendor}==”15ba”, ATTR{idProduct}==”0004″, GROUP=”plugdev”, MODE=”0660″ #Olimex Ltd. OpenOCD JTAG TINY
      ATTR{idVendor}==”067b”, ATTR{idProduct}==”2303″, GROUP=”plugdev”, MODE=”0660″ #Prolific Technology, Inc. PL2303 Serial Port
      ATTR{idVendor}==”10c4″, ATTR{idProduct}==”ea60″, GROUP=”plugdev”, MODE=”0660″ #USB Serial
      ATTR{idVendor}==”1cbe”, ATTR{idProduct}==”00fd”, GROUP=”plugdev”, MODE=”0660″ #TI Stellaris Launchpad
    3. sudo udevadm control –reload-rules, now insert the stellaris board to the USB port, the belwo messaeg you shoud see when you type dmesg, in the below message ttyACM0 is the interface name we should use in the serial console liek minicom fcor the UART interface to the stellaris board
      [51816.313315] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device
    4. If it still does not work you can try this:
      sudo groupadd plugdev
      sudo usermod -aG plugdev <username> #replace user
      sudo usermod -aG dialout <username>
      sudo reboot
  9. Compiling and loading a program to the board
    1. cd /TI/stellaris/boards/ek-lm4f120xl/project0
    2. Modify the Makefile for adding the rule for flashing, with the below change in the make file , you should be able to flash to the stellaris board. You have add this to any project you want to compile and flash to the board
      flash:
      lm4flash gcc/project0.bin
    3. now type make flash, you should see the below output which confirms the board is detected and flashed
      lm4flash gcc/project0.bin
      Found ICDI device with serial: 0E10512B
      ICDI version: 9270

Wi-Fi filter for wireshark

Hiding Beacon Frames

wlan.fc.type_subtype != 0x08

 

Type value Type description Subtype value Subtype description

Wireshark display filter

00 Management 0000 Association Request wlan.fc.type_subtype == 0x00
00 Management 0001 Association Response wlan.fc.type_subtype == 0x01
00 Management 0010 Reassociation Request wlan.fc.type_subtype == 0x02
00 Management 0011 Reassociation Response wlan.fc.type_subtype == 0x03
00 Management 0100 Probe Request wlan.fc.type_subtype == 0x04
00 Management 0101 Probe Response wlan.fc.type_subtype == 0x05
00 Management 0110-0111 Reserved
00 Management 1000 Beacon wlan.fc.type_subtype == 0x08
00 Management 1001 ATIM wlan.fc.type_subtype == 0x09
00 Management 1010 Disassociation wlan.fc.type_subtype == 0x0A
00 Management 1011 Authentication wlan.fc.type_subtype == 0x0B
00 Management 1100 Deauthentication wlan.fc.type_subtype == 0x0C
00 Management 1101 Action wlan.fc.type_subtype == 0x0D
00 Management 1110-1111 Reserved

 

Type value Type description Subtype value Subtype description

Wireshark display filter

01 Control 0000-0111 Reserved
01 Control 1000 Block Ack Request wlan.fc.type_subtype == 0x18
01 Control 1001 Block Ack wlan.fc.type_subtype == 0x19
01 Control 1010 PS-Poll wlan.fc.type_subtype == 0x1A
01 Control 1011 RTS wlan.fc.type_subtype == 0x1B
01 Control 1100 CTS wlan.fc.type_subtype == 0x1C
01 Control 1101 ACK wlan.fc.type_subtype == 0x1D
01 Control 1110 CF-end wlan.fc.type_subtype == 0x1E
01 Control 1111 CF-end + CF-ack wlan.fc.type_subtype == 0x1F

 

 

Type value Type description Subtype value Subtype description

Wireshark display filter

10 Data 0000 Data wlan.fc.type_subtype == 0x20
10 Data 0001 Data + CF-ack wlan.fc.type_subtype == 0x21
10 Data 0010 Data + CF-poll wlan.fc.type_subtype == 0x22
10 Data 0011 Data +CF-ack +CF-poll wlan.fc.type_subtype == 0x23
10 Data 0100 Null wlan.fc.type_subtype == 0x24
10 Data 0101 CF-ack wlan.fc.type_subtype == 0x25
10 Data 0110 CF-poll wlan.fc.type_subtype == 0x26
10 Data 0111 CF-ack +CF-poll wlan.fc.type_subtype == 0x27
10 Data 1000 QoS data wlan.fc.type_subtype == 0x28
10 Data 1001 QoS data + CF-ack wlan.fc.type_subtype == 0x29
10 Data 1010 QoS data + CF-poll wlan.fc.type_subtype == 0x2A
10 Data 1011 QoS data + CF-ack + CF-poll wlan.fc.type_subtype == 0x2B
10 Data 1100 QoS Null wlan.fc.type_subtype == 0x2C
10 Data 1101 Reserved wlan.fc.type_subtype == 0x2D
10 Data 1110 QoS + CF-poll (no data) wlan.fc.type_subtype == 0x2E
10 Data 1111 Qos + CF-ack (no data) wlan.fc.type_subtype == 0x2F
11 Reserved 0000-1111 Reserved

 

Below are the explanation for some frames

-Association request is sent by a station to associate to a BSS.

-Association response is sent in response to an association request

-Reassociation request is sent by a station changing association to another AP in the same ESS (so roaming between APs, orreassociating with the same AP)

-Reassociation response is the response to the reassociation request

-Probe request is sent by a station in order to “scan” for an SSID

-Probe response is sent by each BSS participating to that SSID

-Beacon is a periodic frame sent by the AP (or stations in case of IBSS) and giving information about the BSS

-ATIM is the traffic indication map for IBSS (in a BSS, the TIM is included in the beacon)

-Disassociation is sent to terminate the association of a station

-Authentication is the frame used to perform the 802.11 authentication (and not any other type of authentication)

-Deauthentication is the frame terminating the authentication of a station.

-Action is a frame meant for sending information elements to other stations (when sending in a beacon is not possible/best)

 

-PS-Poll is the Power-save poll frame polling for buffered frames after a wake-up from a station

-RTS is the request-to-send frame

-CTS is the clear-to-send frame (often response to RTS)

-ACK is the acknowledge frame sent to confirm receipt of a frame.

 

-Data frame is the basic frame containing data

-Null frame is a frame meant to contain no data but flag information

-QoS data is the QoS version of the data frame

-QoS null is the QoS version of the null frame

Wi-Fi (IEEE 802.11) Abbreviations and Acronyms

The below Abbreviations and Acronyms are based on IEEE 802.11-2012 document.

3GPP 3rd Generation Partnership Project
802.x LAN IEEE 802-based local area networks such as IEEE 802.3 and IEEE 802.11
AA Authenticator address
AAA authentication, authorization, and accounting
AAD additional authentication data
AC access category
ACI access category index
ACK acknowledgment
ACM admission control mandatory
ACU admission control unit
ADDBA add Block Acknowledgment
ADDTS add traffic stream
AES advanced encryption standard
AES-128-CMAC advanced encryption standard (with 128-bit key) cipher-based message authentication code
AFC Automatic Frequency Control
AGC Automatic Gain Control
AID association identifier
AIFS arbitration interframe space
AIFSN arbitration interframe space number
AKM authentication and key management
AKMP Authentication and Key Management Protocol
AMPE authenticated mesh peering exchange
A-MPDU aggregate MAC protocol data unit
A-MSDU aggregate MAC service data unit
ANonce Authenticator nonce
ANPI average noise power indicator
ANQP Access Network Query Protocol
AP access point
APSD automatic power save delivery
ARP Address Resolution Protocol
AS Authentication Server
ASEL antenna selection
ASN.1 Abstract Syntax Notation One
ASRA additional step required for access
ATIM announcement traffic indication message
BA Block Acknowledgment
BAR Block Acknowledgment request
BCC binary convolutional code
BIP Broadcast/Multicast Integrity Protocol
BPSK binary phase shift keying
BSA basic service area
BSS basic service set
BSSID basic service set identifier
BT bit time
BU bufferable unit
CAP controlled access phase
CBC cipher-block chaining
CBP contention-based protocol
CBC-MAC cipher-block chaining message authentication code
CCA clear channel assessment
CCK complementary code keying
CCM CTR with CBC-MAC
CCMP CTR with CBC-MAC Protocol
CF contention-free
CFP contention-free period
C-MPDU coded MPDU
CP contention period
C-PSDU coded PSDU
CRC cyclic redundancy code
CS carrier sense
CSD cyclic shift diversity
CSI channel state information
CSMA/CA carrier sense multiple access with collision avoidance
CTR counter mode
CTS clear to send
CTS1 clear to send 1
CTS2 clear to send 2
CW contention window
DA destination address
DBPSK differential binary phase shift keying
DCF distributed coordination function
DCLA dc level adjustment
DELBA delete Block Acknowledgment
DELTS delete traffic stream
DFS dynamic frequency selection
DFT discrete Fourier transform
DIFS distributed (coordination function) interframe space
DLL data link layer
DLS direct-link setup
DLTF Data Long Training field
DMS directed multicast service
DMSID directed multicast service identifier
DN destination network
DO DFS owner
Dp desensitization
DQPSK differential quadrature phase shift keying
DR data rate
DS distribution system
DSCP differentiated services code point
DSE dynamic station enablement
DSM distribution system medium
DSS distribution system service
DSSDU distribution system service data unit
DSSS direct sequence spread spectrum
DSSS-OFDM Direct sequence spread spectrum orthogonal frequency division multiplexing
DST daylight saving time
DTIM delivery traffic indication map
EAP Extensible Authentication Protocol (IETF RFC 3748-2004 [B38])
EAPOL Extensible Authentication Protocol over LANs (IEEE Std 802.1X-2004)
EAS emergency alert system
EBR expedited bandwidth request
ECS extended channel switching
ED energy detection
EDCA enhanced distributed channel access
EDCAF enhanced distributed channel access function
EDT eastern daylight time
EHCC extended hyperbolic congruence code
EIFS extended interframe space
EIRP equivalent isotropically radiated power
ELTF Extension Long Training field
EOSP end of service period
ERP extended rate PHY
ERP-CCK extended rate PHY using CCK modulation
ERP-DSSS extended rate PHY using DSSS modulation
ERP-DSSS/CCK extended rate PHY using DSSS or CCK modulation
ERP-OFDM extended rate PHY using OFDM modulation
ERP-PBCC extended rate PHY using extended rate PBCC modulation
ESA extended service area
ESR emergency services reachable
ESS extended service set
EST eastern standard time
EVM error vector magnitude
FC frame control
FCS frame check sequence
FEC forward error correction
FER frame error ratio
FFT Fast Fourier Transform
FH frequency hopping
FHSS frequency-hopping spread spectrum
FIFO first in first out
FMS flexible multicast service
FMSID flexible multicast stream identifier
FOV field of view
FSM finite state machine
FT fast BSS transition
FTAA fast BSS transition authentication algorithm
FTE fast BSS transition element
FTO fast BSS transition originator
GANN gate announcement
GAS generic advertisement service
GFSK Gaussian frequency shift key or keying
GI guard interval
GMK group master key
GNonce group nonce
GPRS general packet radio service
GPS Global Positioning System
GTK group temporal key
GTKSA group temporal key security association
HC hybrid coordinator
HCC hyperbolic congruence code
HCCA HCF controlled channel access
HCF hybrid coordination function
HEC header error check
HEMM HCCA, EDCA mixed mode
HESSID homogenous extended service set identifier
HIPERLAN high-performance radio local area network
HPA high power amplifier
HR/DSSS High Rate direct sequence spread spectrum using the long preamble and header
HR/DSSS/PBCC High Rate direct sequence spread spectrum using the optional packet binary convolutional coding mode and the long preamble and header
HR/DSSS/PBCC/short High Rate direct sequence spread spectrum using the optional packet binary convolutional coding mode and the optional short preamble and header
HR/DSSS/short High Rate direct sequence spread spectrum using the optional short preamble and header mode
HT high throughput
HTC high throughput control
HT-GF-STF High-Throughput Greenfield Short Training field
HT-SIG High-Throughput SIGNAL field
HT-STF High-Throughput Short Training field
HWMP hybrid wireless mesh protocol
HWMP SN hybrid wireless mesh protocol sequence number
IBSS independent basic service set
ICMP Internet Control Message Protocol
ICV integrity check value
IDFT inverse discrete Fourier transform
IFFT inverse Fast Fourier Transform
IFS interframe space
IGTK integrity group temporal key
IGTKSA integrity group temporal key security association
IMp intermodulation protection
INonce initiator nonce
IPI idle power indicator
IPN IGTK packet number
I/Q in phase and quadrature
IR infrared
IrDA infrared data association
ISM industrial, scientific, and medical
IUT implementation under test
IV initialization vector
KCK EAPOL-Key confirmation key
KDE key data encapsulation
KDF key derivation function
KEK EAPOL-Key encryption key
LAN local area network
LCI location configuration information
LDPC low-density parity check
LED light-emitting diode
LFSR linear feedback shift register
LLC logical link control
L-LTF Non-HT Long Training field
LME layer management entity
LNA low noise amplifier
LRC long retry count
LSB least significant bit
L-SIG Non-HT SIGNAL field
L-STF Non-HT Short Training field
LTF Long Training field
MAC medium access control
MAC_I initiator mac address
MAC_P peer mac address
MAF MCCA access fraction
MBCA mesh beacon collision avoidance
MBSS mesh basic service set
MCCA MCF controlled channel access
MCCAOP MCF controlled channel access opportunity
MCF mesh coordination function
MCS modulation and coding scheme
MDE Mobility Domain element
MDID mobility domain identifier
MFB MCS feedback
MFPC management frame protection capable
MFPR management frame protection required
MGTK mesh group temporal key
MIB management information base
MIC message integrity code
MIH media-independent handover
MIMO multiple input, multiple output
MLME MAC sublayer management entity
MLPP multi-level precedence and preemption
MME Management MIC element
MMPDU MAC management protocol data unit
MPDU MAC protocol data unit
MPM mesh peering management
MPSP mesh peer service period
MRQ MCS request
MSB most significant bit
MSDU MAC service data unit
MSGCF MAC state generic convergence function
MSK master session key
MTK mesh temporal key
MUI message unique identifier
N/A not applicable
NAI network access identifier
NAS network access server
NAV network allocation vector
NDP null data packet
NonERP nonextended rate PHY
NTP Network Time Protocol (IETF RFC 1305-1992 [B25])
OBSS overlapping basic service set
OCB outside the context of a BSS
OFDM orthogonal frequency division multiplexing
OI organization identifier
OSI Open Systems Interconnection (ISO/IEC 7498-1:1994)
OUI organizationally unique identifier
PAE port access entity (IEEE Std 802.1X-2004)
PBAC protected block ack agreement capable
PBCC packet binary convolutional code
PC point coordinator
PCF point coordination function
PCO phased coexistence operation
PDU protocol data unit
PER packet error ratio
PERR path error
PHB per-hop behavior
PHY physical layer
PHYCS PHY carrier sense
PHYED PHY energy detection
PICS protocol implementation conformance statement
PIFS point (coordination function) interframe space
PLCP physical layer convergence procedure
PLME physical layer management entity
PLW PSDU length word
PMD physical medium dependent
PMK pairwise master key
PMK-R0 pairwise master key, first level
PMK-R1 pairwise master key, second level
PMKID pairwise master key identifier
PMKSA pairwise master key security association
PN packet number
PN pseudonoise (code sequence)
PNonce peer nonce
PP A-MSDU payload protected aggregate MAC service data unit
PPDU PLCP protocol data unit
PPM pulse position modulation
PREP path reply
PREQ path request
PRF pseudorandom function
PRNG pseudorandom number generator
PS power save (mode)
PSAP public safety answering point
PSDU PLCP service data unit
PSF PLCP Signaling field
PSK preshared key
PSMP power save multi-poll
PSMP-DTT power save multi-poll downlink transmission time
PSMP-UTT power save multi-poll uplink transmission time
PTI peer traffic indication
PTK pairwise transient key
PTKSA pairwise transient key security association
PXU proxy update
PXUC proxy update confirmation
QAM quadrature amplitude modulation
QBPSK quadrature binary phase shift keying
QLRC QoS long retry counte
QoS quality of service
QPSK quadrature phase shift keying
QSRC QoS short retry counter
R0KH PMK-R0 key holder in the Authenticator
R0KH-ID PMK-R0 key holder identifier in the Authenticator
R1KH PMK-R1 key holder in the Authenticator
R1KH-ID PMK-R1 key holder identifier in the Authenticator
RA receiver address or receiving station address
RADIUS remote authentication dial-in user service (IETF RFC 2865-2000 [B31])
RANN root announcement
RAV resource allocation vector
RCPI received channel power indicator
RD reverse direction
RDE RIC Data element
RDG reverse direction grant
RF radio frequency
RFC request for comments
RIC resource information container
RIFS reduced interframe space
RLAN radio local area network
RPI receive power indicator
RRB remote request broker
RSC receive sequence counter
RSN robust security network
RSNA robust security network association
RSNE Robust Security Network element
RSNI received signal to noise indicator
RSPI receiver service period initiated
RSSI receive signal strength indicator
RTS request to send
RX receive or receiver
RXASSI receive antenna selection sounding indication
RXASSR receive antenna selection sounding request
S0KH PMK-R0 key holder in the Supplicant
S0KH-ID PMK-R0 key holder identifier in the Supplicant
S1KH PMK-R1 key holder in the Supplicant
S1KH-ID PMK-R1 key holder identifier in the Supplicant
SA source address
SAE simultaneous authentication of equals
SAP service access point
S-APSD scheduled automatic power save delivery
SA Query Security Association Query
SDL specification and description language
SDU service data unit
SFD start frame delimiter
SKCK STSL key confirmation key
SKEK STSL key encryption key
SI service interval
SIFS short interframe space
SLRC station long retry count
SM spatial multiplexing
SME station management entity
SMK STSL master key
SMKSA STSL master key security association
SMT station management
SNAP Sub-Network Access Protocol
SNonce Supplicant nonce
SNR signal-to-noise ratio
SP service period
SPA Supplicant address
SPP A-MSDU signaling and payload protected aggregate MAC service data unit
SQ signal quality (PN code correlation strength)
SRC short retry count
SS station service
SSID service set identifier
SSP subscription service provider
SSPN subscription service provider network
SSRC station short retry count
STA station
STBC space-time block coding
STK STSL transient key
STKSA STSL transient key security association
STSL station-to-station link
STT selective translation table
SYNC synchronization
TA transmitter address or transmitting station address
TAI Temps Atomique International (International Atomic Time)
TBTT target beacon transmission time
TC traffic category
TCLAS traffic classification
TDLS tunneled direct-link setup
TDLS peer PSM tunneled direct-link setup peer power save mode
TFS traffic filtering service
TID traffic identifier
TIE Timeout Interval element
TIM traffic indication map
TK temporal key
TKIP Temporal Key Integrity Protocol
TMPTT target measurement pilot transmission time
TOA time of arrival
TOD time of departure
TPC transmit power control
TPK TDLS Peer Key
TPKSA TDLS Peer Key Security Association
TPU TDLS Peer U-APSD
TS traffic stream
TSC TKIP sequence counter
TSF timing synchronization function
TSID traffic stream identifier
TSN transition security network
TSPEC traffic specification
TTAK TKIP-mixed transmit address and key
TTL time to live
TTTT target TIM transmission time
TU time unit
TX transmit or transmitter
TXASSI transmit antenna selection sounding indication
TXASSR transmit antenna selection sounding request
TXE transmit enable
TXOP transmission opportunity
U-APSD unscheduled automatic power save delivery
UCT unconditional transition
UESA unauthenticated emergency service accessible
ULS Universal Licensing System
U-NII unlicensed national information infrastructure
UP user priority
URI uniform resource identifier
URL universal resource locator
URN Uniform Resource Name
UTC Coordinated Universal Time
VLAN virtual local area network
VoIP voice over Internet Protocol (IP)
WLAN wireless local area network
WDS wireless distribution system
WEP wired equivalent privacy
WM wireless medium
WNM wireless network management

 

Android SDK not recognizing debug-able HTC one V device

My HTC one V was not detecting in the Ubuntu 12.04  while connected through USB cable for application development and debugging.

1) First connect the mobile(HTC one V ) to the USB of the PC
2) Check using command lsusb , below one print will come
Bus 002 Device 011: ID 0bb4:0ce5 High Tech Computer Corp. 
3) Add the below lines to the end of the file/etc/udev/rules.d/51-android.rules

## Rule for an HTC One V Android Phone

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0ce5″, MODE=”0666″

SUBSYSTEMS==”usb”, SYSFS{product}==”Android Phone”, MODE=”0666″

4) After this reinsert the device , you should be able to see the below print while typing adb devices

$ root@dino-Satellite-C665:~# adb devices
List of devices attached
SH258TV06083 device

 

Happy Application Development and Debugging :) :) :)

Android Compilation in Ubuntu 12.04 LTS (precise) for pandaboard

 

Below are the steps followed for compiling the android in Ubuntu 12.04 for pandaboard. I had compiled by referencing the following links

http://source.android.com/source/index.html

http://blog.markloiseau.com/2012/07/how-to-compile-android-on-ubuntu-12-04/

 

Making ready the Ubuntu 12.04 for compiling Android

1) Installing JDK

Since Sun JDK is no longer in Ubuntu’s main package repository, we have to manually install it in ubuntu 12.04 from oracle website

Please go the below link and download the JDK

http://www.oracle.com/technetwork/java/javase/downloads/jdk6-downloads-1637591.html

Follow the below steps to install the java and configuring it for the usage

$ chmod +x jdk-6u33-linux-x64.bin

$ sudo ./jdk-6u33-linux-x64.bin
$ sudo mv jdk1.6.0_33 /usr/lib/jvm/
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_33/bin/java 1
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_33/bin/javac 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_33/bin/javaws 1
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config javaws

To verify the isntallation is proper do the belwo steps. It should now show that the Sun JDK is running instead of IcedTea

$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)

 2) Installing the required packages for Ubuntu 12.04

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ 
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ 
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ 
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \ 
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
 $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

3) Configuring USB Access

 

Under GNU/linux systems (and specifically under Ubuntu systems), regular users can’t directly access USB devices by default. The system needs to be configured to allow such access.

If you do not do this, when u insert the pandaboard it wont be detected and you wont be able to do any file trasnfer for u-boot and other system files

The recommended approach is to create a file /etc/udev/rules.d/51-android.rules (as the root user) and to copy the following lines in it. <username> must be replaced by the actual username of the user who is authorized to access the phones over USB.
# adb protocol on panda (PandaBoard)
SUBSYSTEM==”usb”, ATTR{idVendor}==”0451″, ATTR{idProduct}==”d101″, MODE=”0600″, OWNER=”<username>”
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM==”usb”, ATTR{idVendor}==”0451″, ATTR{idProduct}==”d022″, MODE=”0600″, OWNER=”<username>”
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM==”usb”, ATTR{idVendor}==”0451″, ATTR{idProduct}==”d00f”, MODE=”0600″, OWNER=”<username>”
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM==”usb”, ATTR{idVendor}==”0451″, ATTR{idProduct}==”d010″, MODE=”0600″, OWNER=”<username>”
# adb protocol on grouper (Nexus 7)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e42″, MODE=”0600″, OWNER=”<username>”
# fastboot protocol on grouper (Nexus 7)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e40″, MODE=”0600″, OWNER=”<username>”

 If the username is dino, the line should look like

SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e40″, MODE=”0600″, OWNER=”dino”

Downloading the Source Tree

4) Create a bin/ directory in your home directory

$ mkdir ~/bin
$ PATH=~/bin:$PATH

5) Download the Repo script and make it executable

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

6) Downloading the master branch for pandaboard

pandaboard is supported in master branch of the android. So now we will now download the android master branch

First we will create a directory for he android source

$mkdir android_master
$cd android_master

now we will initialize the repo to bring the latest version of the repo

$ repo init -u https://android.googlesource.com/platform/manifest

When prompted, please configure Repo with your real name and email address. To use the Gerrit code-review tool, you will need an email address that is connected with a registered Google account. Make sure this is a live address at which you can receive messages. The name that you provide here will show up in attributions for your code submissions.


Now we will pull down the source code from the repository which we initialized

$repo sync

Now the download of the source code will start, this will take some hours to download the whole files . Make sure you have good internet speed :)

……..

 

Compiling the Android

 7) Initialize the enviornment

$ source build/envsetup.sh

8) Choose the Target as panda

$ lunch full_panda-userdebug

 

9) Installing binary driver for pandaboard

We need to now download the graphics driver for pandaboard, click the below link

https://developers.google.com/android/nexus/drivers#panda and download the binary corresponding to the android version . I used 4.0.4

$ tar xvzf imgtec-panda-imm76i-67545da7.tgz

the above will untar the driver

10) now we are all ready to start the compilation. type make and go for some snacks and tea

$ make -j4

It took 2 hours in my Toshiba C665 laptop, the configuration is Core i3(i3-2330M CPU@ 2.20GHz), 6GB RAM

Build everything with make. GNU make can handle parallel tasks with a -jN argument, and it's common to use a number of tasks N that's between 1 and 2 times the number of hardware threads on the computer being used for the build. E.g. on a dual-E5520 machine (2 CPUs, 4 cores per CPU, 2 threads per core), the fastest builds are made with commands between make -j16 and make -j32.

 11) Writing to the pandaboard the Android Bootloader image

# Initial setup,

# With no SD card inserted, plug USB first, then the power cord,
# and load fastboot over USB:
device/ti/panda/usbboot device/ti/panda/bootloader.bin

# Initial setup,
# Once in fastboot, insert and initialize an SD card (4GB or greater):
fastboot oem format
fastboot flash xloader device/ti/panda/xloader.bin
fastboot flash bootloader device/ti/panda/bootloader.bin

# Build and flash, part 1: Do a build
source build/envsetup.sh
lunch full_panda-userdebug
make

# Build and flash, part 2: Flash
# Reboot into the SD card’s fastboot (hold GPIO_121 and press PWRON_RESET)
# and flash the system:
fastboot erase cache
fastboot flash userdata
fastboot flashall

# Post-boot setup, part 1: Set the date on the board:
adb shell date $(date +%s)

# Post-boot setup, part 2: (optional) Configure Ethernet
adb shell dhcpcd eth0

 

 

 

Unlocking HTC One V bootloader

Read this before doing !!!

  • Read and understand the whole instruction
  • The instructions in this guide are intended for use with the HTC One V. Applying these instructions on another device or model may produce undesired outcomes.
  • Use these instructions at your own risk. Understand the instruction first before actually executing

Things to do before starting

  • Download HTC Sync to your computer. You will be needing this to install the USB drivers for HTC One V on the computer.
  • Download the Fastboot package here (Fastboot.zip, 404.46 kB).
  • WinRAR or 7-Zip installed on your computer.
  • Charge your phone’s battery to 70% or more.
  • Backup all personal data on your phone to make sure you have a copy of your personal data (e.g., contacts, SMS, MMS, Internet settings, Wi-Fi passwords, and the like) in case the procedure in this guide erases such data.

Instructions

  1. Download HTC Sync from the link above and install it on your computer. This will be needed to install the USB drivers for HTC One V.
  2. Download the Fastboot package from the link provided above.
  3. Extract Fastboot.zip to a folder on your computer.
  4. Go to HTC Development page and make an account. Use your account to log into the site.
  5. Go to HTC’s Unlock Bootloader page.
  6. Go to the list of supported devices and select All Other Supported Models.
  7. Click Begin Unlock Bootloader and select Yes when a warning message appears. On the next page, you will see on-screen instructions on how to unlock your HTC One V’s bootloader. You can use this as your guide.
  8. Switch off your HTC One V.
  9. Press the Volume Down key and Power button simultaneously to reboot your phone into Bootloader Mode.
    • NOTE: Once in Bootloader Mode, you will be using the Volume keys to navigate and the Power button to select an option.
  10. Select Fastboot from the Bootloader menu.
  11. Using your USB cable, connect your HTC One V to the computer.
  12. Open a command prompt window on the computer. Navigate it to where the Fastboot program is located.
    • NOTE: For Windows 7 users, you can easily navigate a command prompt from a specific folder. Open the desired folder. Press the Shift and right mouse button in any vacant portion in the folder. A menu will appear. Select Open Command Window here and a command prompt will appear with the location of the selected folder.
  13. To make sure that your HTC One V has successfully connected to the computer, type the command fastboot devices. Your phone’s serial number will be displayed on the screen.
  14. Type the command fastboot oem get_identifier_token. The command prompt will display your HTC One V’s Token ID.
  15. Copy the Token ID. When copying the Token ID, start from the line <<<< Identifier Token Start >>>> and end at the line <<<<< Identifier Token End >>>>>.
    • NOTE: To copy the Token ID from the command prompt window, right-click on the command prompt window. A menu will appear. Select Mark and highlight the Token ID. After highlighting your Token ID, click the right mouse button to copy it.
  16. Go back to HTC Development page and submit your Token ID. You will receive a file Unlock.code.bin via your email. Further instructions will also be attached to the email. You may use this as your guide.
  17. Download the Unlock.code.bin and paste it into the Fastboot package folder.
  18. Go back to the command prompt window and type the command  fastboot flash unlocktoken Unlock_code.bin then hit the Enter key.
  19. Your HTC One V will receive an Unlock Bootloader request. Use the Volume keys to select Yes and tap the Power button to confirm your action.
  20. Your HTC One V will automatically reboot and perform a factory reset.
  21. To confirm that your phone’s bootloader has been unlocked, reboot your phone into Bootloader Mode. The word UNLOCKED will be displayed on top of the menu.

That’s all,  you are done.  Now enjoy your mobile with unlocked bootloader and do what ever you want.

 

What happens when power is given to microcontroller or a processor, Part – 2

So after reaching the power reset vector what does it do ? (Click  here to read the first part)

Simple it starts executing the instruction in order, according to PC(Program counter). As we understood from the part-1 The processor does initialization of the registers and then does a reset on the PC. After executing the first instruction, it increments the program counter, which will point to to the next instruction in program memory. This will keep on going until power is given to the chip or it goes to sleep mode.

Now if the PC value keep on incrementing how does we have the full control of the chip. That’s what the instruction written in the program does. When we write if, else,  while condition what is actually happening inside the chip, it changes the program counter so that the next instruction will be the jump to new instruction set we had written for a particular logic.  So it is upto the programmer to write the instruction to meet the task the micro controller/processor has to execute.

 

What happens when power is given to microcontroller or a processor, Part – 1

This is question every embedded system engineer should have a thorough knowledge.  When I ask this question to young/experienced engineers I get answers like, its starts executing the program, yes some persons answers properly also. If  I ask what program, they will say the program you had written like that.

So let me explain in my way what happens when power, (ie when you give the power supply to the microcontroller), is given to the microcontroller. When we talk about a microcontroller, let us little think what is it made of, of course it is a chip(Integrated Circuit, IC ). Now lets think about how is it made of, its made of transistors with which gates are formed and the whole logic inside the microcontroller or the processor(ALU, timer modules etc) is built. And if you think about what is inside the controller, there are registers and modules. The registers represent the status of the mapped device/module (like timers, ports), it can be the configuration of the device for it to work . So think what will happen if the register content has some junk values when we power the device, the system can perform in an unpredictable way and we wont be able to control the device.

Then how to control it ? Simple solution, starting the device itself initialize these registers with known values. DONE, Now you are in control of the microcontroller when power is given to it. This is the first step they do in any device. First task when the power is given to a microcontroller or processor is to initialize all the registers and all the module inside the chip to a know value and state. But still there is a chance that some registers will be in unknown state, All these are mentioned in the datasheet of that particular IC.

Ok now whats next, how the user going to get control of the controller/processor ? that is where are you going to put your program ? Its not your device  right, so who ever makes the device has to tell us from where the processor going to execute the first instruction  and how it will proceed. Yes that’s the answer the device manufacturer fixes a location in the memory from where it first fetches the instruction and start executing it. This location is called reset vector or power on reset location of the processor or microcontroller. Normally it is at the starting of the memory location, that is 0x0000 of the program memory. Some processor start at the last location also. After that for each instruciton cycle it keeps on executing till power is given to the system, of it goes to sleep mode.

This is how a microcontroller or a processor starts its endless journey to serve all of us without complaining anything :)

802.11n 4×4 MIMO reference design

Quantenna has introduced 802.11n 4×4 MIMO chipset, which is capable of providing 600Mbps data rate.  This will be capable of streaming multiple Full HD(1080p) streaming.  It suport IEEE 802.11n 4×4 feature set as follows

  1. dynamic digital beamforming,
  2. mesh networking
  3. wireless channel monitoring and optimizing.

Because of these feautre it can perform better than the legacy 802.11 by 25 dB and 5x the coverage area.

About Quantenna Communications, Inc.

Quantenna Communications, Inc. is a fabless semiconductor company developing standards-based 802.11n MIMO chipsets that deliver the highest levels of performance, speed and reliability for wireless networks and devices. Headquartered in Fremont, Calif., Quantenna has assembled a management and engineering team with a long track record of start-up success, and is backed by leading venture capital firms, including Grazia Equity, Sequoia Capital, Sigma Partners, Southern Cross Venture Partners and Venrock Associates. For additional information, please visit www.quantenna.com.