Index: azure_iot_hub_f767zi/trunk/asp_baseplatform/files/stdfile.c
===================================================================
--- azure_iot_hub_f767zi/trunk/asp_baseplatform/files/stdfile.c	(revision 457)
+++ azure_iot_hub_f767zi/trunk/asp_baseplatform/files/stdfile.c	(revision 464)
@@ -364,5 +364,5 @@
  *  unlink - remove file
  */
-bool_t unlink(const char *path)
+int unlink(const char *path)
 {
   StorageDevice_t *psdev;
Index: azure_iot_hub_f767zi/trunk/asp_baseplatform/lwip/contrib-2.1.0/addons/ipv6_static_routing/README
===================================================================
--- azure_iot_hub_f767zi/trunk/asp_baseplatform/lwip/contrib-2.1.0/addons/ipv6_static_routing/README	(revision 457)
+++ azure_iot_hub_f767zi/trunk/asp_baseplatform/lwip/contrib-2.1.0/addons/ipv6_static_routing/README	(revision 464)
@@ -1,9 +1,9 @@
-A simple routing table implementation for addition, deletion and lookup of IPv6 routes.ï¾ï£°
+A simple routing table implementation for addition, deletion and lookup of IPv6 routes.Â 
 
 APIs are:
 1) s8_t ip6_add_route_entry(struct ip6_prefix *ip6_prefix,
-ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° struct netif *netif,
-ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ip6_addr_t *gateway,
-ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° ï¾ï£° s8_t *index);
+Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  struct netif *netif,
+Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  ip6_addr_t *gateway,
+Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  s8_t *index);
 
 2) err_t ip6_remove_route_entry(struct ip6_prefix *ip6_prefix);
@@ -17,27 +17,27 @@
 6) struct ip6_route_entry *ip6_get_route_table(void);
 
-For route lookup from the table, Theï¾ï£°LWIP_HOOK_IP6_ROUTE hook in ip6_route(..) of ip6.c
+For route lookup from the table, TheÂ LWIP_HOOK_IP6_ROUTE hook in ip6_route(..) of ip6.c
 could be assigned to the ip6_static_route() API of this implementation to return the 
 appropriate netif.
 
--- The application can add routes using the API ip6_add_route_entry(..).ï¾ï£°
-ï¾ï£° ï¾ï£°This API adds the ip6 prefix route into the static route table while
-ï¾ï£° ï¾ï£°keeping all entries sorted in decreasing order of prefix length.
-ï¾ï£° ï¾ï£°Subsequently, a linear search down the list can be performed to retrieve a
-ï¾ï£° ï¾ï£°matching route entry for a Longest Prefix Match.
-ï¾ï£° ï¾ï£°The prefix length is expected to be at an 8-bit boundary. While this isï¾ï£°
-ï¾ï£° ï¾ï£°a limitation, it would serve most practical purposes.
+-- The application can add routes using the API ip6_add_route_entry(..).Â 
+Â  Â This API adds the ip6 prefix route into the static route table while
+Â  Â keeping all entries sorted in decreasing order of prefix length.
+Â  Â Subsequently, a linear search down the list can be performed to retrieve a
+Â  Â matching route entry for a Longest Prefix Match.
+Â  Â The prefix length is expected to be at an 8-bit boundary. While this isÂ 
+Â  Â a limitation, it would serve most practical purposes.
 
 -- The application can remove routes using the API ip6_remove_route_entry(..).
 
--- The application can find a route entry for a specific address using theï¾ï£°
-ï¾ï£° ï¾ï£°ip6_find_route_entry() function which returns the index of the found entry.ï¾ï£°
-ï¾ï£° ï¾ï£°This is used internally by the route lookup function ip6_static_route() API.
+-- The application can find a route entry for a specific address using theÂ 
+Â  Â ip6_find_route_entry() function which returns the index of the found entry.Â 
+Â  Â This is used internally by the route lookup function ip6_static_route() API.
 
