furs

unfold
Login

unfold

SVD files are 'condensed' and need to be 'unfolded' or 'unpacked' before use.

$(CLEANED_SVD) $(XSL_PROC) $(UNFOLDED_SVD) $(UNFOLDER_STY)
C:circle rad 40px "$(CLEANED_SVD)" fit
arrow right 100% 
E:box rad 10px "$(XSL_PROC)" fit
arrow right 100%
G: circle rad 40px "$(UNFOLDED_SVD)" fit
F:circle rad 40px "$(UNFOLDER_STY)" fit at 1.5 s of C
arrow from F.e \
then right until even with E \
then to E.s

Makefile
$(UNFOLDED_SVD): $(CLEANED_SVD)
	$(XSL_PROC) -o $(UNFOLDED_SVD) $(UNFOLDER_STY) $(CLEANED_SVD)
$(UNFOLDER_STY)
<xsl:template match="node()">
    <xsl:choose>
      <xsl:when test="@derivedFrom">
        <xsl:variable name="var"><xsl:value-of select="@derivedFrom"/></xsl:variable>
        <xsl:copy>
            <xsl:copy-of select="name"/>
            <xsl:copy-of select="baseAddress"/>
            <xsl:copy-of select="/device/peripherals/peripheralname=$var/description"/>
            <xsl:copy-of select="/device/peripherals/peripheralname=$var/addressBlock"/>
            <xsl:copy-of select="interrupt"/>
            <xsl:copy-of select="/device/peripherals/peripheralname=$var/registers"/>
        </xsl:copy>
      </xsl:when>
      <xsl:otherwise>
        <xsl:copy>
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:copy>
      </xsl:otherwise>
    </xsl:choose>
</xsl:template>