- Timestamp:
- Dec 12, 2014, 5:36:08 PM (10 years ago)
- Location:
- soft/giet_vm/giet_xml
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_xml/xml_driver.c
r439 r472 34 34 "MEMSPACE", // Memspace 35 35 "SCHED", // Scheduler 36 "HEAP", // Heap 36 37 }; 37 38 -
soft/giet_vm/giet_xml/xml_parser.c
r439 r472 341 341 if ( (type == PERIPH_TYPE_DMA) || 342 342 (type == PERIPH_TYPE_MMC) || 343 (type == PERIPH_TYPE_ICU) || 344 (type == PERIPH_TYPE_XCU) || 345 (type == PERIPH_TYPE_TIM) ) // replicated peripheral 343 (type == PERIPH_TYPE_XCU) ) // replicated peripheral 346 344 { 347 345 cluster_xy = (cluster[cluster_id]->x << header->y_width) + … … 772 770 else if (ok && (strcmp(str, "MEMSPACE") == 0)) { vobj[vobj_index]->type = VOBJ_TYPE_MEMSPACE; } 773 771 else if (ok && (strcmp(str, "SCHED") == 0)) { vobj[vobj_index]->type = VOBJ_TYPE_SCHED; } 772 else if (ok && (strcmp(str, "HEAP") == 0)) { vobj[vobj_index]->type = VOBJ_TYPE_HEAP; } 774 773 else 775 774 { … … 1586 1585 1587 1586 1588 // The DMA, ICU, MMC, TIM, XCU peripherals can be replicated in all clusters1587 // The DMA, MMC, XCU peripherals can be replicated in all clusters 1589 1588 // but no more than one component of each type per cluster 1590 1589 … … 1599 1598 } 1600 1599 ////////////////////////////////// 1601 else if (strcmp(str, "ICU") == 0)1602 {1603 periph[periph_index]->type = PERIPH_TYPE_ICU;1604 if (found_icu || use_xcu) error = 1;1605 found_icu = 1;1606 1607 if ( periph[periph_index]->channels <1608 (header->irq_per_proc * cluster[cluster_index]->procs) )1609 {1610 printf("[XML ERROR] ICU channels smaller than PROCS * IRQ_PER_PROC\n");1611 printf(" - icu channels = %d\n - nprocs = %d\n - irq_per_proc = %d\n",1612 periph[periph_index]->channels,1613 cluster[cluster_index]->procs,1614 header->irq_per_proc );1615 exit(1);1616 }1617 }1618 //////////////////////////////////1619 1600 else if (strcmp(str, "MMC") == 0) 1620 1601 { … … 1623 1604 found_mmc = 1; 1624 1605 if ( periph[periph_index]->channels != 1 ) error = 1; 1625 }1626 //////////////////////////////////1627 else if (strcmp(str, "TIM") == 0 )1628 {1629 periph[periph_index]->type = PERIPH_TYPE_TIM;1630 if (found_timer || use_xcu) error = 1;1631 found_timer = 1;1632 if (tim_channels < periph[periph_index]->channels)1633 tim_channels = periph[periph_index]->channels;1634 1606 } 1635 1607 ////////////////////////////////// … … 1686 1658 if (strcmp(tag, "irq") == 0) 1687 1659 { 1688 if ( (periph[periph_index]->type != PERIPH_TYPE_ICU) && 1689 (periph[periph_index]->type != PERIPH_TYPE_XCU) && 1660 if ( (periph[periph_index]->type != PERIPH_TYPE_XCU) && 1690 1661 (periph[periph_index]->type != PERIPH_TYPE_PIC) ) 1691 1662 { 1692 1663 printf("[XML ERROR] periph %d in cluster(%d,%d) " 1693 " only ICU,XCU and PIC can contain IRQs",1664 " only XCU and PIC can contain IRQs", 1694 1665 periph_loc_index, cluster[cluster_index]->x, cluster[cluster_index]->y); 1695 1666 exit(1); … … 2823 2794 // replicated peripherals 2824 2795 ld_write(fdout, "seg_dma_base ", periph_vbase_array[PERIPH_TYPE_DMA]); 2825 ld_write(fdout, "seg_icu_base ", periph_vbase_array[PERIPH_TYPE_ICU]);2826 2796 ld_write(fdout, "seg_mmc_base ", periph_vbase_array[PERIPH_TYPE_MMC]); 2827 ld_write(fdout, "seg_tim_base ", periph_vbase_array[PERIPH_TYPE_TIM]);2828 2797 ld_write(fdout, "seg_xcu_base ", periph_vbase_array[PERIPH_TYPE_XCU]); 2829 2798
Note: See TracChangeset
for help on using the changeset viewer.