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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 G# K/ H) J2 U" m#include <linux/init.h>: B" S/ G. s4 ~- o1 Y
#include <linux/module.h>: B- E# Q+ {: `
#include <linux/kernel.h>- K7 i8 L7 a- Z0 C) w
#include <linux/types.h>- b3 d3 j2 X& X
#include <linux/gpio.h>. \" h3 C, S  H2 i9 ^8 I
#include <linux/leds.h>4 u8 C5 o7 g% D& ^$ C( y& N1 F
#include <linux/platform_device.h>  S3 ?% t* z* h  [7 x6 R

8 O7 W+ c7 _" J9 d#include <asm/mach-types.h>- L1 @5 r5 A! Y# A" _" |) e
#include <asm/mach/arch.h>
, e; I6 p4 I: R5 L#include <mach/da8xx.h>
" e# U# K* z4 s9 W#include <mach/mux.h>
  l, Z# C% ]7 y" N1 |/ u, s0 ?; b$ n" e
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! e1 l" W; j/ T" r8 x
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 X/ o2 f* {% M9 v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 M0 |2 G; O- n5 ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). j, N* t) n9 {

$ n" w; X# n$ |6 K/* assign the tl som board LED-GPIOs*/
6 B9 o" t; f" r3 u' pstatic const short da850_evm_tl_user_led_pins[] = {1 `$ a- f# g7 y
        /* These pins are definition at <mach/mux.h> file */
% l* X3 S" N9 ^  U( H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# i! S1 @% f. d
        -1
0 B, q+ T) }9 v: R" f( Q};( F+ d7 M- o5 L) t( `- v

) u; u4 {8 _; U' |static struct gpio_led da850_evm_tl_leds[] = {
1 q% H8 z( F; u" J5 b        {
' b9 O! A  L- T' ^' \9 Q                .active_low = 0,
7 r! k( D: A0 X0 q+ Y& v2 |                .gpio = DA850_USER_LED0,* c: J, W; \( K8 ^! Z
                .name = "user_led0",6 p' V* s4 D. m6 e/ Z
                .default_trigger = "default-on",. S% L7 \& |  ]
        },; Q$ i- Q: |* z: {6 h" C% t
        {
3 |  U! K6 w0 H' n7 l: o. e                .active_low = 0,+ F8 m' W% l$ V' J
                .gpio = DA850_USER_LED1,
- c  P0 O, ^0 u. W7 L3 n2 s2 ^                .name = "user_led1",
2 S5 }! V, x7 E6 r  ]                .default_trigger = "default-on",
0 u9 v) v" D& l5 ~! v1 i        },
3 f$ O: x3 s" }        {3 A# w% |2 r( g' ^2 n, H
                .active_low = 0,% E1 X! B+ ?5 w
                .gpio = DA850_USER_LED2,) i9 B% a- Q& W: w7 C
                .name = "user_led2",
; @8 }+ n9 A, f- O% d                .default_trigger = "default-on",
& X) |, R2 s; {3 h" C' N        },) g( x( ~7 b! ?* z/ J
        {# G) Q. o: f6 T
                .active_low = 0,: C( ~% |- \) e( n/ s( U9 I5 ^
                .gpio = DA850_USER_LED3,
. \  q4 q; e, i  g- H( x                .name = "user_led3",; v- S7 g5 x' {8 R7 N- @
                .default_trigger = "default-on",
# Q/ }* K1 D8 L$ ~" L3 v. b. s- ]        },' c2 B: e" S+ i: j/ y3 V0 `$ l4 r
};/ H% u5 s0 i: X% b. G% O

5 \, q# z6 g: i4 q+ bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) W% \# G- W2 [, q" G
        .leds = da850_evm_tl_leds,( X( T8 a! ?; q& I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, t# W6 x! X1 m' t, Y3 o1 K};
$ Q. b3 D, G5 S) }
' |. @+ l  k3 {static void led_dev_release(struct device *dev)3 C  k/ r( X) g2 R& b$ h
{8 a& O  W% v6 {
};' Y3 L1 e  c# H* B0 d7 f
$ W3 ]* n9 m' j& W, s
static struct platform_device da850_evm_tl_leds_device = {
: u: U6 ]9 U4 Y; |4 e" }        .name                = "leds-gpio",/ l( L2 h' m- D& q7 y1 X
        .id                = 1,
; ~. n9 A/ e+ X8 q3 |        .dev = {
/ D7 `* }6 g8 A; N, T( ]                .platform_data = &da850_evm_tl_leds_pdata,) v" |$ ~$ N2 ?2 l: S% k
                .release = led_dev_release,
: f9 i: @3 U% _( [, B. a        }/ f# B' b0 U& |" \; m
};3 O0 X( V) A: e7 w$ _* j/ R8 D

- e+ i5 w: ^* ]static int __init led_platform_init(void)
& h) J+ }/ v1 _5 N( g{
! a1 q7 L, k2 b. V' T; y) f        int ret;
8 T% t$ p/ A' ?#if 0
3 A+ n/ _1 Q/ F: \( |; Z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( ?& t8 }9 H; B6 V# i+ i        if (ret)" M* p+ @7 J& W2 I$ }
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 J8 ?0 l6 A4 n! R  |
                                "%d\n", ret);6 F% c. R, Z' X& A' i# `! _8 c
#endif
* I4 Q# ?; h& {        ret = platform_device_register(&da850_evm_tl_leds_device);+ _6 X( l4 P- O3 b9 q8 V
        if (ret)3 O- B5 s. W6 B- c* M
                pr_warning("Could not register som GPIO expander LEDS");0 _! u! ^  C+ \0 g  D* D0 Y  \, M
        else, Y! P8 `) w9 g$ t6 J9 `0 k
                printk(KERN_INFO "LED register sucessful!\n");) S' e- y' l# I/ c2 E7 z: @; T: |

' f2 d2 X1 O( e) s. _  w3 s        return ret;
5 X$ z5 q3 {7 X, A2 s}$ P: Q: V5 v# n7 H
2 f( a+ C, U, U, v
static void __exit led_platform_exit(void)2 o, ?% ]' f- T
{
+ b  z, b+ C, f* h6 ?        platform_device_unregister(&da850_evm_tl_leds_device);/ E( H4 o5 R& z+ G  [5 C
& L5 R; a! _4 c7 x
        printk(KERN_INFO "LED unregister!\n");* X3 B8 q3 c* y+ T
}+ e- Z; A. B0 q5 j+ E: v

7 h; }, F$ Y. Vmodule_init(led_platform_init);
: m$ z2 ~, ^5 z0 U2 jmodule_exit(led_platform_exit);
! G# e9 t7 a+ M. z/ C' m! J) |, M3 L6 M6 T/ c4 q6 V8 z: d
MODULE_DESCRIPTION("Led platform driver");
$ ^1 \8 K/ ?* A5 z1 j) sMODULE_AUTHOR("Tronlong");
" c2 y* {7 n, i& }MODULE_LICENSE("GPL");6 q" i3 _' ?$ n- {4 U- ]# Q

% K* _' V5 M8 a4 `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 10:08 , Processed in 0.044194 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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