mirror of
https://github.com/apache/nuttx.git
synced 2025-12-07 01:44:23 +08:00
Compare commits
16 Commits
nuttx-11.0
...
nuttx-9.0.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4401e5b280 | ||
|
|
ca367a259b | ||
|
|
ac880be495 | ||
|
|
60ec2b408c | ||
|
|
a1f1c53856 | ||
|
|
0b8fe43a69 | ||
|
|
cb16dfbc30 | ||
|
|
4817a71d40 | ||
|
|
8d3f953a31 | ||
|
|
666d1d612f | ||
|
|
db52820e7c | ||
|
|
8b4cfbbd85 | ||
|
|
028e03c99c | ||
|
|
e4d5363935 | ||
|
|
a5540fdfb6 | ||
|
|
c269a6e7ad |
260
.github/workflows/build.yml
vendored
260
.github/workflows/build.yml
vendored
@@ -14,101 +14,201 @@ name: Build
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- 'releases/*'
|
||||
tags:
|
||||
|
||||
jobs:
|
||||
Fetch-Source:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Determine Target Branches
|
||||
id: gittargets
|
||||
shell: bash
|
||||
run: |
|
||||
TESTING_REF="master" # Always use master for testing
|
||||
OS_REF=""
|
||||
APPS_REF=""
|
||||
|
||||
REF=$GITHUB_REF
|
||||
|
||||
# If a base ref is set this is a PR and we will want to use
|
||||
# the base ref instead of the ref that triggered the event
|
||||
if [ ${GITHUB_BASE_REF} ]; then
|
||||
REF=refs/heads/$GITHUB_BASE_REF
|
||||
fi
|
||||
|
||||
echo "Working with ref: $REF"
|
||||
|
||||
# We modify for all tags and release branches
|
||||
if [[ $REF =~ refs/heads/releases/*|refs/tags/* ]]; then
|
||||
if [[ $REF =~ refs/heads/* ]]
|
||||
then
|
||||
REF_NAME=${REF##refs/heads/}
|
||||
echo "Working with a branch: $REF_NAME"
|
||||
else
|
||||
REF_NAME=${REF##refs/tags/}
|
||||
echo "Working with a tag: $REF_NAME"
|
||||
fi
|
||||
|
||||
# Determine the repo and leave that unset to use the normal checkout behavior
|
||||
# of using the merge commit instead of HEAD
|
||||
case $GITHUB_REPOSITORY in
|
||||
"apache/incubator-nuttx")
|
||||
# OS
|
||||
echo "Triggered by change in OS"
|
||||
APPS_REF=$REF_NAME
|
||||
;;
|
||||
|
||||
"apache/incubator-nuttx-apps" )
|
||||
# APPS
|
||||
OS_REF=$REF_NAME
|
||||
echo "Triggered by change in APPS"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Trigger by change on $GITHUB_REPOSITORY. This is unexpected."
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo ::set-output name=os_ref::$OS_REF
|
||||
echo ::set-output name=apps_ref::$APPS_REF
|
||||
echo ::set-output name=testing_ref::$TESTING_REF
|
||||
|
||||
- name: Checkout nuttx repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: apache/incubator-nuttx
|
||||
ref: ${{ steps.gittargets.outputs.os_ref }}
|
||||
path: sources/nuttx
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Checkout apps repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: apache/incubator-nuttx-apps
|
||||
ref: ${{ steps.gittargets.outputs.apps_ref }}
|
||||
path: sources/apps
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Checkout testing repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: apache/incubator-nuttx-testing
|
||||
ref: ${{ steps.gittargets.outputs.testing_ref }}
|
||||
path: sources/testing
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Create Source Bundle
|
||||
run: tar -czf sources.tar.gz sources
|
||||
- name: Archive Source Bundle
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: source-bundle
|
||||
path: sources.tar.gz
|
||||
|
||||
- name: Cache Source
|
||||
id: cache-source
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: sources
|
||||
key: build-sources-${{ github.run_id }}
|
||||
|
||||
Linux:
|
||||
runs-on: ubuntu-18.04
|
||||
needs: Fetch-Source
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DOCKER_BUILDKIT: 1
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
boards: [arm-01, arm-02, arm-03, arm-04, arm-05, arm-06, arm-07, arm-08, arm-09, arm-10, arm-11, arm-12, arm-13, mips-riscv-x86-xtensa, sim]
|
||||
boards: [arm-01, arm-02, arm-03, arm-04, arm-05, arm-06, arm-07, arm-08, arm-09, arm-10, arm-11, arm-12, arm-13, mips-riscv-x86-xtensa, sim]
|
||||
|
||||
steps:
|
||||
- name: Checkout nuttx repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: apache/incubator-nuttx
|
||||
path: nuttx
|
||||
fetch-depth: 0
|
||||
- name: Fetch Cached Source
|
||||
id: cache-source
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: sources-cache
|
||||
key: build-sources-${{ github.run_id }}
|
||||
- name: Prevent Updating Source Cache
|
||||
if: steps.cache-source.outputs.cache-hit == 'true'
|
||||
run: mv sources-cache sources
|
||||
- name: Download Source Artifact
|
||||
if: steps.cache-source.outputs.cache-hit != 'true'
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: source-bundle
|
||||
path: ./
|
||||
- name: Extract Source Artifact
|
||||
if: steps.cache-source.outputs.cache-hit != 'true'
|
||||
run: tar -xf sources.tar.gz
|
||||
|
||||
- name: Fetch nuttx tags
|
||||
run: |
|
||||
cd nuttx
|
||||
git fetch --tags
|
||||
|
||||
- name: Checkout apps repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: apache/incubator-nuttx-apps
|
||||
path: apps
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Checkout testing repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: apache/incubator-nuttx-testing
|
||||
path: testing
|
||||
|
||||
- name: Docker Login
|
||||
uses: azure/docker-login@v1
|
||||
with:
|
||||
login-server: docker.pkg.github.com
|
||||
username: ${GITHUB_ACTOR}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Run builds
|
||||
uses: ./testing/.github/actions/ci-container
|
||||
env:
|
||||
BLOBDIR: /tools/blobs
|
||||
with:
|
||||
run: |
|
||||
cd testing
|
||||
./cibuild.sh -x -G testlist/${{matrix.boards}}.dat
|
||||
- name: Docker Login
|
||||
uses: azure/docker-login@v1
|
||||
with:
|
||||
login-server: docker.pkg.github.com
|
||||
username: ${GITHUB_ACTOR}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Docker Pull
|
||||
uses: nick-invision/retry@v1
|
||||
with:
|
||||
timeout_minutes: 10
|
||||
max_attempts: 3
|
||||
retry_wait_seconds: 10
|
||||
command: docker pull docker.pkg.github.com/apache/incubator-nuttx-testing/nuttx-ci-linux
|
||||
|
||||
- name: Run builds
|
||||
uses: ./sources/testing/.github/actions/ci-container
|
||||
env:
|
||||
BLOBDIR: /tools/blobs
|
||||
with:
|
||||
run: |
|
||||
git -C sources/nuttx fetch --tags
|
||||
cd sources/testing
|
||||
./cibuild.sh -x -G testlist/${{matrix.boards}}.dat
|
||||
|
||||
macOS:
|
||||
runs-on: macos-10.15
|
||||
|
||||
needs: Fetch-Source
|
||||
strategy:
|
||||
matrix:
|
||||
boards: [arm-11, mips-riscv-x86-xtensa, sim]
|
||||
|
||||
boards: [arm-12, mips-riscv-x86-xtensa, sim]
|
||||
steps:
|
||||
- name: Checkout nuttx repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: apache/incubator-nuttx
|
||||
path: nuttx
|
||||
fetch-depth: 0
|
||||
- name: Fetch Cached Source
|
||||
id: cache-source
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: sources-cache
|
||||
key: build-sources-${{ github.run_id }}
|
||||
- name: Prevent Updating Source Cache
|
||||
if: steps.cache-source.outputs.cache-hit == 'true'
|
||||
run: mv sources-cache sources
|
||||
- name: Download Source Artifact
|
||||
if: steps.cache-source.outputs.cache-hit != 'true'
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: source-bundle
|
||||
path: ./
|
||||
- name: Extract Source Artifact
|
||||
if: steps.cache-source.outputs.cache-hit != 'true'
|
||||
run: tar -xf sources.tar.gz
|
||||
|
||||
- name: Fetch nuttx tags
|
||||
run: |
|
||||
cd nuttx
|
||||
git fetch --tags
|
||||
- name: Restore Tools Cache
|
||||
id: cache-tools
|
||||
uses: actions/cache@v1
|
||||
env:
|
||||
cache-name: ${{ runner.os }}-cache-tools
|
||||
with:
|
||||
path: prebuilt
|
||||
key: ${{ runner.os }}-tools-${{ hashFiles('./sources/testing/cibuild.sh') }}
|
||||
|
||||
- name: Checkout apps repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: apache/incubator-nuttx-apps
|
||||
path: apps
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Checkout testing repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: apache/incubator-nuttx-testing
|
||||
path: testing
|
||||
|
||||
- name: Restore cache
|
||||
id: cache-tools
|
||||
uses: actions/cache@v1
|
||||
env:
|
||||
cache-name: ${{ runner.os }}-cache-tools
|
||||
with:
|
||||
path: prebuilt
|
||||
key: ${{ runner.os }}-tools-${{ hashFiles('./testing/cibuild.sh') }}
|
||||
|
||||
- name: Run builds
|
||||
run: |
|
||||
cd testing
|
||||
./cibuild.sh -i -x -G testlist/${{matrix.boards}}.dat
|
||||
- name: Run Builds
|
||||
run: |
|
||||
git -C sources/nuttx fetch --tags
|
||||
cd sources/testing
|
||||
./cibuild.sh -i -x -G testlist/${{matrix.boards}}.dat
|
||||
|
||||
5
.github/workflows/check.yml
vendored
5
.github/workflows/check.yml
vendored
@@ -30,8 +30,7 @@ jobs:
|
||||
- name: Check Pull Request
|
||||
run: |
|
||||
cd nuttx
|
||||
ranges=`git log -1 --merges --pretty=format:%P | awk -F" " '{ print $1 ".." $2 }'`
|
||||
git log --oneline $ranges
|
||||
commits=`git log --reverse --format=format:%H $ranges`
|
||||
commits=`git log -1 --merges --pretty=format:%P | awk -F" " '{ print $1 ".." $2 }'`
|
||||
git log --oneline $commits
|
||||
echo "../nuttx/tools/checkpatch.sh -g $commits"
|
||||
../nuttx/tools/checkpatch.sh -g $commits
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
|
||||
<p>Last Updated: November 21, 2019</p>
|
||||
<p>Last Updated: April 16, 2020</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -120,7 +120,7 @@
|
||||
|
||||
<p>
|
||||
<b>Goals</b>.
|
||||
NuttX is a real timed embedded operating system (RTOS).
|
||||
NuttX is a real time embedded operating system (RTOS).
|
||||
Its goals are:
|
||||
<p>
|
||||
<center><table width="90%">
|
||||
@@ -1450,11 +1450,13 @@
|
||||
<h2>Released Versions</h2>
|
||||
<p>
|
||||
In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available.
|
||||
The current release is NuttX 8.2.
|
||||
NuttX 8.2 is the 133<sup>rd</sup> release of NuttX.
|
||||
It was released on November 16, 2019, and is available for download from the
|
||||
<a href="https://bitbucket.org/nuttx/nuttx/downloads/">Bitbucket.org</a> website.
|
||||
Note that the release consists of two tarballs: <code>nuttx-8.2.tar.gz</code> and <code>apps-8.2.tar.gz</code>.
|
||||
The current release is NuttX 9.0.
|
||||
NuttX 9.0 is the 134<sup>rd</sup> release of NuttX.
|
||||
It was released on April 30, 2020, and is available for download from the
|
||||
<a href="https://nuttx.apache.org/">nuttx.apache.org</a> website.
|
||||
Note that the release consists of two tarballs:
|
||||
<code>apache-nuttx-9.0.x-incubating.tar.gz</code> and
|
||||
<code>apache-nuttx-apps-9.0.x-incubating.tar.gz</code>.
|
||||
Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information).
|
||||
</p>
|
||||
|
||||
@@ -1463,17 +1465,23 @@
|
||||
<ul>
|
||||
<li><b>nuttx</b>.
|
||||
<ul><p>
|
||||
Release notes for NuttX 8.2 are available <a href="https://bitbucket.org/nuttx/nuttx/downloads/">here</a>.
|
||||
Release notes for all released versions on NuttX are available in the <a href="https://bitbucket.org/nuttx/nuttx/src/master/ReleaseNotes" target="_blank">Bitbucket GIT</a>.
|
||||
The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the <a href="https://bitbucket.org/nuttx/nuttx/src/master/ChangeLog" target="_blank">Bitbucket GIT</a>.
|
||||
Release notes for all released versions on NuttX are available in <a href="https://github.com/apache/incubator-nuttx/blob/master/ReleaseNotes" target="_blank">GitHub</a>.
|
||||
The ReleaseNotes for the current release is at the bottom of that file.
|
||||
The ChangeLog for all releases of NuttX is available in the ChangeLog file
|
||||
that can viewed in <a href="https://github.com/apache/incubator-nuttx/blob/master/ChangeLog" target="_blank">GitHub</a>.
|
||||
The ChangeLog for the current release is at the bottom of that file.
|
||||
</p>
|
||||
</li></ul>
|
||||
<li><b>apps</b>.
|
||||
<ul><p>
|
||||
Release notes for NuttX 8.2 are available <a href="https://bitbucket.org/nuttx/apps/downloads/">here</a>.
|
||||
Release notes for all released versions on NuttX are available in the <a href="https://bitbucket.org/nuttx/nuttx/src/master/ReleaseNotes" target="_blank">Bitbucket GIT</a>
|
||||
The ChangeLog for the all releases of <code>apps/</code> is available in the ChangeLog file that can viewed in the <a href="https://bitbucket.org/nuttx/apps/src/master/ChangeLog.txt" target="_blank">Bitbucket GIT</a>.
|
||||
Release notes for all released versions on NuttX are available in <a
|
||||
href="https://github.com/apache/incubator-nuttx/blob/master/ReleaseNotes"
|
||||
target="_blank">GitHub</a>
|
||||
The ReleaseNotes for the current release is at the bottom of that file.
|
||||
The ChangeLog for all releases of <code>apps/</code> is available in the
|
||||
ChangeLog file that can viewed in the <a
|
||||
href="https://github.com/apache/incubator-nuttx/blob/master/ChangeLog"
|
||||
target="_blank">GitHub</a>.
|
||||
The ChangeLog for the current release is at the bottom of that file.
|
||||
</p>
|
||||
</li></ul>
|
||||
@@ -1524,7 +1532,7 @@
|
||||
<li><a href="#armcortexm0">ARM Cortex-M0/M0+</a> (13)</li>
|
||||
<li><a href="#armcortexm3">ARM Cortex-M3</a> (39)</li>
|
||||
<li><a href="#armcortexm4">ARM Cortex-M4</a> (59)</li>
|
||||
<li><a href="#armcortexm7">ARM Cortex-M7</a> (14)</li>
|
||||
<li><a href="#armcortexm7">ARM Cortex-M7</a> (15)</li>
|
||||
</ul>
|
||||
<li>Atmel AVR
|
||||
<ul>
|
||||
@@ -1575,6 +1583,8 @@
|
||||
<ul>
|
||||
<li><a href="#nr5mxx"> NEXT RISC-V NR5Mxx</a> (1)</li>
|
||||
<li><a href="#gwgap8">GreenWaves GAP8 (1)</a></li>
|
||||
<li><a href="#k210">Kendryte K210 (1)</a></li>
|
||||
<li><a href="#artya7">Litex (1)</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Xtensa LX6:
|
||||
@@ -1585,7 +1595,7 @@
|
||||
<li>ZiLOG
|
||||
<ul>
|
||||
<li><a href="#zilogz16f">ZiLOG ZNEO Z16F</a> (2)</li>
|
||||
<li><a href="#zilogez80acclaim">ZiLOG eZ80 Acclaim!</a> (1)</li>
|
||||
<li><a href="#zilogez80acclaim">ZiLOG eZ80 Acclaim!</a> (4)</li>
|
||||
<li><a href="#zilogz8encore">ZiLOG Z8Encore!</a> (2)</li>
|
||||
<li><a href="#zilogz180">ZiLOG Z180</a> (1)</li>
|
||||
<li><a href="#zilogz80">ZiLOG Z80</a> (2)</li>
|
||||
@@ -2477,6 +2487,11 @@
|
||||
While not ready for prodcution use, the Beaglebone Black port is functional and will be the basis for a more extensive development.
|
||||
Additional work in progress to extend this port and more capable is anticipated in NuttX-7.29.
|
||||
</li>
|
||||
<li>
|
||||
<b>NuttX-9.0</b>
|
||||
CAN support was added.
|
||||
Clock Configuration was added.
|
||||
</li>
|
||||
<li>
|
||||
<b>NuttX-7.31</b>.
|
||||
An LCD driver was added in NuttX-7.31.
|
||||
@@ -2932,6 +2947,9 @@ nsh>
|
||||
Current development efforts are focused on porting the NuttX window system (NX)
|
||||
to work with the Evaluation Kits OLED display.
|
||||
</p>
|
||||
<p>
|
||||
NuttX-9.0 added protected build support to the LM3S6965-ek.
|
||||
</p>
|
||||
<p><small>
|
||||
<b>NOTE</b>: As it is configured now, you MUST have a network connected.
|
||||
Otherwise, the NSH prompt will not come up because the Ethernet
|
||||
@@ -3338,6 +3356,10 @@ nsh>
|
||||
<b>NuttX-8.2</b>
|
||||
Added PWM and TIM drivers for the G0. From Daniel Pereira Volpato.
|
||||
</li>
|
||||
<li>
|
||||
<b>NuttX-9.0</b>
|
||||
Added I2C support for F0, L0 and G0.
|
||||
</li>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -5814,6 +5836,10 @@ Mem: 29232 5920 23312 23312
|
||||
These unverfied drivers include: SPI, I2C, DMA, USB.
|
||||
Also refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/boards/arm/samd5e5/metro-m4/README.txt" target="_blank">README</a> file for further information about the current state of the port.
|
||||
</p>
|
||||
<p>
|
||||
Nuttx-9.0 added basic support for Microchip SAME54 Xplained Pro board.
|
||||
An ethernet driver was also added to the SAME5x familly.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -5907,6 +5933,12 @@ Mem: 29232 5920 23312 23312
|
||||
From Eduard Niesner contributed a PWM driver.
|
||||
Added UID access from Valmantas Paliksa.
|
||||
USB High speed driver was added for STM32F7 series by Ramtin Amin.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><b>NuttX-9.0</b>.
|
||||
Added serial DMA support.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
@@ -6034,6 +6066,11 @@ Mem: 29232 5920 23312 23312
|
||||
Added support for SDMMC and FLASH progmem. From David Sidrane.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><b>NuttX-9.0</b>.
|
||||
Added QSPI support for the STM32H7.
|
||||
</p>
|
||||
</li>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -6112,6 +6149,9 @@ Mem: 29232 5920 23312 23312
|
||||
<p><b>NuttX-8.2</b>.
|
||||
An LCD drivers was added in NuttX-8.2 by Fabio Balzano.
|
||||
</p>
|
||||
<p><b>NuttX-9.0</b>.
|
||||
Added USB Device support.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
@@ -6429,6 +6469,25 @@ Mem: 29232 5920 23312 23312
|
||||
This is a great, stable starting point for anyone interested in fleshing out the x86 port!
|
||||
Refer to the NuttX <a href="https://bitbucket.org/nuttx/nuttx/src/master/boards/x86/qemu/qemu-i486/README.txt" target="_blank">README</a> file for further information.
|
||||
</p>
|
||||
<p>
|
||||
<b>QEMU/Intel64</b>
|
||||
An x86_64 flat address port was ported in NuttX-9.0.
|
||||
It consists of the following feautres:
|
||||
<ul>
|
||||
<li> - Runs in x86_64 long mode.</li>
|
||||
<li> - Configurable SSE/AVX support.</li>
|
||||
<li>- IRQs are managed by LAPIC(X2APIC) and IOAPIC.</li>
|
||||
<li>- Used TSC_DEADLINE or APIC timer for systick.</li>
|
||||
<li>- Pages are now maps the kernel at 4GB~, but changeable.</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
This kernel with ostest have been tested with
|
||||
<ul>
|
||||
<li>Qemu/KVM on a Xeon 2630v4 machine.</li>
|
||||
<li>Bochs with broadwell_ult emulation.</li>
|
||||
</ul>
|
||||
</p>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -6662,6 +6721,10 @@ Mem: 29232 5920 23312 23312
|
||||
<b>NuttX-7.31</b>.
|
||||
Abdelatif Guettouche contributed DMA support.
|
||||
</p>
|
||||
<p>
|
||||
<b>NuttX-9.0</b>.
|
||||
Cache operations were implemented.
|
||||
</p>
|
||||
</ul>
|
||||
</p>
|
||||
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/boards/mips/pic32mz/pic32mz-starterkit/README.txt" target="_blank">README</a> file for further information.
|
||||
@@ -6779,6 +6842,9 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);
|
||||
<ul>
|
||||
<li><b>NuttX-8.2</b></li>
|
||||
Basic support for the RX65N family was released by Anjana with support for two boards: The RSK RX65N-2MB and the GR-Rose.
|
||||
<li><b>NuttX-9.0</b>
|
||||
RTC driver for the RX65N was added.
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -6805,6 +6871,15 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);
|
||||
The GAP8 features a RI5CY core called Fabric Controller(FC), and a cluster of 8 RI5CY cores that runs at a bit slower speed.
|
||||
The GAP8 is an implementation of the opensource PULP platform, a Parallel-Ultra-Low-Power design.
|
||||
</p>
|
||||
<p>
|
||||
<li><a href="#k210">Sipeed Maix bit</a></li>
|
||||
Initial support for the Sipeed Maix bit board was added in Nuttx-9.0.
|
||||
</p>
|
||||
<p>
|
||||
<a name="artya7"><b>Litex ARTY_A7</b></a>.
|
||||
Support for the Digilent ARTY_A7 board along with CPU VexRiscV SOC were added
|
||||
in NuttX-9.0.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -6876,12 +6951,13 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);
|
||||
<td>
|
||||
<p>
|
||||
<b>Zilog eZ80Acclaim! Microcontroller</b>.
|
||||
There are three eZ80Acclaim! ports:
|
||||
There are four eZ80Acclaim! ports:
|
||||
</p>
|
||||
<ul>
|
||||
<li>The ZiLOG ez80f0910200kitg development kit.
|
||||
<li>The ZiLOG ez80f0910200zcog-d development kit.
|
||||
<li>The MakerLisp CPU board.
|
||||
<li>The Z20x DIY computing system.
|
||||
</ul>
|
||||
<p>
|
||||
All three boards are based on the eZ80F091 part and all use the Zilog ZDS-II
|
||||
@@ -6912,6 +6988,14 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);
|
||||
A USB keyboard adapter provides for standard keyboard input.
|
||||
Data storage and interchange is accomplished by a SPI-based micro-SD card.
|
||||
</p>
|
||||
<p>
|
||||
<b>NuttX-9.0:</b>
|
||||
Support for the Z20X board was added. The port includes:
|
||||
- Initial support to have a functional nsh.
|
||||
- Support for SPI and W25 FLASH.
|
||||
- A bootloader capable of writing code to the W25 FLASH and load it to the
|
||||
SRAM to be executed.
|
||||
</p>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -2223,7 +2223,7 @@ priority of the calling task is returned.
|
||||
<b>NOTE:</b>
|
||||
Behavior of features related to <i>task group</i>s depend of NuttX configuration settings.
|
||||
See the discussion of "Parent and Child Tasks," below.
|
||||
See also the <a href="http://www.nuttx.org/doku.php?id=wiki:nxinternal:nxtasking">NuttX Threading Wiki</a> page and the <a href="http://www.nuttx.org/doku.php?id=wiki:nxinternal:tasksnthreads">Tasks vs. Threads FAQ</a> for additional information on tasks and threads in NuttX.
|
||||
See also the <a href="https://cwiki.apache.org/confluence/display/NUTTX/NuttX+Tasking">NuttX Tasking</a> page and the <a href="https://cwiki.apache.org/confluence/display/NUTTX/Tasks+vs.+Threads+FAQ">Tasks vs. Threads FAQ</a> for additional information on tasks and threads in NuttX.
|
||||
</small></blockquote>
|
||||
<p>
|
||||
A <i>task group</i> terminates when the last thread within the group exits.
|
||||
@@ -3920,7 +3920,7 @@ interface of the same name.
|
||||
<pre>
|
||||
#include <semaphore.h>
|
||||
#include <time.h>
|
||||
int sem_wait(sem_t *sem, const struct timespec *abstime);
|
||||
int sem_timedwait(sem_t *sem, const struct timespec *abstime);
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@@ -3948,7 +3948,7 @@ interface of the same name.
|
||||
<li>0 (<code>OK</code>), or -1 (<code>ERROR</code>) is unsuccessful
|
||||
</ul>
|
||||
<p>
|
||||
If <code>sem_wait</code> returns -1 (<code>ERROR</code>) then the cause of the failure
|
||||
If <code>sem_timedwait</code> returns -1 (<code>ERROR</code>) then the cause of the failure
|
||||
will be indicated by the thread-specific <a href="#ErrnoAccess"><code>errno</code></a>.
|
||||
The following lists the possible values for <a href="#ErrnoAccess"><code>errno</code></a>:
|
||||
<p>
|
||||
@@ -4006,7 +4006,7 @@ returns without blocking.
|
||||
<ul>
|
||||
<li>0 (<code>OK</code>) or -1 (<code>ERROR</code>) if unsuccessful
|
||||
</ul>
|
||||
If <code>sem_wait</code> returns -1 (<code>ERROR</code>) then the cause of the failure
|
||||
If <code>sem_trywait</code> returns -1 (<code>ERROR</code>) then the cause of the failure
|
||||
will be indicated by the thread-specific <a href="#ErrnoAccess"><code>errno</code></a>.
|
||||
The following lists the possible values for <a href="#ErrnoAccess"><code>errno</code></a>:
|
||||
<p>
|
||||
@@ -4165,7 +4165,7 @@ Otherwise, an -1 (<code>ERROR</code>) will be returned and the <code>errno</code
|
||||
<b>Returned Value:</b>
|
||||
</p>
|
||||
<p>
|
||||
If successful, the <code>sem_getprotocol()</code> function will return zero (<code>OK</code>).
|
||||
If successful, the <code>sem_setprotocol()</code> function will return zero (<code>OK</code>).
|
||||
Otherwise, an -1 (<code>ERROR</code>) will be returned and the <code>errno</code> value will be set to indicate the nature of the error.
|
||||
</p>
|
||||
<p>
|
||||
@@ -4936,7 +4936,7 @@ interface of the same name.
|
||||
<blockquote><small>
|
||||
<b>NOTE:</b>
|
||||
Behavior of features related to <i>task group</i>s depend of NuttX configuration settings.
|
||||
See the <a href="http://www.nuttx.org/doku.php?id=wiki:nxinternal:nxtasking">NuttX Threading Wiki</a> page and the <a href="http://www.nuttx.org/doku.php?id=wiki:nxinternal:tasksnthreads">Tasks vs. Threads FAQ</a> for additional information on tasks and threads in NuttX.
|
||||
See also the <a href="https://cwiki.apache.org/confluence/display/NUTTX/NuttX+Tasking">NuttX Tasking</a> page and the <a href="https://cwiki.apache.org/confluence/display/NUTTX/Tasks+vs.+Threads+FAQ">Tasks vs. Threads FAQ</a> for additional information on tasks and threads in NuttX.
|
||||
</small></blockquote>
|
||||
<p>
|
||||
<b>Signaling Multi-threaded Task Groups</b>.
|
||||
@@ -5750,7 +5750,7 @@ be sent.
|
||||
<blockquote><small>
|
||||
<b>NOTE:</b>
|
||||
Behavior of features related to <i>task group</i>s depend of NuttX configuration settings.
|
||||
See the <a href="http://www.nuttx.org/doku.php?id=wiki:nxinternal:nxtasking">NuttX Threading Wiki</a> page and the <a href="http://www.nuttx.org/doku.php?id=wiki:nxinternal:tasksnthreads">Tasks vs. Threads FAQ</a> for additional information on tasks and threads in NuttX.
|
||||
See also the <a href="https://cwiki.apache.org/confluence/display/NUTTX/NuttX+Tasking">NuttX Tasking</a> page and the <a href="https://cwiki.apache.org/confluence/display/NUTTX/Tasks+vs.+Threads+FAQ">Tasks vs. Threads FAQ</a> for additional information on tasks and threads in NuttX.
|
||||
</small></blockquote>
|
||||
<p>
|
||||
The following pthread interfaces are supported in some form by NuttX:
|
||||
|
||||
148
ReleaseNotes
148
ReleaseNotes
@@ -26618,3 +26618,151 @@ information):
|
||||
fixes the violation of the portable POSIX OS interface, but also
|
||||
permits use of ROM disks in PROTECTED and KERNEL modes. From
|
||||
Gregory Nutt.
|
||||
|
||||
NuttX-9.0.0 Release Notes
|
||||
-------------------------
|
||||
|
||||
This is the first release of NuttX as Apache NuttX (Incubating) and represents our first major milestone as a Podling of the Apache Software Foundation's Incubator. This release is the culmination of nearly 6 months of hard work and includes several new architectures and drivers, and numerous improvements and bug fixes to the core RTOS, drivers, and networking subsystems.
|
||||
|
||||
* Major Changes to Core OS
|
||||
* Bugfixes
|
||||
- nxsem_wait_uninterruptible() now returns if the task is canceled.
|
||||
- Fix a bug in pthread_condwait() that was improperly re-initializing the mutex.
|
||||
- In sched_setpriority(), fix functions called inside a DEBUGASSERT that were eliminated when assertions are disable
|
||||
|
||||
* Compatibility Concerns
|
||||
|
||||
- The configuration option CONFIG_CAN_PASS_STRUCT is now removed. Previously, it was used (at the cost of breaking standards support) to support older versions of the SDCC compiler that couldn't pass structs/unions as functions' parameters. A newer version of the compiler has resolved the issue.
|
||||
|
||||
* Major Changes to Build System
|
||||
- Add a post-build function that allows extending the build with CPU/board-specific logic.
|
||||
- Add build tools to simplify ZDS-II tool usage.
|
||||
- mkexport.sh: Deal with ARCHSCRIPT containing multiple files.
|
||||
- Various nxstyle improvements.
|
||||
|
||||
* Architectural Support
|
||||
* New architecture support
|
||||
- Add support for RISCV-64
|
||||
- Add support for x86_64 (tested on QEMU)
|
||||
- Add support for ELF64
|
||||
- Add a port to the NUCLEO-F429ZI board
|
||||
- Add support for the STM32H747I-DISCO board
|
||||
- Add Z20X board support and bootloader to upload code from the W25 flash to SRAM
|
||||
- Add initial support for Litex with softcore CPU VexRiscV SoC
|
||||
- Add support for the Digilent ARTY_A7 board to test the Litex port
|
||||
- Added initial support for Sipeed Maix Bit board with Kendryte K210 processor
|
||||
- New architectural support: ez80f92
|
||||
- Flat address x86_64 port of Nuttx
|
||||
- Support to run NuttX on ESP32 QEMU
|
||||
- Initial support for Sipeed Maix Bit board with Kendryte K210 processor
|
||||
- Add initial support for Kendryte K210 processor in SMP mode
|
||||
- NXP S32K11x (Cortex-M0+) and S32K14x (Cortext-M4F): Add support for NXP automotive boards.
|
||||
- XMC 4700 (Cortex-M4F)
|
||||
* Architectures with significant improvements
|
||||
- ESP32 loadable modules support
|
||||
- i.MX RT: FLEXIO clock config logic.
|
||||
- Fix the clock configuration for the i.MX RT family
|
||||
- i.MX RT: Add ability to run from OCRAM
|
||||
- SAMA5D27 peripheral support - USB Host working
|
||||
- z20x: Add W25 bootloader
|
||||
- i.MX RT: Add USB Device support
|
||||
- STM32, STM32F7, STM32H7 add SPI DMATHRESHOLD
|
||||
- Improve the simulator timer
|
||||
- 64-bit modules on macOS simulator
|
||||
- z20x: Add XTP2046 SPI support; add timer support
|
||||
- RX65N RTC Driver added
|
||||
- NXP Freedom K28F Board SD-Card support
|
||||
- STM32H7: support SDRAM via FMC peripheral
|
||||
- LM3S6965-ek: Add PROTECTED build support
|
||||
- STM32H7: Added IWDG and WWDG, power management (sleep/stop/standby), WKUP pin configuration
|
||||
- SAMV71: Add read UID implementation and move flash functions to RAM
|
||||
- i.MX RT: Fix interrupts storm (serial & I2C)
|
||||
- Various fixes and cosmetic changes to the CxD56xx architecture
|
||||
- Fix SiFive FE310 related code (comments, improve serial irq handling, initial int status)
|
||||
- Implement QSPI for STM32H7
|
||||
- Improvements for the nRF52 port: I2C, SPI, GPIO support
|
||||
- Updates for LPC17xx/40xx serial
|
||||
- Adds basic support for Microchip SAM E54 Xplained Pro board
|
||||
- Adds an Ethernet driver for the SAME5x family (based on the SAMA5 GMAC driver)
|
||||
- Add CDC ECM Ethernet over USB 2.0 High Speed (tested on SAMA5D36-Xplained board)
|
||||
- Simulator: Reimplement simulator uart on top of serial driver framework
|
||||
- NXP S32K1XX peripheral clock fixes
|
||||
- Fix syscall stack alignment on armv7-m
|
||||
- Fix flash_erase(page) when page >= 256 for STM32L4 family
|
||||
- Add partial support for the NETLINK poll() operation.
|
||||
- Add serial DMA support for STM32F7
|
||||
- Add AM335x Clock Configuration
|
||||
- Add I2C support for AM335x
|
||||
- Add configuration to fine tune LPI2C Timeout for iMXRT
|
||||
- Add CAN support to AM335x
|
||||
- Add I2C support to STM32F0/L0/G0
|
||||
- Kinetis LPC SDCard improvements
|
||||
- Replace the busy polling with work_queue in the ethernet driver of simulator
|
||||
- Fix Xtensa's SMP support to follow same logic from other SMP archs
|
||||
- PIC32MZ: SPI transfers can be configured to use DMA.
|
||||
- PIC32MZ: Implement cache operations.
|
||||
* Driver Support
|
||||
* New drivers
|
||||
- New driver for the ADS7828 I2C analog to digital converter
|
||||
- driver/ioexpander: New driver for PCA9538 I2C I/O expander
|
||||
- New driver type for battery monitor ICs.
|
||||
- Driver for the BQ769x0 battery monitor IC.
|
||||
- Add Support for Quectel EC20 4G LTE Module USB CDC/ACM
|
||||
- Add QSPI-based Winbond NOR FLASH driver
|
||||
* Drivers with significant improvements
|
||||
- Update all the drivers to check return value of nxsem_wait_uninterruptible().
|
||||
- MCP9844 shutdown mode support
|
||||
- fcntl: add O_CLOEXEC flag, add O_CLOEXEC/FD_CLOEXEC support
|
||||
- CDC-ECM Ethernet over USB 2.0 HS
|
||||
- smartfs improvements: Handling of duplicate sectors, support fsck to check and repair the smartfs file system, and recover SPI Flash from initial error state.
|
||||
- Various fixes for USBDEV driver: Remove unnecessary reset logic, fix descriptor type mismatch when dual speed is enabled, fix invalid/unsupported command processing, and fix string ID calculation.
|
||||
- Handle size zero in umm_malloc.c and umm_realloc.c, which causes a system freeze in kernel mode.
|
||||
- Fixed compilation issue with poll fds notification.
|
||||
- Report POLLHUP and POLLERR in 'revents' regardless the requested 'events' set.
|
||||
* Networking
|
||||
- Telnet: Fix/Refine CTRL+C to work on telnet
|
||||
- TCP: Fix of faulty TCP sequence increments
|
||||
- netdb: Fix netdb to query IPv4 and IPv6 addresses regardless the server address type
|
||||
- Netlink sockets may be set to non-blocking
|
||||
- Improve TUN and SLIP, refine Control+C Handling in Telnet
|
||||
- Sockets: Add socket MSG_DONTWAIT support
|
||||
- Network Loopback Driver: Add a configuration option to control packet size
|
||||
- Network IOCTLs: Add FIONBIO network IOCTL support
|
||||
- NFS: Support IPv4 and TCP
|
||||
- Sockets: Add IP and TCP socket options needed by iperf3
|
||||
- Netlink: Add support for asynchronous Netlink responses
|
||||
- TCP: Monitor TCP_POLL/TCP_NEWDATA/TCP_BACKLOG per the request like UDP counterpart
|
||||
- TCP: Minor design improvement to TCP delayed ACKs
|
||||
- DNS IPv4/IPv6 Dual Host Support: When IPv4/IPv6 Dual Stack is enabled, queries both types of addresses regardless of whether the DNS server is accessed via IPv4 or IPv6. As a result, getaddrinfo() may return a mixed (IPv4/IPv6) address list.
|
||||
|
||||
* Applications
|
||||
* Improvements
|
||||
- Extend netutils and netinit to work with only Netlink sockets enabled
|
||||
- Add getprime program to check multi-thread performance
|
||||
- Improve zmodem send performance
|
||||
- Add simple HTS221, LSM303 and LSM6DSL examples
|
||||
- Improve to gs2200m wiki performance
|
||||
- Improve telnet server and enable it to listen on both IPv4 and IPv6
|
||||
- Improve ntpclient logic
|
||||
- Improve wapi to save configuration to file system
|
||||
- Improve wapi to skip associate if ssid is invalid
|
||||
- Improve cmd_nfsmount to use IPv4 and IPv6
|
||||
- Improve ostest for SMP and non-SMP configurations
|
||||
- Improve UDP to avoid using standard symbols
|
||||
- Improve dhcpd to include configurable timeout and retry count
|
||||
* Bugfixes
|
||||
- Correct format when printing ARP tablet entries
|
||||
- Ensure /bin/ping and ping work at the same time
|
||||
- Correct backward conditional logic in dhcpd_leaseexpired()
|
||||
- Fix several problems on ftpd
|
||||
- Fix dhcpd issue reported on Issue #17
|
||||
- Fix sendmail example to run on a local SMTP server
|
||||
- Fix buffer overflow on netlib
|
||||
- Fix compile errors in loopback mode of the tcpblaster
|
||||
- Fix stack corruption in ELF task test
|
||||
- Fix errors in NoBlockRecv and BlockRecv tests of usrsocktest
|
||||
- Fix ipforward IP Header issue for IPv4
|
||||
- Fix wrongly swapped parity options of CU program
|
||||
- Fix slcd to avoid using priv->fd before initializing it
|
||||
- Fix (tcp, udp)blaster to build on macOS
|
||||
- Correct the buffer type of base64 program
|
||||
|
||||
67
TODO
67
TODO
@@ -1,4 +1,4 @@
|
||||
NuttX TODO List (Last updated January 3, 2019)
|
||||
NuttX TODO List (Last updated April 18, 2020)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This file summarizes known NuttX bugs, limitations, inconsistencies with
|
||||
@@ -27,7 +27,7 @@ nuttx/:
|
||||
(12) File system/Generic drivers (fs/, drivers/)
|
||||
(10) Graphics Subsystem (graphics/)
|
||||
(1) Build system / Toolchains
|
||||
(3) Linux/Cygwin simulation (arch/sim)
|
||||
(2) Linux/Cygwin simulation (arch/sim)
|
||||
(5) ARM (arch/arm/)
|
||||
|
||||
apps/ and other Add-Ons:
|
||||
@@ -2556,69 +2556,6 @@ o Linux/Cygwin simulation (arch/sim)
|
||||
Status: Open
|
||||
Priority: Low
|
||||
|
||||
Title: SMP SIMULATION ISSUES
|
||||
Description: The configuration has basic support SMP testing. The simulation
|
||||
supports the emulation of multiple CPUs by creating multiple
|
||||
pthreads, each run a copy of the simulation in the same process
|
||||
address space.
|
||||
|
||||
At present, the SMP simulation is not fully functional: It does
|
||||
operate on the simulated CPU threads for a few context switches
|
||||
then fails during a setjmp() operation. I suspect that this is
|
||||
not an issue with the NuttX SMP logic but more likely some chaos
|
||||
in the pthread controls. I have seen similar such strange behavior
|
||||
other times that I have tried to use setjmp/longmp from a signal
|
||||
handler! Like when I tried to implement simulated interrupts
|
||||
using signals.
|
||||
|
||||
Apparently, if longjmp is invoked from the context of a signal
|
||||
handler, the result is undefined:
|
||||
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1318.htm
|
||||
|
||||
You can enable SMP for ostest configuration by enabling:
|
||||
|
||||
-# CONFIG_EXPERIMENTAL is not set
|
||||
+CONFIG_EXPERIMENTAL=y
|
||||
|
||||
+CONFIG_SPINLOCK=y
|
||||
+CONFIG_SMP=y
|
||||
+CONFIG_SMP_NCPUS=2
|
||||
+CONFIG_SMP_IDLETHREAD_STACKSIZE=2048
|
||||
|
||||
You also must enable near-realtime-performance otherwise even long
|
||||
timeouts will expire before a CPU thread even has a chance to
|
||||
execute.
|
||||
|
||||
-# CONFIG_SIM_WALLTIME is not set
|
||||
+CONFIG_SIM_WALLTIME=y
|
||||
|
||||
And you can enable some additional debug output with:
|
||||
|
||||
-# CONFIG_DEBUG_SCHED is not set
|
||||
+CONFIG_DEBUG_SCHED=y
|
||||
|
||||
-# CONFIG_SCHED_INSTRUMENTATION is not set
|
||||
+CONFIG_SCHED_INSTRUMENTATION=y
|
||||
|
||||
The NSH configuration can also be forced to run SMP, but
|
||||
suffers from the same quirky behavior. I can be made
|
||||
reliable if you modify arch/sim/src/up_idle.c so that
|
||||
the IDLE loop only runs for CPU0. Otherwise, often
|
||||
simuart_post() will be called from CPU1 and it will try
|
||||
to restart NSH on CPU0 and, again, the same quirkiness
|
||||
occurs.
|
||||
|
||||
But for example, this command:
|
||||
|
||||
nsh> sleep 1 &
|
||||
|
||||
will execute the sleep command on CPU1 which has worked
|
||||
every time that I have tried it (which is not too many
|
||||
times).
|
||||
|
||||
Status: Open
|
||||
Priority: Low, SMP is important, but SMP on the simulator is not
|
||||
|
||||
o ARM (arch/arm/)
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
@@ -83,8 +83,8 @@
|
||||
* a way to label the versions we are using
|
||||
*/
|
||||
|
||||
#define KINETIS_PMC_VERSION_UKN -1 /* What was in nuttx prior to 2/22/2017 */
|
||||
#define KINETIS_PMC_VERSION_01 1 /* Verified Document Number: K60P144M150SF3RM Rev. 3, November 2014 */
|
||||
#define KINETIS_PMC_VERSION_UKN (-1) /* What was in nuttx prior to 2/22/2017 */
|
||||
#define KINETIS_PMC_VERSION_01 1 /* Verified to Document Number: K60P144M150SF3RM Rev. 3, November 2014 */
|
||||
#define KINETIS_PMC_VERSION_04 4 /* Verified to Document Numbers:
|
||||
* K20P64M72SF1RM Rev. 1.1, Dec 2012
|
||||
* K64P144M120SF5RM Rev. 2, January 2014
|
||||
@@ -136,13 +136,13 @@
|
||||
/* PMC Register Configuration */
|
||||
|
||||
# define KINETIS_PMC_HAS_REGSC 1 /* SoC has REGSC Register */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# define KINETIS_PMC_HAS_REGSC_ACKISO 1 /* SoC has REGSC[ACKISO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPRS /* SoC has REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC has REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC has REGSC[REGFPM] */
|
||||
# define KINETIS_PMC_HAS_REGSC_BGEN 1 /* SoC has REGSC[BGEN] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_TRAMPO /* SoC has REGSC[TRAMPO] */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# define KINETIS_PMC_HAS_REGSC_ACKISO 1 /* SoC has REGSC[ACKISO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPRS /* SoC does not have REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC does not have REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC does not have REGSC[REGFPM] */
|
||||
# define KINETIS_PMC_HAS_REGSC_BGEN 1 /* SoC has REGSC[BGEN] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_TRAMPO /* SoC does not have REGSC[TRAMPO] */
|
||||
|
||||
# undef KINETIS_PMC_HAS_HVDSC1 /* SoC does not have HVDSC1 Register */
|
||||
# undef KINETIS_PMC_HAS_SRAMCTL /* SoC does not have SRAMCTL Register */
|
||||
@@ -160,20 +160,20 @@
|
||||
|
||||
#elif defined(CONFIG_ARCH_CHIP_MK28FN2M0VMI15) || defined(CONFIG_ARCH_CHIP_MK28FN2M0CAU15R)
|
||||
|
||||
/* Verified to Document Number: Verified to Document Number: K28P210M150SF5RM Rev. 4, August 2017 */
|
||||
/* Verified to Document Number: K28P210M150SF5RM Rev. 4, August 2017 */
|
||||
|
||||
# define KINETIS_PMC_VERSION KINETIS_PMC_VERSION_05
|
||||
|
||||
/* PMC Register Configuration */
|
||||
|
||||
# define KINETIS_PMC_HAS_REGSC 1 /* SoC has REGSC Register */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# define KINETIS_PMC_HAS_REGSC_ACKISO 1 /* SoC has REGSC[ACKISO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPRS /* SoC has REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC has REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC has REGSC[REGFPM] */
|
||||
# define KINETIS_PMC_HAS_REGSC_BGEN 1 /* SoC has REGSC[BGEN] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_TRAMPO /* SoC has REGSC[TRAMPO] */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# define KINETIS_PMC_HAS_REGSC_ACKISO 1 /* SoC has REGSC[ACKISO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPRS /* SoC does not have REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC does not have REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC does not have REGSC[REGFPM] */
|
||||
# define KINETIS_PMC_HAS_REGSC_BGEN 1 /* SoC has REGSC[BGEN] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_TRAMPO /* SoC does not have REGSC[TRAMPO] */
|
||||
|
||||
# define KINETIS_PMC_HAS_HVDSC1 1 /* SoC has HVDSC1 Register */
|
||||
# define KINETIS_PMC_HAS_SRAMCTL 1 /* SoC has SRAMCTL Register */
|
||||
@@ -268,13 +268,13 @@
|
||||
/* PMC Register Configuration */
|
||||
|
||||
# define KINETIS_PMC_HAS_REGSC 1 /* SoC has REGSC Register */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# define KINETIS_PMC_HAS_REGSC_ACKISO 1 /* SoC has REGSC[ACKISO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPRS /* SoC has REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC has REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC has REGSC[REGFPM] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_BGEN /* SoC has REGSC[BGEN] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_TRAMPO /* SoC has REGSC[TRAMPO] */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# define KINETIS_PMC_HAS_REGSC_ACKISO 1 /* SoC has REGSC[ACKISO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPRS /* SoC does not have REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC does not have REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC does not have REGSC[REGFPM] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_BGEN /* SoC does not have REGSC[BGEN] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_TRAMPO /* SoC does not have REGSC[TRAMPO] */
|
||||
|
||||
# undef KINETIS_PMC_HAS_HVDSC1 /* SoC does not have HVDSC1 Register */
|
||||
# undef KINETIS_PMC_HAS_SRAMCTL /* SoC does not have SRAMCTL Register */
|
||||
@@ -291,13 +291,13 @@
|
||||
/* PMC Register Configuration */
|
||||
|
||||
# define KINETIS_PMC_HAS_REGSC 1 /* SoC has REGSC Register */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# define KINETIS_PMC_HAS_REGSC_ACKISO 1 /* SoC has REGSC[ACKISO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPRS /* SoC has REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC has REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC has REGSC[REGFPM] */
|
||||
# define KINETIS_PMC_HAS_REGSC_BGEN 1 /* SoC has REGSC[BGEN] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_TRAMPO /* SoC has REGSC[TRAMPO] */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# define KINETIS_PMC_HAS_REGSC_ACKISO 1 /* SoC has REGSC[ACKISO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPRS /* SoC does not have REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC does not have REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC does not have REGSC[REGFPM] */
|
||||
# define KINETIS_PMC_HAS_REGSC_BGEN 1 /* SoC has REGSC[BGEN] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_TRAMPO /* SoC does not have REGSC[TRAMPO] */
|
||||
|
||||
# undef KINETIS_PMC_HAS_HVDSC1 /* SoC does not have HVDSC1 Register */
|
||||
# undef KINETIS_PMC_HAS_SRAMCTL /* SoC does not have SRAMCTL Register */
|
||||
@@ -317,20 +317,20 @@
|
||||
#elif defined(CONFIG_ARCH_CHIP_MK66FN2M0VMD18) || defined(CONFIG_ARCH_CHIP_MK66FX1M0VMD18) || \
|
||||
defined(CONFIG_ARCH_CHIP_MK66FN2M0VLQ18) || defined(CONFIG_ARCH_CHIP_MK66FX1M0VLQ18)
|
||||
|
||||
/* Verified to Document Number: Document Number: K66P144M180SF5RMV2 Rev. 2, May 2015 */
|
||||
/* Verified to Document Number: K66P144M180SF5RMV2 Rev. 2, May 2015 */
|
||||
|
||||
# define KINETIS_PMC_VERSION KINETIS_PMC_VERSION_04
|
||||
|
||||
/* PMC Register Configuration */
|
||||
|
||||
# define KINETIS_PMC_HAS_REGSC 1 /* SoC has REGSC Register */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# define KINETIS_PMC_HAS_REGSC_ACKISO 1 /* SoC has REGSC[ACKISO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPRS /* SoC has REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC has REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC has REGSC[REGFPM] */
|
||||
# define KINETIS_PMC_HAS_REGSC_BGEN 1 /* SoC has REGSC[BGEN] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_TRAMPO /* SoC has REGSC[TRAMPO] */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# define KINETIS_PMC_HAS_REGSC_ACKISO 1 /* SoC has REGSC[ACKISO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPRS /* SoC does not have REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC does not have REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC does not have REGSC[REGFPM] */
|
||||
# define KINETIS_PMC_HAS_REGSC_BGEN 1 /* SoC has REGSC[BGEN] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_TRAMPO /* SoC does not have REGSC[TRAMPO] */
|
||||
|
||||
# undef KINETIS_PMC_HAS_HVDSC1 /* SoC does not have HVDSC1 Register */
|
||||
# undef KINETIS_PMC_HAS_SRAMCTL /* SoC does not have SRAMCTL Register */
|
||||
@@ -339,20 +339,22 @@
|
||||
# error "Unsupported Kinetis chip"
|
||||
#endif
|
||||
|
||||
/* Use the catch all configuration for the PMC based on the implementations in nuttx prior 2/3/2017 */
|
||||
/* Use the catch all configuration for the PMC based on the implementations in
|
||||
* NuttX prior to 2/3/2017
|
||||
*/
|
||||
|
||||
#if KINETIS_PMC_VERSION == KINETIS_PMC_VERSION_UKN
|
||||
|
||||
/* PMC Register Configuration */
|
||||
|
||||
# define KINETIS_PMC_HAS_REGSC 1 /* SoC has REGSC Register */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_ACKISO /* SoC has REGSC[ACKISO] */
|
||||
# define KINETIS_PMC_HAS_REGSC_VLPRS 1 /* SoC has REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC has REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC has REGSC[REGFPM] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_BGEN /* SoC has REGSC[BGEN] */
|
||||
# define KINETIS_PMC_HAS_REGSC_TRAMPO 1 /* SoC has REGSC[TRAMPO] */
|
||||
# define KINETIS_PMC_HAS_REGSC_REGONS 1 /* SoC has REGSC[REGONS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_ACKISO /* SoC does not have REGSC[ACKISO] */
|
||||
# define KINETIS_PMC_HAS_REGSC_VLPRS 1 /* SoC has REGSC[VLPRS] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_VLPO /* SoC does not have REGSC[VLPO] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_REGFPM /* SoC does not have REGSC[REGFPM] */
|
||||
# undef KINETIS_PMC_HAS_REGSC_BGEN /* SoC does not have REGSC[BGEN] */
|
||||
# define KINETIS_PMC_HAS_REGSC_TRAMPO 1 /* SoC has REGSC[TRAMPO] */
|
||||
|
||||
# undef KINETIS_PMC_HAS_HVDSC1 /* SoC does not have HVDSC1 Register */
|
||||
# undef KINETIS_PMC_HAS_SRAMCTL /* SoC does not have SRAMCTL Register */
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#
|
||||
############################################################################
|
||||
|
||||
ifeq ($(VIDEO_ISX012),y)
|
||||
ifeq ($(CONFIG_VIDEO_ISX012),y)
|
||||
CSRCS += isx012.c
|
||||
endif
|
||||
|
||||
|
||||
@@ -211,12 +211,10 @@ struct mm_freenode_s
|
||||
FAR struct mm_freenode_s *blink;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_BUILD_FLAT) || defined(__KERNEL__)
|
||||
struct mm_delaynode_s
|
||||
{
|
||||
struct mm_delaynode_s *flink;
|
||||
};
|
||||
#endif
|
||||
|
||||
/* What is the size of the freenode? */
|
||||
|
||||
@@ -258,11 +256,9 @@ struct mm_heap_s
|
||||
|
||||
struct mm_freenode_s mm_nodelist[MM_NNODES];
|
||||
|
||||
#if defined(CONFIG_BUILD_FLAT) || defined(__KERNEL__)
|
||||
/* Free delay list, for some situation can't do free immdiately */
|
||||
|
||||
struct mm_delaynode_s *mm_delaylist;
|
||||
#endif
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
|
||||
@@ -175,11 +175,9 @@ void mm_initialize(FAR struct mm_heap_s *heap, FAR void *heapstart,
|
||||
heap->mm_nregions = 0;
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_BUILD_FLAT) || defined(__KERNEL__)
|
||||
/* Initialize mm_delaylist */
|
||||
|
||||
heap->mm_delaylist = NULL;
|
||||
#endif
|
||||
|
||||
/* Initialize the node array */
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
|
||||
#ifdef CONFIG_NET_6LOWPAN
|
||||
|
||||
#ifdef CONFIG_WIRELESS_IEEE802154
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
@@ -150,7 +151,6 @@ static inline bool sixlowpan_eaddrnull(FAR const uint8_t *eaddr)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_WIRELESS_IEEE802154
|
||||
int sixlowpan_meta_data(FAR struct radio_driver_s *radio,
|
||||
FAR const struct ieee802_txmetadata_s *pktmeta,
|
||||
FAR struct ieee802154_frame_meta_s *meta)
|
||||
|
||||
@@ -113,17 +113,18 @@
|
||||
* sixlowpan_eaddrfromip() handle short and extended addresses,
|
||||
* respectively.
|
||||
*
|
||||
* 128 112 96 80 64 48 32 16
|
||||
* ---- ---- ---- ---- ---- ---- ---- ----
|
||||
* fe80 0000 0000 0000 0000 00ff fe00 xx00 1-byte short address IEEE 48-bit MAC
|
||||
* xxxx 0000 0000 0000 0000 00ff fe00 xxxx 2-byte short address IEEE 48-bit MAC
|
||||
* xxxx 0000 0000 0000 xxxx xxxx xxxx xxxx 8-byte extended address IEEE EUI-64
|
||||
* 128 112 96 80 64 48 32 16
|
||||
* ---- ---- ---- ---- ---- ---- ---- ----
|
||||
* fe80 0000 0000 0000 0000 00ff fe00 xx00 1-byte short address 48-bit MAC
|
||||
* xxxx 0000 0000 0000 0000 00ff fe00 xxxx 2-byte short address 48-bit MAC
|
||||
* xxxx 0000 0000 0000 xxxx xxxx xxxx xxxx 8-byte extended address EUI-64
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CONFIG_NET_STARPOINT
|
||||
#ifdef HAVE_BYTEADDR
|
||||
static void sixlowpan_baddrfromip(const net_ipv6addr_t ipaddr, FAR uint8_t *baddr)
|
||||
static void sixlowpan_baddrfromip(const net_ipv6addr_t ipaddr,
|
||||
FAR uint8_t *baddr)
|
||||
{
|
||||
/* Big-endian uint16_t to byte order */
|
||||
|
||||
@@ -132,7 +133,8 @@ static void sixlowpan_baddrfromip(const net_ipv6addr_t ipaddr, FAR uint8_t *badd
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SADDR
|
||||
static void sixlowpan_saddrfromip(const net_ipv6addr_t ipaddr, FAR uint8_t *saddr)
|
||||
static void sixlowpan_saddrfromip(const net_ipv6addr_t ipaddr,
|
||||
FAR uint8_t *saddr)
|
||||
{
|
||||
/* Big-endian uint16_t to byte order */
|
||||
|
||||
@@ -142,7 +144,8 @@ static void sixlowpan_saddrfromip(const net_ipv6addr_t ipaddr, FAR uint8_t *sadd
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EADDR
|
||||
static void sixlowpan_eaddrfromip(const net_ipv6addr_t ipaddr, FAR uint8_t *eaddr)
|
||||
static void sixlowpan_eaddrfromip(const net_ipv6addr_t ipaddr,
|
||||
FAR uint8_t *eaddr)
|
||||
{
|
||||
FAR uint8_t *eptr = eaddr;
|
||||
int i;
|
||||
@@ -169,10 +172,10 @@ static void sixlowpan_eaddrfromip(const net_ipv6addr_t ipaddr, FAR uint8_t *eadd
|
||||
*
|
||||
* Description:
|
||||
* sixlowpan_nexthopaddr(): If the destination is on-link, extract the
|
||||
* IEEE 802.15.14 destination address from the destination IP address. If the
|
||||
* destination is not reachable directly, use the routing table (if available)
|
||||
* or fall back to the default router IP address and use the router IP address
|
||||
* to derive the IEEE 802.15.4 MAC address.
|
||||
* IEEE 802.15.14 destination address from the destination IP address.
|
||||
* If the destination is not reachable directly, use the routing table
|
||||
* (if available) or fall back to the default router IP address and use
|
||||
* the router IP address to derive the IEEE 802.15.4 MAC address.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
@@ -230,13 +233,13 @@ int sixlowpan_nexthopaddr(FAR struct radio_driver_s *radio,
|
||||
* handles a tagged address union which may either a short or and
|
||||
* extended destination address.
|
||||
*
|
||||
* 128 112 96 80 64 48 32 16
|
||||
* ---- ---- ---- ---- ---- ---- ---- ----
|
||||
* ffxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx Multicast address (RFC 3513)
|
||||
* ff02 0000 0000 0000 0000 0000 0000 0001 All nodes multicast group
|
||||
* xxxx 0000 0000 0000 0000 00ff fe00 xx00 1-byte short address IEEE 48-bit MAC
|
||||
* xxxx 0000 0000 0000 0000 00ff fe00 xxxx 2-byte short address IEEE 48-bit MAC
|
||||
* xxxx 0000 0000 0000 xxxx xxxx xxxx xxxx 8-byte extended address IEEE EUI-64
|
||||
* 128 112 96 80 64 48 32 16
|
||||
* ---- ---- ---- ---- ---- ---- ---- ----
|
||||
* ffxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx Multicast address (RFC 3513)
|
||||
* ff02 0000 0000 0000 0000 0000 0000 0001 All nodes multicast group
|
||||
* xxxx 0000 0000 0000 0000 00ff fe00 xx00 1-byte short address 48-bit MAC
|
||||
* xxxx 0000 0000 0000 0000 00ff fe00 xxxx 2-byte short address 48-bit MAC
|
||||
* xxxx 0000 0000 0000 xxxx xxxx xxxx xxxx 8-byte extended address EUI-64
|
||||
*
|
||||
* In the case there the IEEE 802.15.4 node functions as an endpoint in a
|
||||
* start topology, the destination address will, instead, be the address
|
||||
@@ -310,8 +313,9 @@ int sixlowpan_destaddrfromip(FAR struct radio_driver_s *radio,
|
||||
|
||||
/* Otherwise, the destination MAC address is encoded in the IP address */
|
||||
|
||||
/* If the address is link-local, or matches the prefix of the local address,
|
||||
* the interface identifier can be extracted from the lower bits of the address.
|
||||
/* If the address is link-local, or matches the prefix of the local
|
||||
* address, the interface identifier can be extracted from the lower
|
||||
* bits of the address.
|
||||
*/
|
||||
|
||||
if (!sixlowpan_islinklocal(ipaddr) &&
|
||||
@@ -414,11 +418,11 @@ int sixlowpan_destaddrfromip(FAR struct radio_driver_s *radio,
|
||||
* address from an IEEE802.15.4 short address (saddr), extended address
|
||||
* (eaddr), or other variable length radio addresses.
|
||||
*
|
||||
* 128 112 96 80 64 48 32 16
|
||||
* ---- ---- ---- ---- ---- ---- ---- ----
|
||||
* fe80 0000 0000 0000 0000 00ff fe00 xx00 1-byte short address IEEE 48-bit MAC
|
||||
* fe80 0000 0000 0000 0000 00ff fe00 xxxx 2-byte short address IEEE 48-bit MAC
|
||||
* fe80 0000 0000 0000 xxxx xxxx xxxx xxxx 8-byte extended address IEEE EUI-64
|
||||
* 128 112 96 80 64 48 32 16
|
||||
* ---- ---- ---- ---- ---- ---- ---- ----
|
||||
* fe80 0000 0000 0000 0000 00ff fe00 xx00 1-byte short address 48-bit MAC
|
||||
* fe80 0000 0000 0000 0000 00ff fe00 xxxx 2-byte short address 48-bit MAC
|
||||
* fe80 0000 0000 0000 xxxx xxxx xxxx xxxx 8-byte extended address EUI-64
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
@@ -514,11 +518,11 @@ void sixlowpan_ipfromaddr(FAR const struct netdev_varaddr_s *addr,
|
||||
* IEEE802.15.4 MAC addresses. sixlowpan_destaddrfromip() is intended to
|
||||
* handle a tagged address or any size.
|
||||
*
|
||||
* 128 112 96 80 64 48 32 16
|
||||
* ---- ---- ---- ---- ---- ---- ---- ----
|
||||
* fe80 0000 0000 0000 0000 00ff fe00 xx00 1-byte short address IEEE 48-bit MAC
|
||||
* fe80 0000 0000 0000 0000 00ff fe00 xxxx 2-byte short address IEEE 48-bit MAC
|
||||
* fe80 0000 0000 0000 xxxx xxxx xxxx xxxx 8-byte extended address IEEE EUI-64
|
||||
* 128 112 96 80 64 48 32 16
|
||||
* ---- ---- ---- ---- ---- ---- ---- ----
|
||||
* fe80 0000 0000 0000 0000 00ff fe00 xx00 1-byte short address 48-bit MAC
|
||||
* fe80 0000 0000 0000 0000 00ff fe00 xxxx 2-byte short address 48-bit MAC
|
||||
* fe80 0000 0000 0000 xxxx xxxx xxxx xxxx 8-byte extended address EUI-64
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
@@ -532,6 +536,7 @@ static inline bool sixlowpan_isbytebased(const net_ipv6addr_t ipaddr,
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SADDR
|
||||
static inline bool sixlowpan_issaddrbased(const net_ipv6addr_t ipaddr,
|
||||
FAR const uint8_t *saddr)
|
||||
{
|
||||
@@ -539,7 +544,9 @@ static inline bool sixlowpan_issaddrbased(const net_ipv6addr_t ipaddr,
|
||||
ipaddr[6] == HTONS(0xfe00) &&
|
||||
ipaddr[7] == *(uint16_t *)saddr);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EADDR
|
||||
static inline bool sixlowpan_iseaddrbased(const net_ipv6addr_t ipaddr,
|
||||
FAR const uint8_t *eaddr)
|
||||
{
|
||||
@@ -554,6 +561,7 @@ static inline bool sixlowpan_iseaddrbased(const net_ipv6addr_t ipaddr,
|
||||
ipaddr[6] == *(uint16_t *)(eaddr + 4) &&
|
||||
ipaddr[7] == *(uint16_t *)(eaddr + 6));
|
||||
}
|
||||
#endif
|
||||
|
||||
bool sixlowpan_ismacbased(const net_ipv6addr_t ipaddr,
|
||||
FAR const struct netdev_varaddr_s *addr)
|
||||
@@ -649,7 +657,9 @@ int sixlowpan_src_panid(FAR struct radio_driver_s *radio,
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* MAC802154 gives us PAN ID in Little Endinan Order, but we need it in Network Order */
|
||||
/* MAC802154 gives us PAN ID in Little Endinan Order, but we need
|
||||
* it in Network Order.
|
||||
*/
|
||||
|
||||
panid[0] = arg.u.getreq.attrval.mac.panid[1];
|
||||
panid[1] = arg.u.getreq.attrval.mac.panid[0];
|
||||
|
||||
@@ -50,7 +50,7 @@ ifneq ($(GIT_DIR),y)
|
||||
|
||||
# In case the version file does not exist
|
||||
|
||||
CONFIG_VERSION_STRING ?= "0.0"
|
||||
CONFIG_VERSION_STRING ?= "0.0.0"
|
||||
CONFIG_VERSION_BUILD ?= "0"
|
||||
|
||||
VERSION_ARG = -v $(CONFIG_VERSION_STRING) -b $(CONFIG_VERSION_BUILD)
|
||||
|
||||
@@ -44,9 +44,10 @@ include $(TOPDIR)\tools\Config.mk
|
||||
|
||||
# In case .version file does not exist
|
||||
|
||||
CONFIG_VERSION_STRING ?= "0.0"
|
||||
CONFIG_VERSION_STRING ?= "0.0.0"
|
||||
CONFIG_VERSION_MAJOR ?= 0
|
||||
CONFIG_VERSION_MINOR ?= 0
|
||||
CONFIG_VERSION_PATCH ?= 0
|
||||
CONFIG_VERSION_BUILD ?= "0"
|
||||
|
||||
# Control build verbosity
|
||||
@@ -255,6 +256,7 @@ $(TOPDIR)\.version:
|
||||
$(Q) echo CONFIG_VERSION_STRING="0" > .version
|
||||
$(Q) echo CONFIG_VERSION_MAJOR=0 >> .version
|
||||
$(Q) echo CONFIG_VERSION_MINOR=0 >> .version
|
||||
$(Q) echo CONFIG_VERSION_PATCH=0 >> .version
|
||||
$(Q) echo CONFIG_VERSION_BUILD="0" >> .version
|
||||
|
||||
include\nuttx\version.h: $(TOPDIR)\.version tools\mkversion$(HOSTEXEEXT)
|
||||
|
||||
@@ -207,11 +207,11 @@ mkconfigvars.sh
|
||||
$ tools/mkconfigvars.sh -h
|
||||
tools/mkconfigvars.sh is a tool for generation of configuration variable documentation
|
||||
|
||||
USAGE: tools/mkconfigvars.sh [-d|h] [-v <major.minor>]
|
||||
USAGE: tools/mkconfigvars.sh [-d|h] [-v <major.minor.patch>]
|
||||
|
||||
Where:
|
||||
-v <major.minor>
|
||||
The NuttX version number expressed as a major and minor number separated
|
||||
-v <major.minor.patch>
|
||||
The NuttX version number expressed as a major, minor and patch number separated
|
||||
by a period
|
||||
-d
|
||||
Enable script debug
|
||||
@@ -1129,11 +1129,11 @@ zipme.sh
|
||||
Any VCS files or directories are excluded from the final tarballs.
|
||||
|
||||
$ ./tools/zipme.sh -h
|
||||
USAGE="USAGE: ./tools/zipme.sh [-d|h|v|s] [-b <build]> [-e <exclude>] [-k <key-id>] <major.minor>"
|
||||
USAGE="USAGE: ./tools/zipme.sh [-d|h|v|s] [-b <build]> [-e <exclude>] [-k <key-id>] <major.minor.patch>"
|
||||
Examples:
|
||||
./tools/zipme.sh -s 9.0
|
||||
Create version 9.0 tarballs and sign them.
|
||||
./tools/zipme.sh -s -k XXXXXX 9.0
|
||||
./tools/zipme.sh -s 9.0.0
|
||||
Create version 9.0.0 tarballs and sign them.
|
||||
./tools/zipme.sh -s -k XXXXXX 9.0.0
|
||||
Same as above but use the key-id XXXXXX to sign the tarballs
|
||||
./tools/zipme.sh -e "*.swp tmp" 9.0
|
||||
Create the tarballs but exclude any *.swp file and the "tmp" directory.
|
||||
./tools/zipme.sh -e "*.swp tmp" 9.0.0
|
||||
Create the tarballs but exclude any .swp file and the "tmp" directory.
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
USAGE="USAGE: $0 [-d|h] [-v <major.minor>]"
|
||||
USAGE="USAGE: $0 [-d|h] [-v <major.minor.patch>]"
|
||||
ADVICE="Try '$0 -h' for more information"
|
||||
|
||||
unset VERSION
|
||||
@@ -52,8 +52,8 @@ while [ ! -z "$1" ]; do
|
||||
echo $USAGE
|
||||
echo ""
|
||||
echo "Where:"
|
||||
echo " -v <major.minor>"
|
||||
echo " The NuttX version number expressed as a major and minor number separated"
|
||||
echo " -v <major.minor.patch>"
|
||||
echo " The NuttX version number expressed as a major, minor and patch number separated"
|
||||
echo " by a period"
|
||||
echo " -d"
|
||||
echo " Enable script debug"
|
||||
|
||||
@@ -88,7 +88,7 @@ int main(int argc, char **argv, char **envp)
|
||||
exit(2);
|
||||
}
|
||||
|
||||
stream= fopen(filepath, "r");
|
||||
stream = fopen(filepath, "r");
|
||||
if (!stream)
|
||||
{
|
||||
fprintf(stderr, "open %s failed: %s\n", filepath, strerror(errno));
|
||||
@@ -99,7 +99,9 @@ int main(int argc, char **argv, char **envp)
|
||||
printf("#ifndef __INCLUDE_NUTTX_VERSION_H\n");
|
||||
printf("#define __INCLUDE_NUTTX_VERSION_H\n\n");
|
||||
generate_definitions(stream);
|
||||
printf("\n#define CONFIG_VERSION ((CONFIG_VERSION_MAJOR << 8) | (CONFIG_VERSION_MINOR))\n\n");
|
||||
printf("\n#define CONFIG_VERSION ((CONFIG_VERSION_MAJOR << 16) |\\\n"
|
||||
" (CONFIG_VERSION_MINOR << 8) |\\\n"
|
||||
" (CONFIG_VERSION_PATCH))\n\n");
|
||||
printf("#endif /* __INCLUDE_NUTTX_VERSION_H */\n");
|
||||
fclose(stream);
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ WD=`pwd`
|
||||
|
||||
# Get command line parameters
|
||||
|
||||
USAGE="USAGE: $0 [-d|-h] [-b <build>] [-v <major.minor>] <outfile-path>"
|
||||
USAGE="USAGE: $0 [-d|-h] [-b <build>] [-v <major.minor.patch>] <outfile-path>"
|
||||
ADVICE="Try '$0 -h' for more information"
|
||||
|
||||
unset VERSION
|
||||
@@ -69,9 +69,9 @@ while [ ! -z "$1" ]; do
|
||||
echo " Enable script debug"
|
||||
echo " -h"
|
||||
echo " show this help message and exit"
|
||||
echo " -v <major.minor>"
|
||||
echo " The NuttX version number expressed as a major and minor number separated"
|
||||
echo " by a period"
|
||||
echo " -v <major.minor.patch>"
|
||||
echo " The NuttX version number expressed as a major, minor and patch"
|
||||
echo " number seperated by a period"
|
||||
echo " <outfile-path>"
|
||||
echo " The full path to the version file to be created"
|
||||
exit 0
|
||||
@@ -87,6 +87,12 @@ OUTFILE=$1
|
||||
|
||||
if [ -z ${VERSION} ] ; then
|
||||
VERSION=`git tag --sort=taggerdate | tail -1 | cut -d'-' -f2`
|
||||
|
||||
# Earlier tags used the format "major.minor", append a "0" for a patch.
|
||||
|
||||
if [[ ${VERSION} =~ ^([0-9]+[\.][0-9]+)$ ]] ; then
|
||||
VERSION=${VERSION}.0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Make sure we know what is going on
|
||||
@@ -102,19 +108,27 @@ if [ -z ${OUTFILE} ] ; then
|
||||
echo "Missing path to the output file"
|
||||
echo $USAGE
|
||||
echo $ADVICE
|
||||
exit 1
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# Get the major and minor version numbers
|
||||
# Get the major, minor and patch version numbers
|
||||
|
||||
MAJOR=`echo ${VERSION} | cut -d'.' -f1`
|
||||
if [ "X${MAJOR}" = "X${VERSION}" ]; then
|
||||
echo "Missing minor version number"
|
||||
echo $USAGE
|
||||
echo $ADVICE
|
||||
exit 2
|
||||
exit 3
|
||||
fi
|
||||
|
||||
MINOR=`echo ${VERSION} | cut -d'.' -f2`
|
||||
if [ "X${MAJOR}.${MINOR}" = "X${VERSION}" ]; then
|
||||
echo "Missing patch version number"
|
||||
echo $USAGE
|
||||
echo $ADVICE
|
||||
exit 4
|
||||
fi
|
||||
PATCH=`echo ${VERSION} | cut -d'.' -f3`
|
||||
|
||||
# Get GIT information (if not provided on the command line)
|
||||
|
||||
@@ -122,7 +136,7 @@ if [ -z "${BUILD}" ]; then
|
||||
BUILD=`git log --oneline -1 | cut -d' ' -f1 2>/dev/null`
|
||||
if [ -z "${BUILD}" ]; then
|
||||
echo "GIT version information is not available"
|
||||
exit 3
|
||||
exit 5
|
||||
fi
|
||||
if [ -n "`git diff-index --name-only HEAD | head -1`" ]; then
|
||||
BUILD=${BUILD}-dirty
|
||||
@@ -137,4 +151,5 @@ echo "" >>${OUTFILE}
|
||||
echo "CONFIG_VERSION_STRING=\"${VERSION}\"" >>${OUTFILE}
|
||||
echo "CONFIG_VERSION_MAJOR=${MAJOR}" >>${OUTFILE}
|
||||
echo "CONFIG_VERSION_MINOR=${MINOR}" >>${OUTFILE}
|
||||
echo "CONFIG_VERSION_PATCH=${PATCH}" >>${OUTFILE}
|
||||
echo "CONFIG_VERSION_BUILD=\"${BUILD}\"" >>${OUTFILE}
|
||||
|
||||
@@ -50,7 +50,7 @@ EXCLPAT="
|
||||
"
|
||||
# Get command line parameters
|
||||
|
||||
USAGE="USAGE: $0 [-d|h|v|s] [-b <build]> [-e <exclude>] [-k <key-id>] <major.minor>"
|
||||
USAGE="USAGE: $0 [-d|h|v|s] [-b <build]> [-e <exclude>] [-k <key-id>] <major.minor.patch>"
|
||||
ADVICE="Try '$0 -h' for more information"
|
||||
|
||||
unset VERSION
|
||||
@@ -104,8 +104,8 @@ while [ ! -z "$1" ]; do
|
||||
echo " PGP sign the final tarballs and create digests."
|
||||
echo " -k"
|
||||
echo " PGP key ID. If not provided the default ID will be used."
|
||||
echo " <major.minor>"
|
||||
echo " The NuttX version number expressed as a major and minor number separated"
|
||||
echo " <major.minor.patch>"
|
||||
echo " The NuttX version number expressed as a major, minor and patch number separated"
|
||||
echo " by a period"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user