runtime/fe310: do peripheral initialization in an explicit call
This avoids some issues with interp in the next commit.
Этот коммит содержится в:
родитель
46ccb6793e
коммит
a9174d9184
1 изменённых файлов: 6 добавлений и 6 удалений
|
@ -46,6 +46,7 @@ func main() {
|
||||||
riscv.MSTATUS.SetBits(1 << 3) // MIE
|
riscv.MSTATUS.SetBits(1 << 3) // MIE
|
||||||
|
|
||||||
preinit()
|
preinit()
|
||||||
|
initPeripherals()
|
||||||
initAll()
|
initAll()
|
||||||
callMain()
|
callMain()
|
||||||
abort()
|
abort()
|
||||||
|
@ -76,12 +77,8 @@ func handleInterrupt() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
// initPeripherals configures periperhals the way the runtime expects them.
|
||||||
pric_init()
|
func initPeripherals() {
|
||||||
machine.UART0.Configure(machine.UARTConfig{})
|
|
||||||
}
|
|
||||||
|
|
||||||
func pric_init() {
|
|
||||||
// Make sure the HFROSC is on
|
// Make sure the HFROSC is on
|
||||||
sifive.PRCI.HFROSCCFG.SetBits(sifive.PRCI_HFROSCCFG_ENABLE)
|
sifive.PRCI.HFROSCCFG.SetBits(sifive.PRCI_HFROSCCFG_ENABLE)
|
||||||
|
|
||||||
|
@ -94,6 +91,9 @@ func pric_init() {
|
||||||
|
|
||||||
// Enable the RTC.
|
// Enable the RTC.
|
||||||
sifive.RTC.RTCCFG.Set(sifive.RTC_RTCCFG_ENALWAYS)
|
sifive.RTC.RTCCFG.Set(sifive.RTC_RTCCFG_ENALWAYS)
|
||||||
|
|
||||||
|
// Configure the UART.
|
||||||
|
machine.UART0.Configure(machine.UARTConfig{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func preinit() {
|
func preinit() {
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче