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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 |5 Q, u4 B8 V. {0 O6 C9 ]  u
#include <linux/init.h>6 E9 q& R" ^, I+ K8 Y4 M" o5 H" k
#include <linux/module.h>
! o( [  D$ L8 o/ |#include <linux/kernel.h>
" _5 H& `; V! u2 D7 q' j+ g#include <linux/types.h>
% D% Y* C3 E0 X6 Z5 {, B. g#include <linux/gpio.h>! D. m  x1 X) k6 {
#include <linux/leds.h>$ d7 {% O3 A* g5 |
#include <linux/platform_device.h>
7 P# I6 Y" Q; D2 I+ ?, m2 _# }/ \) |; L& K7 _0 S
#include <asm/mach-types.h>, L  H# ^0 P! P$ j( K
#include <asm/mach/arch.h>& f# t# T1 x% r! j& ], d
#include <mach/da8xx.h>6 I1 O* P0 a0 W* a
#include <mach/mux.h>
& n5 m4 h5 a9 e+ i- Q* L; L; J8 @4 t- r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. n" p2 m- m4 V#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) }0 Q; o" L) v  O0 C1 d* \
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 [. \, Q5 L0 d% p+ A#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); {! W# i) S! U4 {" f; F  H  J

- N) R! _% o* h1 w# W7 o/* assign the tl som board LED-GPIOs*/( L  O  k& f+ }$ C+ R
static const short da850_evm_tl_user_led_pins[] = {
  }1 h* x) K4 t, E        /* These pins are definition at <mach/mux.h> file */
# F* ~' d  e6 a8 G2 S        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( q0 f- |) j) H" N4 A6 f' N& A
        -1& H0 A7 q4 z+ G$ U/ K/ Z. ]/ V
};
3 e  c  e+ c" {, g
% h' K- l# ~3 y/ }. q) ^' ~static struct gpio_led da850_evm_tl_leds[] = {- `' \: W% n' W- S/ H% B0 y" l8 ^/ E
        {4 l: J+ u4 r5 E- r
                .active_low = 0,4 B1 S! C" b: n" T5 _: y
                .gpio = DA850_USER_LED0,
  ~6 l' E% e% p' e5 N                .name = "user_led0",& {% N! q  P" j& N! ^* ~( z; ^
                .default_trigger = "default-on",
$ G! G! _  U- n& A) d1 Q" B- T# J1 l        },
' p4 \8 _. j3 j, x8 ^# J  }4 X% {        {
6 \9 R) r9 z- ?5 ^9 V1 s. l7 O/ v  ^                .active_low = 0,9 N, t) ~- s3 G4 H  K
                .gpio = DA850_USER_LED1,8 ~5 p4 D$ {7 q: R: C& ?& c1 C' f
                .name = "user_led1",, b/ V& I' G0 G( D- K7 o6 [
                .default_trigger = "default-on",9 j% V- c, x; K
        },
3 U' N+ `: l( X; X. T7 a0 U        {
. H4 O# M) R- F* B! l1 s$ U                .active_low = 0,
& x  v6 r* O5 a! |$ I) F                .gpio = DA850_USER_LED2,7 h3 o- l+ H0 s* j9 ?& v$ e, ?
                .name = "user_led2",
7 D* R* e6 u5 c% Z, @% ^2 l                .default_trigger = "default-on",) M" |5 Z$ E$ @' a5 l0 F, F
        },
! @  l0 c! |$ }/ F/ D, J" z* ?) o        {6 Q; R; J5 ?, N! N: \
                .active_low = 0,; C/ ?: w8 C5 r2 f* ]0 j* `
                .gpio = DA850_USER_LED3,5 B" |3 F# R9 Y( [
                .name = "user_led3",1 T3 ~3 m, H! p' z/ ?2 h8 @
                .default_trigger = "default-on",- e4 Z/ A0 j& j6 o' k" k
        },
