DoxyGen: Fixed broken links
- Link from General to PACK.xsd
- Link from General to CPRJ.xsd
- Link to Realtek
- Enhanced pack-lint config to reduce broken link warnings.

Change-Id: Ie1a597a26bb9ac79511a976ea7a9467181be108a
diff --git a/CMSIS/DoxyGen/General/src/introduction.txt b/CMSIS/DoxyGen/General/src/introduction.txt
index 3459044..9eaeb78 100644
--- a/CMSIS/DoxyGen/General/src/introduction.txt
+++ b/CMSIS/DoxyGen/General/src/introduction.txt
@@ -133,11 +133,11 @@
 \b NN                     |<a href="../../NN/html/index.html"><b>CMSIS-NN</b></a> software library source code
 \b Include                |Include files for <a href="../../Core/html/index.html"><b>CMSIS-Core (Cortex-M)</b></a> and <a href="../../DSP/html/index.html"><b>CMSIS-DSP</b></a>
 \b Lib                    |<a href="../../DSP/html/index.html"><b>CMSIS-DSP</b></a> generated libraries for ARMCC and GCC
-\b Pack                   |<a href="../../Pack/html/pack_Example.html"><b>CMSIS-Pack</b></a> example
+\b Pack                   |<a href="../../Pack/html/index.html"><b>CMSIS-Pack</b></a>
 \b RTOS                   |<a href="../../RTOS/html/index.html"><b>CMSIS-RTOS Version 1</b></a> along with RTX4 reference implementation
 \b RTOS2                  |<a href="../../RTOS/html/index.html"><b>CMSIS-RTOS Version 2</b></a> along with RTX5 reference implementation
-\b SVD                    |<a href="../../SVD/html/index.html"><b>CMSIS-SVD</b></a> example
-\b Utilities              |PACK.xsd (<a href="../../Pack/html/pack_Example.html"><b>CMSIS-Pack</b></a> schema file), PackChk.exe (checking tool for software packs), \n CMSIS-SVD.xsd (<a href="../../SVD/html/index.html"><b>CMSIS-SVD</b></a> schema file), SVDConv.exe (conversion tool for SVD files)
+\b SVD                    |<a href="../../SVD/html/index.html"><b>CMSIS-SVD</b></a>
+\b Utilities              |PACK.xsd (<a href="../../Pack/html/packFormat.html#PackSchema"><b>CMSIS-Pack</b> schema file</a>), PackChk.exe (checking tool for software packs), \n CMSIS-SVD.xsd (<a href="../../SVD/html/schema_1_2_gr.html"><b>CMSIS-SVD</b> schema file</a>), SVDConv.exe (conversion tool for SVD files), \n CPRJ.xsd (<a href="../../Build/html/projectDescriptionSchema.html"><b>CMSIS-Build</b> schema file</a>)
 
 <hr>
 */
diff --git a/CMSIS/DoxyGen/Pack/src/devices_schema.txt b/CMSIS/DoxyGen/Pack/src/devices_schema.txt
index 2d1c226..ef4ee98 100644
--- a/CMSIS/DoxyGen/Pack/src/devices_schema.txt
+++ b/CMSIS/DoxyGen/Pack/src/devices_schema.txt
@@ -2068,7 +2068,7 @@
   <tr>
     <td class="XML-Token">Realtek Semiconductor:124</td>
     <td>Realtek Semiconductor</td>
-    <td>http://www.realtek.com.tw</td>
+    <td>http://www.realtek.com</td>
   </tr>
   <tr>
     <td class="XML-Token">Redpine Signals:125</td>
diff --git a/linter.py b/linter.py
index 1dcb486..cdbb0ed 100644
--- a/linter.py
+++ b/linter.py
@@ -280,10 +280,13 @@
     """Documentation"""
     self.debug("Using pattern '%s'", pattern)
     for html in iglob(pattern, recursive=True):
-      self.info("%s: Checking links ...", html)
       parser = AdvancedHTMLParser()
       parser.parseFile(html)
       links = parser.getElementsByTagName("a")
+      if links:
+        self.info("%s: Checking links ...", html)
+      else:
+        self.debug("%s: No links found...", html)
       for l in links:
         href = l.getAttribute("href")
         if href:
@@ -292,6 +295,9 @@
             try:
               self.info("%s: Checking link to %s...", html, href.geturl())
               r = requests.head(href.geturl(), headers={'user-agent' : "packlint/1.0"}, timeout=10)
+              if r.status_code >= 400:
+                self.debug(f'HEAD method failed with HTTP-{r.status_code}, falling back to GET method.')
+                r = requests.get(href.geturl(), headers={'user-agent': "packlint/1.0"}, timeout=10)
               r.raise_for_status()
             except (requests.exceptions.ConnectionError, requests.exceptions.HTTPError) as e:
               exc_info = None