int BBBIO_PWM_Init() { int i = 0; if (memh == 0) { #ifdef BBBIO_LIB_DBG printf("BBBIO_PWM_Init: memory not mapped?\n"); #endif return 0; } /* Create Memory map */ for (i = 0 ; i < 3 ; i ++) { pwmss_ptr[i] = mmap(0, PWMSS_MMAP_LEN, PROT_READ | PROT_WRITE, MAP_SHARED, memh, PWMSS_AddressOffset[i]); if(pwmss_ptr[i] == MAP_FAILED) { #ifdef BBBIO_LIB_DBG printf("BBBIO_PWM_Init: PWMSS %d mmap failure!\n", i); #endif goto INIT_ERROR ; } ecap_ptr[i] = (void *)pwmss_ptr[i] + 0x100 ; eqep_ptr[i] = (void *)pwmss_ptr[i] + 0x180 ; epwm_ptr[i] = (void *)pwmss_ptr[i] + 0x200 ; if(!PWMSS_module_ctrl(i, 1)) { goto INIT_ERROR ; } } return 1; INIT_ERROR : BBBIO_PWM_Release(); return 0; }
/* * Class: io_silverspoon_bulldog_beagleboneblack_jni_NativePwm * Method: teardown * Signature: ()I */ JNIEXPORT void JNICALL Java_io_silverspoon_bulldog_beagleboneblack_jni_NativePwm_teardown (JNIEnv * env, jclass clazz) { BBBIO_PWM_Release(); }