Add toolchain and mbtk source

Change-Id: Ie12546301367ea59240bf23d5e184ad7e36e40b3
diff --git a/mbtk/lynq_lib/src/lynq_gnss.c b/mbtk/lynq_lib/src/lynq_gnss.c
new file mode 100755
index 0000000..b746c31
--- /dev/null
+++ b/mbtk/lynq_lib/src/lynq_gnss.c
@@ -0,0 +1,151 @@
+/**
+ *   \file gnss_test.c
+ *   \brief A Documented file.
+ *
+ *  Detailed description
+ *   \Author:  Sniper <e190@163.com>
+ *   \Version: 1.0.0
+ *   \Date: 2022-03-26
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <errno.h>
+#include <termios.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+#include "mbtk_type.h"
+#include "mbtk_gnss.h"
+#include "lynq/lynq_gnss.h"
+
+static mbtk_gnss_client_handle _gnss_handle = 0;
+
+static lynq_gnss_rx_ind_msg_handler_t handler_ptr = NULL;
+
+void lynq_gnss_handler_function
+(
+    mbtk_gnss_client_handle  h_loc,
+    int   e_msg_id,
+    void                    *pv_data,
+    void                    *context_ptr
+)
+{
+    if(NULL == handler_ptr)
+        return;
+
+    if(E_LYNQ_LOC_MSG_ID_NMEA_INFO == e_msg_id) {
+        handler_ptr(h_loc, e_msg_id, pv_data, context_ptr);
+    } else {
+    }
+}
+
+//该函数用于进行GNSS初始化
+int lynq_gnss_init(void)
+{
+	int ret=0;
+
+    ret = mbtk_gnss_client_init(&_gnss_handle);
+	if(ret < 0) {
+		printf("mopen_gnss_client_init FAIL.	ret:%d\n",ret);
+		return -1;
+	}
+
+	return 0;
+}
+
+//该函数用于取消GNSS初始化
+int lynq_gnss_deinit(void)
+{
+    int ret;
+	if(0 == _gnss_handle) {
+		return -1;
+	}
+
+    ret = mbtk_gnss_client_deinit(_gnss_handle);
+	if(ret < 0) {
+		printf("mopen_gnss_client_deinit FAIL.	ret:%d\n",ret);
+		return -1;
+	}
+
+	_gnss_handle = 0;
+    return 0;
+}
+
+//该函数用于GNSS回调函数初始化
+
+int lynq_gnss_callback_reg(lynq_gnss_rx_ind_msg_handler_t handlerPtr)
+{
+    int ret;
+
+	if(0 == _gnss_handle) {
+		return -1;
+	}
+	mbtk_gnss_print_version(_gnss_handle);
+
+    ret = mbtk_gnss_add_rx_msg_handler(_gnss_handle, lynq_gnss_handler_function);
+    if(0 == ret && handlerPtr)
+        handler_ptr = handlerPtr;
+    else
+        return -1;
+	return 0;
+}
+
+//该函数用于启动GNSS。
+int lynq_gnss_start(void)
+{
+	if(0 == _gnss_handle) {
+		return -1;
+	}
+
+    mbtk_gnss_set_mode(_gnss_handle, 0);
+    return mbtk_gnss_set_mode(_gnss_handle, 3);
+}
+
+//该函数用于关闭GNSS。
+int lynq_gnss_stop(void)
+{
+	if(0 == _gnss_handle) {
+		return -1;
+	}
+
+    return mbtk_gnss_set_mode(_gnss_handle, 0);
+}
+
+
+int lynq_gnss_agps_dataconnopen(void)
+{
+    int ret;
+
+    ret = mbtk_gnss_download_tle();
+    if(ret)
+    {
+        printf("%s: download injects failed!!\n", __FUNCTION__);
+        return -1;
+    }
+    return mbtk_gnss_injects_aidpos(_gnss_handle);
+}
+
+int lynq_gnss_dev_reset(void)
+{
+	int ret = 0;
+	if(_gnss_handle < 0)
+	{
+		return -1;
+	}
+	ret = mbtk_gnss_dev_reset(_gnss_handle, 0, 0);
+	return ret;
+}
+
+int lynq_gnss_enable_glonass(void)
+{
+    mbtk_gnss_firmware_update();
+    return 0;
+}