--- To fetch the gateway IPv6 address for a specific destination IPv6ï¾ï£°
-ï¾ï£° ï¾ï£°address and target netif, the application can call ip6_get_gateway(..).
+-- To fetch the gateway IPv6 address for a specific destination IPv6Â 
+Â  Â address and target netif, the application can call ip6_get_gateway(..).
    This API could be assigned to the LWIP_HOOK_ND6_GET_GW() if a gateway has
    been added as part of the ip6_add_route_entry().
 
--- To fetch a pointer to the head of the table, the application can callï¾ï£°
-ï¾ï£° ï¾ï£°ip6_get_route_table().
+-- To fetch a pointer to the head of the table, the application can callÂ 
+Â  Â ip6_get_route_table().
Index: azure_iot_hub_f767zi/trunk/asp_baseplatform/lwip/lwip-2.1.2/src/include/netif/ppp/ipv6cp.h
===================================================================
--- azure_iot_hub_f767zi/trunk/asp_baseplatform/lwip/lwip-2.1.2/src/include/netif/ppp/ipv6cp.h	(revision 457)
+++ azure_iot_hub_f767zi/trunk/asp_baseplatform/lwip/lwip-2.1.2/src/include/netif/ppp/ipv6cp.h	(revision 464)
@@ -45,28 +45,28 @@
     Jean-Luc.Richier@imag.fr, IMAG-LSR.
 