. D. x  p' E0 a: V! Q& b( K! \' G};
' W, L4 C! J7 g  {- s0 d3 A) s5 G/ _. ^8 T) K4 @; a; U- o1 c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; k2 \# q7 X9 M        .leds = da850_evm_tl_leds,/ r9 {+ i. p) i% U' r# n4 M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) z% }" X1 R$ i1 `
};  f6 ^( Q9 z5 ~/ A6 P' B* N9 Y

  G9 f3 f% X- ?4 n4 G4 mstatic void led_dev_release(struct device *dev)
$ d. g1 K: c0 W8 p/ v{
* A+ p7 z& L/ `8 n' V};
+ `1 @7 n5 w1 s/ ]& l7 e
  |. j0 r( ]8 `9 b  bstatic struct platform_device da850_evm_tl_leds_device = {+ U: X0 n2 Y3 L7 s- b& D6 O1 K$ x
        .name                = "leds-gpio",4 w6 M" U4 l5 u! T6 a+ ~5 m
        .id                = 1,
! [  U, L) r9 G; ^4 T4 L  T' W  b        .dev = {9 ^5 C& n: ]4 I& O
                .platform_data = &da850_evm_tl_leds_pdata,* E+ c+ E. q+ K: V
                .release = led_dev_release,8 X( Y) l# {# z9 {9 b
        }
: d6 B7 P5 A: M. y};
& `" ?5 k9 L" \( E5 [5 C7 K4 k/ [5 F; A
static int __init led_platform_init(void)
6 a. m2 y5 h! c$ ?5 S) i{
# ~4 J; e) f. V7 A) F        int ret;
, w6 Z6 R9 f! J4 P#if 0; \) m" `5 O8 \2 y! n1 t
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 c1 `6 r  o$ _/ y9 ~        if (ret)
4 e3 m" ]) x* c1 P  T: F, E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 e9 @0 b8 J0 g& y0 J/ e& X* @) o
                                "%d\n", ret);
. G) }( g/ J9 x6 `5 A2 t8 ~#endif9 z) [4 N# q' P1 X0 S4 o
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 ~2 i1 s# g) X        if (ret)
$ o. o- m/ x& t2 d# r                pr_warning("Could not register som GPIO expander LEDS");
" P! P( Q$ V5 B" B7 m. m        else
1 ^$ r0 b2 t/ Y* F! R' c                printk(KERN_INFO "LED register sucessful!\n");' s7 h& p& G# ?

& X" d0 U- ~$ l# v$ d1 ?" P        return ret;2 s, E8 P* b" W( d5 N( h' V+ ?
}
1 O, f2 [$ Y" {
9 A4 x; g& Q) A1 ]: wstatic void __exit led_platform_exit(void)/ Q" O- }) {2 j5 Q5 I% F" e
{  M0 k* o) k7 k( \5 O8 f
        platform_device_unregister(&da850_evm_tl_leds_device);0 `0 u. P; n: X8 Z3 M

: ~6 `4 w) T0 s0 u$ U; R        printk(KERN_INFO "LED unregister!\n");( Y" p. T# H3 e4 Y, [) _1 q
}7 W& y0 }) ^) f' a
9 j2 j& L+ p- P6 E# M- c! o$ c! U
module_init(led_platform_init);% e% {  ?' c; P
module_exit(led_platform_exit);! s1 E) E0 w$ M6 x0 ?
. l: U1 A2 b/ D/ z/ L; v% Z
MODULE_DESCRIPTION("Led platform driver");
, W: V# i* l3 l6 Z2 a- L8 [) zMODULE_AUTHOR("Tronlong");' q) K1 z. K# I9 ]3 C( A
MODULE_LICENSE("GPL");* i% R! D! o- ^6 u3 r: l% Z# j
( @9 Y2 ^: w8 `7 I( ^& x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 15:33 , Processed in 0.041406 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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