程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. X/ D/ \/ T$ s6 @* ]; W4 x
#include <linux/init.h>0 a3 [6 w9 T8 b! w
#include <linux/module.h>( U% i! g2 X* U$ Z
#include <linux/kernel.h>
( j# v8 U! ^: P#include <linux/types.h>
0 w9 R6 y; |, x$ t! z#include <linux/gpio.h>: c3 ]% [6 ^7 o" i2 w# ^
#include <linux/leds.h>4 I/ ?- }& ?+ K9 q% N" o% |
#include <linux/platform_device.h>
: p1 T, \, }3 x8 x( B4 z  W+ S( \" m. i9 {7 R: u( T
#include <asm/mach-types.h>+ @- T$ h- U4 b( R3 ?2 x; Q# G; T
#include <asm/mach/arch.h>
2 }, Q; x& V, k$ X6 Q  r  e/ x#include <mach/da8xx.h>
0 i, x+ H+ i" q: m; p5 E#include <mach/mux.h>; b3 e* ?. Y6 ?9 [8 e; m, j
; n- c; g9 Y" k' i" F2 J# z/ N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" V' {. O! x( Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# x. |& h& ?! A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' B5 D* T" g9 ]/ B( T9 \9 t  L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- m, p' B' A3 H) m  o8 E
: D* H  F, q( f% w6 E$ ]/* assign the tl som board LED-GPIOs*/
  C, Z6 C+ r1 V$ X# \4 Ostatic const short da850_evm_tl_user_led_pins[] = {
# f, k4 u: R4 _/ a; v" i        /* These pins are definition at <mach/mux.h> file */
5 {) r( R& m+ p* i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 B/ a7 ^5 B" P% C; P% ?! `        -14 [+ p1 o: x+ A0 A/ `
};+ C# B0 K! s. K; s  [& T& {
; ]3 p8 N$ @$ J% v; x9 @/ ^
static struct gpio_led da850_evm_tl_leds[] = {0 V% @5 U6 r) Q
        {! z0 x7 X3 E- G$ `% S3 z' O
                .active_low = 0,# m8 G# E( T; P2 D
                .gpio = DA850_USER_LED0,
2 S3 v- e8 J2 H& r! X, I                .name = "user_led0",
. i5 ^8 l: ^! g/ @3 @4 V, o                .default_trigger = "default-on",. S& I  f  N; v1 K8 o/ n  C$ `
        },
7 W# [! L7 M( H9 X6 J, `        {! Y% M8 s/ Y- `$ V; u) k
                .active_low = 0,1 B1 A7 g; Z6 Q+ M4 M& t' y( N: X" c
                .gpio = DA850_USER_LED1,1 p/ Z! ]8 R- J8 J, n" U$ s- O6 P
                .name = "user_led1",
# v5 g5 ~. G  A( G) i                .default_trigger = "default-on",. G! B; Q9 y+ a4 n% L! i9 _
        },5 L$ A. }9 q0 p) o: s* i
        {
/ c# w3 h2 m2 A" ^$ G8 s2 ~                .active_low = 0,
5 E, n' i6 x6 t. R                .gpio = DA850_USER_LED2,
1 ]0 B; W! K: K& `) d# P& W. o                .name = "user_led2",  u. r  n# X% x% X; h
                .default_trigger = "default-on"," v& z0 N8 [) Y8 {5 {! K4 z
        },
2 H  f0 H* f: V# U5 J7 y        {! E0 x% O, o# ]
                .active_low = 0,# j+ z: @5 B9 H! ^' U
                .gpio = DA850_USER_LED3,
- _/ r7 b/ M6 T                .name = "user_led3",8 p& z" V; Z; [2 M
                .default_trigger = "default-on",4 x0 Z; n8 O; N0 K- D) i
        },
$ d8 H* p1 _% ^$ I+ p1 E};/ l2 a  b: r$ s) z+ c4 p  W
7 n% W; J, |! ]8 Y! i; J( X% C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 r" `' i, i1 n; x* `- i- K$ g        .leds = da850_evm_tl_leds,9 d. j$ l+ ]+ @) s, e! O; ?: Z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 m7 b% X3 M7 A! u% X};
; o9 R3 ~1 ?* U$ k3 ], R2 ~) V
  B& L, e& p& R; U& ?static void led_dev_release(struct device *dev)
/ H0 y3 n% x% @* i{9 `+ h$ }! w& Z% R4 t
};
( x' |4 e- V# I, }1 H) v, ]; t" y) d: K9 j
static struct platform_device da850_evm_tl_leds_device = {
8 s% Q% N7 T4 T/ Q        .name                = "leds-gpio",
( E+ G7 J3 e/ Y/ t" A        .id                = 1,# p$ p$ ~. |, G
        .dev = {
  h/ T! E. O+ G/ S                .platform_data = &da850_evm_tl_leds_pdata,
1 x/ t8 H8 P" ~/ m3 d: Z                .release = led_dev_release,9 P4 _, M4 {, X! K4 L% q7 l
        }
& [7 d+ M$ ?& b};  m! [% L# Y9 J) r

' o) e! b6 F8 Y* Y( Ustatic int __init led_platform_init(void)4 O! p& L) o" P% n. }
{
9 p  _: J- x7 L+ R8 t: y        int ret;
& `+ G6 x5 m! m& ~#if 0
4 s( N3 [) l3 H        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! ~" W; R, H9 g3 _3 x% v' H  i        if (ret)
8 V7 y1 s3 K) O4 B$ h7 J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& P+ K; V( X4 ?3 M                                "%d\n", ret);+ Y% R! Y% q9 y1 E& {  k- ]
#endif
, K+ L/ _5 h7 o        ret = platform_device_register(&da850_evm_tl_leds_device);
2 z, e7 V. |3 O$ n3 Y6 D        if (ret)
' A# A, F6 O- i: \9 S                pr_warning("Could not register som GPIO expander LEDS");8 c3 r# Z0 v1 U& d0 M% Y
        else* u5 i9 _" c( K
                printk(KERN_INFO "LED register sucessful!\n");
' W9 t! G5 z) b9 ^# Z. ~# ^# f0 p: y) @8 X
        return ret;
* g& B. j5 n. o% [7 h2 s* ]2 d% u5 v}/ U7 M4 m/ `" ]
% R0 A& |" |  ]
static void __exit led_platform_exit(void)) S" W; O; C/ ^
{
0 B, m' b- f* x) l2 C8 a4 `# W) \, C        platform_device_unregister(&da850_evm_tl_leds_device);+ z, ?/ \7 l1 v4 N; i; B8 L

6 o* c" w& e& r( h( @        printk(KERN_INFO "LED unregister!\n");+ F+ Y; o8 g$ Q3 X2 E& n% I1 e
}0 L& D# f' o+ {# [
1 d$ G& _4 x  q* B* ?: Z: I
module_init(led_platform_init);- T) i7 p, u* o+ ?% @/ \. D" R" {
module_exit(led_platform_exit);6 Z7 n' j' N% T7 [

9 q% O- |( [" y. ]9 V7 s  T! Y. f9 QMODULE_DESCRIPTION("Led platform driver");
' x  M" l) t: W) A8 m, sMODULE_AUTHOR("Tronlong");& j( P0 i. i+ L, F* z! J
MODULE_LICENSE("GPL");
) d6 E; [& R* U3 S4 H1 r" @* v, j2 F# z* k; J# a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-16 14:36 , Processed in 0.053226 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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