-    Ce travail a ﾃｩtﾃｩ fait au sein du GIE DYADE (Groupement d'Intﾃｩrﾃｪt
-    ﾃ営onomique ayant pour membres BULL S.A. et l'INRIA).
+    Ce travail a été fait au sein du GIE DYADE (Groupement d'Intérêt
+    Économique ayant pour membres BULL S.A. et l'INRIA).
 
     Ce logiciel informatique est disponible aux conditions
-    usuelles dans la recherche, c'est-ﾃ-dire qu'il peut
-    ﾃｪtre utilisﾃｩ, copiﾃｩ, modifiﾃｩ, distribuﾃｩ ﾃ l'unique
-    condition que ce texte soit conservﾃｩ afin que
+    usuelles dans la recherche, c'est-à-dire qu'il peut
+    être utilisé, copié, modifié, distribué à l'unique
+    condition que ce texte soit conservé afin que
     l'origine de ce logiciel soit reconnue.
 
     Le nom de l'Institut National de Recherche en Informatique
     et en Automatique (INRIA), de l'IMAG, ou d'une personne morale
-    ou physique ayant participﾃｩ ﾃ l'ﾃｩlaboration de ce logiciel ne peut
-    ﾃｪtre utilisﾃｩ sans son accord prﾃｩalable explicite.
+    ou physique ayant participé à l'élaboration de ce logiciel ne peut
+    être utilisé sans son accord préalable explicite.
 
     Ce logiciel est fourni tel quel sans aucune garantie,
-    support ou responsabilitﾃｩ d'aucune sorte.
-    Ce logiciel est dﾃｩrivﾃｩ de sources d'origine
+    support ou responsabilité d'aucune sorte.
+    Ce logiciel est dérivé de sources d'origine
     "University of California at Berkeley" et
     "Digital Equipment Corporation" couvertes par des copyrights.
 
-    L'Institut d'Informatique et de Mathﾃｩmatiques Appliquﾃｩes de Grenoble (IMAG)
-    est une fﾃｩdﾃｩration d'unitﾃｩs mixtes de recherche du CNRS, de l'Institut National
-    Polytechnique de Grenoble et de l'Universitﾃｩ Joseph Fourier regroupant
-    sept laboratoires dont le laboratoire Logiciels, Systﾃｨmes, Rﾃｩseaux (LSR).
+    L'Institut d'Informatique et de Mathématiques Appliquées de Grenoble (IMAG)
+    est une fédération d'unités mixtes de recherche du CNRS, de l'Institut National
+    Polytechnique de Grenoble et de l'Université Joseph Fourier regroupant
+    sept laboratoires dont le laboratoire Logiciels, Systèmes, Réseaux (LSR).
 
     This work has been done in the context of GIE DYADE (joint R & D venture
Index: azure_iot_hub_f767zi/trunk/asp_baseplatform/lwip/lwip-2.1.2/src/netif/ppp/ipv6cp.c
===================================================================
--- azure_iot_hub_f767zi/trunk/asp_baseplatform/lwip/lwip-2.1.2/src/netif/ppp/ipv6cp.c	(revision 457)
+++ azure_iot_hub_f767zi/trunk/asp_baseplatform/lwip/lwip-2.1.2/src/netif/ppp/ipv6cp.c	(revision 464)
@@ -45,28 +45,28 @@
     Jean-Luc.Richier@imag.fr, IMAG-LSR.
 
-    Ce travail a ﾃｩtﾃｩ fait au sein du GIE DYADE (Groupement d'Intﾃｩrﾃｪt
-    ﾃ営onomique ayant pour membres BULL S.A. et l'INRIA).
+    Ce travail a été fait au sein du GIE DYADE (Groupement d'Intérêt
+    Économique ayant pour membres BULL S.A. et l'INRIA).
 
     Ce logiciel informatique est disponible aux conditions
-    usuelles dans la recherche, c'est-ﾃ-dire qu'il peut
-    ﾃｪtre utilisﾃｩ, copiﾃｩ, modifiﾃｩ, distribuﾃｩ ﾃ l'unique
-    condition que ce texte soit conservﾃｩ afin que
+    usuelles dans la recherche, c'est-à-dire qu'il peut
+    être utilisé, copié, modifié, distribué à l'unique
+    condition que ce texte soit conservé afin que
     l'origine de ce logiciel soit reconnue.
 
     Le nom de l'Institut National de Recherche en Informatique
     et en Automatique (INRIA), de l'IMAG, ou d'une personne morale
-    ou physique ayant participﾃｩ ﾃ l'ﾃｩlaboration de ce logiciel ne peut
-    ﾃｪtre utilisﾃｩ sans son accord prﾃｩalable explicite.
+    ou physique ayant participé à l'élaboration de ce logiciel ne peut
+    être utilisé sans son accord préalable explicite.
 
     Ce logiciel est fourni tel quel sans aucune garantie,
-    support ou responsabilitﾃｩ d'aucune sorte.
-    Ce logiciel est dﾃｩrivﾃｩ de sources d'origine
+    support ou responsabilité d'aucune sorte.
+    Ce logiciel est dérivé de sources d'origine
     "University of California at Berkeley" et
     "Digital Equipment Corporation" couvertes par des copyrights.
 
-    L'Institut d'Informatique et de Mathﾃｩmatiques Appliquﾃｩes de Grenoble (IMAG)
-    est une fﾃｩdﾃｩration d'unitﾃｩs mixtes de recherche du CNRS, de l'Institut National
-    Polytechnique de Grenoble et de l'Universitﾃｩ Joseph Fourier regroupant
-    sept laboratoires dont le laboratoire Logiciels, Systﾃｨmes, Rﾃｩseaux (LSR).
+    L'Institut d'Informatique et de Mathématiques Appliquées de Grenoble (IMAG)
+    est une fédération d'unités mixtes de recherche du CNRS, de l'Institut National
+    Polytechnique de Grenoble et de l'Université Joseph Fourier regroupant
+    sept laboratoires dont le laboratoire Logiciels, Systèmes, Réseaux (LSR).
 
     This work has been done in the context of GIE DYADE (joint R & D venture
Index: azure_iot_hub_f767zi/trunk/asp_baseplatform/pdic/stm32f7xx/clock.c
===================================================================
--- azure_iot_hub_f767zi/trunk/asp_baseplatform/pdic/stm32f7xx/clock.c	(revision 457)
+++ azure_iot_hub_f767zi/trunk/asp_baseplatform/pdic/stm32f7xx/clock.c	(revision 464)
@@ -209,13 +209,13 @@
 		arg1 = atoix(argv[1]);
 	if(argc > 2)
-		timedate.tm_mon = atoix(argv[2]) - 1;
-	else
-		timedate.tm_mon = 0;
+		timedate.tm_mon = atoix(argv[2]);
+	else
+		timedate.tm_mon = 1;
 	if(argc > 3)
 		timedate.tm_mday = atoix(argv[3]);
 	else
 		timedate.tm_mday = 1;
-	printf("%04d/%02d/%02d\n", arg1, timedate.tm_mon + 1, timedate.tm_mday);
-	timedate.tm_year = arg1 - 1900;
+	printf("%04d/%02d/%02d\n", arg1, timedate.tm_mon, timedate.tm_mday);
+	timedate.tm_year = arg1-1900;
 	timedate.tm_isdst = 0;
 	mktime((struct tm *)&timedate);
@@ -291,5 +291,5 @@
 	}
 	mktime(&timedate);
-	printf("  %04d/%02d/%02d yday[%d]\n", timedate.tm_year+1900, timedate.tm_mon+1, timedate.tm_mday, timedate.tm_yday);
+	printf("  %04d/%02d/%02d yday[%d]\n", timedate.tm_year+1900, timedate.tm_mon, timedate.tm_mday, timedate.tm_yday);
 	printf("    %02d:%02d:%02d wday[%d]\n", timedate.tm_hour, timedate.tm_min, timedate.tm_sec, timedate.tm_wday);
 	return 0;
Index: azure_iot_hub_f767zi/trunk/asp_baseplatform/pdic/stm32f7xx/device.c
===================================================================
--- azure_iot_hub_f767zi/trunk/asp_baseplatform/pdic/stm32f7xx/device.c	(revision 457)
+++ azure_iot_hub_f767zi/trunk/asp_baseplatform/pdic/stm32f7xx/device.c	(revision 464)
@@ -1158,6 +1158,6 @@
 	SVC_PERROR(wai_sem(RTCSEM));
 
-	datetmp = (((uint32_t)byte2bcd(pt->tm_year - 30) << 16) |
-				((uint32_t)byte2bcd(pt->tm_mon) << 8) |
+	datetmp = (((uint32_t)byte2bcd(pt->tm_year) << 16) |
+				((uint32_t)byte2bcd(pt->tm_mon + 1) << 8) |
 				((uint32_t)byte2bcd(pt->tm_mday)) |
 				((uint32_t)pt->tm_wday << 13));
@@ -1244,6 +1244,6 @@
 	 */
 	datetmp = sil_rew_mem((uint32_t *)(TADR_RTC_BASE+TOFF_RTC_DR)) & RTC_DR_RESERVED_MASK;
-	pt->tm_year = (uint8_t)bcd2byte((uint8_t)((datetmp & (RTC_DR_YT | RTC_DR_YU)) >> 16)) + 30;
-	pt->tm_mon = (uint8_t)bcd2byte((uint8_t)((datetmp & (RTC_DR_MT | RTC_DR_MU)) >> 8));
+	pt->tm_year = (uint8_t)bcd2byte((uint8_t)((datetmp & (RTC_DR_YT | RTC_DR_YU)) >> 16));
+	pt->tm_mon = (uint8_t)bcd2byte((uint8_t)((datetmp & (RTC_DR_MT | RTC_DR_MU)) >> 8)) - 1;
 	pt->tm_mday = (uint8_t)bcd2byte((uint8_t)(datetmp & (RTC_DR_DT | RTC_DR_DU)));
 	pt->tm_wday = (uint8_t)((datetmp & (RTC_DR_WDU)) >> 13); 
