程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8196|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  q. V+ l7 [3 o8 e- B9 Q0 q5 f
#include <linux/init.h>; x  b4 d% |: f% B
#include <linux/module.h>
! v3 |5 Y$ J1 r9 J9 g#include <linux/kernel.h>6 B# L+ Y" g  s7 m7 S  d
#include <linux/types.h>3 ?- Q  k+ [  @4 F  {- h
#include <linux/gpio.h>
. j! t- C+ I6 x  \( G#include <linux/leds.h>1 o. v* p' Q6 A: }2 o: X6 T2 ^
#include <linux/platform_device.h>
( P2 _4 q7 D9 R  d6 }& g* t) K3 X7 M+ K! @
#include <asm/mach-types.h>
8 b' g' k) n% {) a. L+ _) A#include <asm/mach/arch.h>- U5 z/ ^: q& e- o2 {8 l0 N: G
#include <mach/da8xx.h>! z: z5 j3 l6 }: h: s2 g* e' X+ d
#include <mach/mux.h>2 k+ X, }) I1 W' q0 U9 m
  B. D( d0 E5 R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, m4 [# [* M" F9 _. ]8 `/ U# i4 o8 X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. S3 Z/ [; T" M/ A6 o* M: Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" M+ c( y: l7 t: l' D# b3 A& v#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# d: n3 i" b  u7 Q- f

( ^2 u2 C9 s. _7 A0 o1 z$ `& I/* assign the tl som board LED-GPIOs*/
1 p9 E7 [! C; F$ X( Istatic const short da850_evm_tl_user_led_pins[] = {5 n5 {* j% V# f* |4 |0 g4 e4 d/ M
        /* These pins are definition at <mach/mux.h> file */
% }2 G# m1 m+ Y. j. {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* k( D) O* F1 G, \3 |( J% h; q        -1
9 J5 u9 A$ X4 S+ i6 `1 i7 ^};( Z. v, w: l/ v5 o; c4 W
, y6 }7 T7 V  i2 n# ^' l. X* Z) b
static struct gpio_led da850_evm_tl_leds[] = {
. ~4 h: c, z$ W  [  I! N        {4 W6 ~5 r4 J/ N' k3 a
                .active_low = 0,( {5 I2 b( e* w$ u
                .gpio = DA850_USER_LED0,6 O5 ]. |; k9 L
                .name = "user_led0",4 n  Q" v% W2 K' f# L6 g1 c
                .default_trigger = "default-on",
# K7 X$ u9 t# g        },
' Q0 }: \6 P! k9 a1 k        {
2 Z( E; A3 K  k, j                .active_low = 0,
" W/ d5 Z2 I5 ?' x* I/ u6 M                .gpio = DA850_USER_LED1,
* y2 _6 B/ x& O" W                .name = "user_led1",1 \) L* a. V- o6 v  ^  }
                .default_trigger = "default-on",
, ?7 H# p1 `# I+ X8 [' x        },
7 q! r  n  p' B4 g% V; ~, a: K7 @! t        {. T! E1 W$ [/ E( ^6 K
                .active_low = 0,
% F1 A" Z% Y6 z- x! m: `: N! |                .gpio = DA850_USER_LED2,, i8 [0 G/ p$ u5 J
                .name = "user_led2",
/ N3 j$ I( b: o) P  R- R# s6 N7 @                .default_trigger = "default-on",6 y- y; Q. Y  I9 ~( {
        },! z/ [/ k& Z# H! q+ G4 l
        {
1 Y1 b0 H5 [. H( j9 T) f% z                .active_low = 0,
3 h. ~- J5 l9 J; T                .gpio = DA850_USER_LED3,
. G" p' W) ]* H6 n) k3 {' E5 Q                .name = "user_led3",: \; q; u/ `" ~8 Y& k; _9 `, P; d
                .default_trigger = "default-on",  G, v- E( a: Z7 J. u6 e% n
        },# F+ O8 I+ D' U* E
};" N; r8 f. Z8 \7 d

: ]4 E2 _9 h& X& y, Bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 Z, p% x( t* z8 e
        .leds = da850_evm_tl_leds,' R( {9 ?% M( L5 l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 y" d( n- Q7 d! k
};
; v, i: l, R# b% t- E9 K  [$ m  ^9 W5 V; v& B& V
static void led_dev_release(struct device *dev)
% j5 D& Q% E) m. `. m( e{
$ q0 p5 S3 f3 i! K: ?+ r};: X5 h( S) x$ f4 ]! O

  l3 b4 s0 F+ z$ Ystatic struct platform_device da850_evm_tl_leds_device = {: J/ d3 q/ b% @7 W& H
        .name                = "leds-gpio",
# M: W4 I. L! T        .id                = 1,
/ L$ M9 [* h$ ]/ b9 w  S        .dev = {& p4 j% [" r4 V' {+ Z& B5 r2 {" l' c
                .platform_data = &da850_evm_tl_leds_pdata,
/ ?. Y, L& B! d% H7 C                .release = led_dev_release,8 N: @3 F( B( H  |! f6 u, f" C
        }
6 U1 G0 p! e+ A' K2 f};' k! I. ^( q' p5 a2 q% ~' m$ E
+ o8 N) j" {; n
static int __init led_platform_init(void)
4 [- @; J/ @0 s( c0 t, R  B{& Y7 ]* C$ N& X$ C
        int ret;5 H  P  A9 r* C
#if 0
9 F0 x- u/ j# n( U" V        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 [6 O0 q4 z0 I. Q3 }! `' |/ L        if (ret)
8 S1 R) {- c2 h% e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- Z, M7 Y  M3 A2 U% @$ a- j                                "%d\n", ret);$ ^4 J! ]+ t7 }  r8 Q8 t7 `
#endif# R5 D8 s/ R# J9 \5 ~
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 G# G- O' ^; i5 e& c9 {        if (ret)
; R5 S* v; l. S* m7 P                pr_warning("Could not register som GPIO expander LEDS");5 T5 I7 x- Z; g( e* a" M0 P" V
        else6 \, v% Z* B0 b6 @8 m. W
                printk(KERN_INFO "LED register sucessful!\n");
4 U. E' w7 d  h+ F
# k% w8 x  B! H        return ret;3 o: W7 R: X! \6 X2 j
}* G7 x/ v- l1 G
" R, r% m$ t. X
static void __exit led_platform_exit(void)
2 z8 L: F& Z; w$ X{* D7 Y: Z# @* Y9 u3 u7 x
        platform_device_unregister(&da850_evm_tl_leds_device);1 G6 S4 {. D2 A* n2 `2 n+ }7 F0 S
, {. i# d1 a# \
        printk(KERN_INFO "LED unregister!\n");
/ T) l! h' j) {) X}
# O/ w4 B! G- Y) }, R3 r$ X/ R; q3 ]! s, P/ w( O) T
module_init(led_platform_init);' r  ?. O/ w9 A/ J" ~- k+ q5 l
module_exit(led_platform_exit);4 H2 i/ ^& P" \& G% }+ f  F

) k& ]4 T" E- b% p0 ?  N' Y* gMODULE_DESCRIPTION("Led platform driver");
1 l' I1 V& q8 lMODULE_AUTHOR("Tronlong");
  E, M  Q: }# |& S5 F" j; c) S2 UMODULE_LICENSE("GPL");; ?) A: r2 L' b8 |) z* {
9 }4 Z8 M  K+ u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-20 05:35 , Processed in 0.040974 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表