Build your own GNSS executables

Overview

This page describes how to build your own GNSS executable. See GL GPS Porting guide for further details.

Build your own glgps_win_xp for Windows

You may want to build your own version for customization in glhal.

  • Navigate to allPartners\deliverables\glgpsapp
  • Open glgpsapp.sln with Visual Studio 2005 and ignore the source control binding
  • Right-click on project glgps_win_xp and select "Rebuild"
  • The output glgps_win_xp.exe will be located at allPartners\deliverables\glgpsapp\win_xp\debug

Customizing Your Specific Target Device for Linux

This is required if you have a target device with different CPU that requires a specific tool-chain.

  • In this section, we assume the working directory is the top directory of the SDK. For example: Unix_Linux_gcc_2.16.4.83827/2.16.4.83827
  • Create a directory as customers/YourCompanyName. For example, customers/abc. Here assumes your company name is abc.
  • Copy all files and directories under customers/Unix to customers/abc, and rename the file Makefile.UnixLinux.mak to Makefile.abcX.mak. Here assumes your project or device is X. You may have another project named "Y", so you copy Makefile.abcX.mak to Makefile.abcY.mak.
  • Install the necessary tool-chain for your target device.
  • Update Makefile.abcX.mak to utilize your tool-chain by setting the following variables. Example below:
        # Enable the line below. This might be originally commented out.
        CONFIG_HAL_GPIO_SYSFS=yes
        
        # Comment out the line below. This might be originally enabled.
        #HAL_XTRA_SRCS:=cp2103/glgps_hal_gpio.c
        
        ARCH            = arm-wrs-linux-gnueabi-armv6jel-glibc_small
        TARGET_PATH     = $(HOME)/device_abc_tools/arm11_le-glibc_small
        TOOLPATH        = $(TARGET_PATH)/x86-linux2
        PATH            := $(TOOLPATH):$(PATH)
        CFLAGS          = $(_FLAGS) -c -o 
        CCFLAGS         = $(_FLAGS) -c -Wno-deprecated -o  
    
  • Build and run allPartners/deliverables/glhal/unix/serialTest to validate your device can communicate with the Broadcom GNSS chipset.
    • Connect the evaluation kit to the serial port of you device per How to connect evaluation board to your platform HW
          cd allPartners/deliverables/glhal/unix/serialTest
          make CUST=abc PLATF=X
          # Copy the executable "serialtest" to your device, and run
          ./serialtest /dev/ttyS0 115200 # Adjust /dev/ttyS0 to match your device
          # Validate that serialtest is getting the correct response
          # as indicated in allPartners/deliverables/glhal/unix/serialTest/README.txt
      
  • Send Makefile.abcX.mak to us along with your tool-chain and installation/setup procedure so that we can build the GPS core library files with your tool-chain.
  • Be sure that your Linux device support GPIO control by sysfs as utilized by allPartners/deliverables/glhal/unix/src/glgps_hal_gpio_sysfs.c
  • The GPIO should be controlling the pins as follows respectively:
        REGPU pin of BCM4751, BCM47511, BCM4752, BCM47521
        nSTANDBY pin of BCM4750
    
  • Be sure to expose the pin from step above as Test Point (TP) on your board

(Re)build your own glgps executable for Linux/Android

You may want to build your own version for customization in glhal. At this stage, you should have received a custom build from us for your target device.

    make help # See section "Typically done by Broadcom customer"
    make CUST=abc PLATF=X
  • Note that you will likely have linker errors because the GPS core library files were built using gcc/g++ for x86 Linux, and not your tool-chain.
  • Send Makefile.abcX.mak to us along with your tool-chain and installation/setup procedure so that we can build the GPS core library files with your tool-chain.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines