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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 R7 e* l/ }  D3 Z; L
#include <linux/init.h>
# y9 M; n5 d" s, ?. j1 A. \#include <linux/module.h>
  w1 U( @4 f" K: O. \#include <linux/kernel.h>
% H3 F: a  W# Y1 @7 X' _, x#include <linux/types.h>
% D& T0 e+ y  |# g8 M' K; e) y#include <linux/gpio.h>! G) g" G, u4 B  b
#include <linux/leds.h>" K6 s- m4 e/ c
#include <linux/platform_device.h>% y3 W: ^% C1 Y: t2 Q

: |  [* E2 h* K& D* j% Q#include <asm/mach-types.h>; C) o; E8 Y  }; A* k3 X) G
#include <asm/mach/arch.h>
0 }: ~* n4 k3 W) J9 B#include <mach/da8xx.h>
8 q, C6 Q- _% C4 q+ K#include <mach/mux.h>. I& A! c& M: t) K/ ?# `% S
, |! f) O4 C: Z& A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 z1 W/ A( ~6 I) z6 Q  ]- P#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# w8 {# O0 ^3 M7 ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% v5 ~3 D: s2 U, l  A#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 K4 j% l' P0 u1 w4 @& P7 G, F' w" o! O3 u
/* assign the tl som board LED-GPIOs*/7 a0 L  [% Y. u" D" H
static const short da850_evm_tl_user_led_pins[] = {
) _( G- s8 {9 Q        /* These pins are definition at <mach/mux.h> file */' Z* F4 J# W/ e2 @% T& [- B2 G6 b
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 a* q; C& e( k& h        -1
/ \, U* B7 L5 p9 v};
2 p& v0 c! P9 p* f) ~) p4 _
% R1 F& v/ L7 _; u+ Estatic struct gpio_led da850_evm_tl_leds[] = {
' C/ y' ^" F4 }9 z7 f& u2 s( |, @        {
4 r: x) e: f) e                .active_low = 0,% _% _3 v9 d! {& M
                .gpio = DA850_USER_LED0,, |. c8 r, d5 B- M$ V
                .name = "user_led0",
: ?7 @& O+ {3 ~  h                .default_trigger = "default-on",9 p  R% O- ?2 d; K
        },6 V7 a/ H/ z5 J% x
        {2 k; H. q% r* [6 a8 F
                .active_low = 0,# w+ k  P9 t; j" R) F" D
                .gpio = DA850_USER_LED1,
/ g! v0 x4 o7 w5 G) _' E                .name = "user_led1",
1 u% H" C* b; J* r- [' R6 B                .default_trigger = "default-on",
3 x5 J+ g+ B, f7 }+ F        },9 a6 T; P- F( s. D- f
        {
/ R$ {. |$ h, |                .active_low = 0,, j$ L, e1 {' \- x# X! X5 ?
                .gpio = DA850_USER_LED2,9 X# X% l1 P4 w
                .name = "user_led2",
' ^4 V, e* b2 @  u& n, ^                .default_trigger = "default-on",
" E/ }0 p; I' g5 \3 p        },/ \. }2 D* e0 C/ X1 A
        {7 e4 a3 k# v% }1 i
                .active_low = 0,) r* d: Q/ Z. T
                .gpio = DA850_USER_LED3,
, @1 s  i: o: q& S                .name = "user_led3",
, {9 d4 l% [! v, Z# F% {  x: o                .default_trigger = "default-on",
* F6 b  f0 ~. G2 o+ ^% S% C        },
7 H7 p8 \" q! T};$ F9 p/ t1 Y0 v+ P
* ~2 O$ w  B7 c5 h5 h/ i0 w) j, B8 L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! R8 L3 T1 J2 I6 K, r) t8 p        .leds = da850_evm_tl_leds,8 D+ b3 `2 \; {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* @7 z- h5 O7 n- k& L};% i1 s5 {9 c/ T+ O- }. i: d

. ]) T. M) o6 |' n" N# X, y: a  wstatic void led_dev_release(struct device *dev)+ a) r. I5 a# L
{6 F+ C% i' V5 R$ c& {8 D- U2 k
};4 _% S- K4 a' g- L  J9 c
- @7 T1 P/ m- W; S4 b& n
static struct platform_device da850_evm_tl_leds_device = {
( i, Q0 ]2 |0 G) f% g4 N% p        .name                = "leds-gpio",' `' K# j6 B7 T* V& u7 V0 A
        .id                = 1,
0 }/ U; \9 h" g- @, D' Y        .dev = {/ b9 B& h$ A4 K6 E- s- Z
                .platform_data = &da850_evm_tl_leds_pdata,
( }8 W7 h' o+ h  z2 P( T) }                .release = led_dev_release,
( @3 e6 D3 J8 I9 a: r6 d: O        }
* ^% D) z/ n1 T! s( [/ q, o};
) R# S& }  P+ m( Z4 |- H2 I: s( G% X0 Y' s
static int __init led_platform_init(void)
, j7 n8 u- ]+ L- ?{
+ _5 I: I3 A3 F4 m" U* h# F        int ret;
2 u0 E/ R1 _  L8 ^#if 0
/ \/ N: Y, o: J3 y6 K3 U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! o7 L/ N' r* j/ i# J        if (ret)
2 y  {) _3 P2 W* X                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ T' e6 I7 h) q% ^
                                "%d\n", ret);
8 G& I, a% b. o0 X#endif9 X+ i* D& Q( H* q$ F' ]
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 g6 o; W9 r' K% v6 {; |        if (ret)
2 _  d: K+ O3 G, w; K# l                pr_warning("Could not register som GPIO expander LEDS");
, f3 I8 X$ z! n0 w        else
/ T8 u$ c+ i: M: f+ T                printk(KERN_INFO "LED register sucessful!\n");1 w% q. ^2 G" ~0 V$ E0 o0 v
' n+ z% Z9 f9 G. s5 D" v
        return ret;
( u0 X% \- V- c- D: h/ E}
2 _1 P; {3 O& \# F4 ?& D2 }0 X$ J/ d0 X* l* ]+ }! O
static void __exit led_platform_exit(void)
1 ^8 }4 N- M% ?1 v{
. B- D- N4 @! O$ q! v# I- y        platform_device_unregister(&da850_evm_tl_leds_device);
0 @7 r/ m; l1 r- t
  y  b" Q) a: @1 T: K) D4 m+ @  A) k        printk(KERN_INFO "LED unregister!\n");; ~# @) a- A& I/ j1 |( Q
}
, a: Y! h' N3 a- o0 t0 K% H/ s! }, z- F( T  Z, i
module_init(led_platform_init);$ f1 `3 L9 P+ n. B  G
module_exit(led_platform_exit);/ r, w  a& d" O9 x9 l. N. Q
, v: l  {$ |# i; E) t" Q
MODULE_DESCRIPTION("Led platform driver");3 M8 K2 z2 @# D# r/ _* f! m
MODULE_AUTHOR("Tronlong");% w* e3 R- K' _6 C2 j4 g. V- C
MODULE_LICENSE("GPL");
) s) A/ X. R2 t
! l! \/ g' T- b) B9 C. v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-28 14:51 , Processed in 0.038876 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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