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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: e1 r0 W7 B) _! K. F& s#include <linux/init.h>! v' W6 P  T' d6 y& O% E
#include <linux/module.h>0 G0 H8 T" m/ ~1 F! e; X. Y
#include <linux/kernel.h>
6 h* p% w: q: Z8 Q6 j# z#include <linux/types.h>: S% N- c6 S! `4 k
#include <linux/gpio.h>
8 y0 X1 s& r3 z; _#include <linux/leds.h>, r$ [7 ^( ^$ C0 H
#include <linux/platform_device.h>
; H; D9 H$ `8 F5 ?0 ?# e/ r$ V: _7 P! m
#include <asm/mach-types.h>
- S5 @3 y% W1 Q8 u#include <asm/mach/arch.h>
0 _# |: P: \  H' q6 s# v4 ~#include <mach/da8xx.h>
- n) P) |0 Z, j# C. |- g/ Z#include <mach/mux.h>
% E. p; @$ S+ i$ E
! s# N8 `4 R, l5 q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 Z" e  A' S: W6 r& r" [( N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* _0 k3 C5 M" a7 @) `% f$ Z  a& N1 X
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 }: A) u! D& t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ o1 Y0 _! O$ V+ R. l

/ z1 {+ \# q4 h1 l/* assign the tl som board LED-GPIOs*/: X; @8 M% e" [! C; I! r  g
static const short da850_evm_tl_user_led_pins[] = {+ c4 A  ?' o1 ~* W
        /* These pins are definition at <mach/mux.h> file */
0 G5 T; Q0 Q7 C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' w7 ]6 _# g& B
        -1
3 }9 d3 t2 |% H# Z# R3 k! o* |" P};9 ], M1 v5 g: w% I- P3 c0 q- M
: ^4 x# P# A; ?: G. q2 ^& H% _
static struct gpio_led da850_evm_tl_leds[] = {6 ]1 [) Q) J) D2 N. k) w
        {
. _; W/ n( E1 t; i                .active_low = 0,; V- J2 a! z8 ^" |6 G, q$ s
                .gpio = DA850_USER_LED0,
8 N! U' S- t  G. _8 n                .name = "user_led0",
* N7 a. b, k$ w& H) D! |! X                .default_trigger = "default-on",. K% T. T/ o! ?1 ~) b
        },
' j7 U$ }8 `, ^% @; W7 w        {
/ t& g+ |: q8 T3 D                .active_low = 0,/ v) j% X4 Y8 z
                .gpio = DA850_USER_LED1,2 G$ i& {  a+ l5 l. L" I- x
                .name = "user_led1",
. ~( O* M% m, ^& Y5 Y                .default_trigger = "default-on",
) a: f6 D, M! D& H" q        },
0 m8 H8 k  t1 z" X! g4 D1 G        {
* L. s2 @9 G$ _/ J4 X& a( w( h7 K                .active_low = 0,! O; G# q: E0 Y" m$ s
                .gpio = DA850_USER_LED2,
; L, x) I. l7 M! _" g                .name = "user_led2",( X% i3 N. o2 X' {
                .default_trigger = "default-on",  M! a  c) X7 p/ v  o
        },0 o6 {0 q  A3 i5 N/ v
        {3 T  Y1 i7 U" ^% g/ V/ g8 Z( Q! _
                .active_low = 0,
" n) L6 |1 C" @4 ^  A2 |; j                .gpio = DA850_USER_LED3,0 G' q; k, M8 F: p
                .name = "user_led3",
3 n3 \, t0 j) ~' \- m                .default_trigger = "default-on",
* L: U0 m' \' {: z+ O# n        },
+ y7 V! y4 e8 v& L8 J};/ N! h2 v7 |' w$ g

) x/ g6 A' r: e0 O% m2 vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ @/ ^3 \3 a  Y  E' R
        .leds = da850_evm_tl_leds,0 G. z. k8 O- J* B/ V
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ K, s) N* ]% V' u, Y( D) R
};6 N: E6 }9 `* o, y+ |& u
/ m3 p0 L, M1 d" \" J; n
static void led_dev_release(struct device *dev)- |& z+ |: S  k6 x! ~
{
8 s& g" s  p6 u$ @2 [1 h};% x/ h! e# n+ y3 H* E) k

6 h' \+ U2 {; X' a8 l( @, estatic struct platform_device da850_evm_tl_leds_device = {
2 Y' M2 X# ?! D' ]6 Q" y7 c# w        .name                = "leds-gpio",
- A9 O, Q' p0 ~9 i        .id                = 1,* ?/ H' c. q, k8 C
        .dev = {$ t+ a, S& K2 d( |0 Z9 k
                .platform_data = &da850_evm_tl_leds_pdata,
. j; p  i- y$ o                .release = led_dev_release,) S2 p% `9 p* K: b4 G; J9 g, y& L  h/ O) y
        }/ D6 A" ]$ ]. q% w- ?
};
( w9 P7 J. N6 ?: v, `4 u3 o* b, c7 w6 e6 h, z( Q3 Q8 l* m% J
static int __init led_platform_init(void)
8 W7 v8 v3 P& L7 P: m9 u* @{0 P1 F% E9 L% O7 ^8 u
        int ret;6 s9 z3 Y) f' x/ M& H& q
#if 01 N$ W9 Y& P- J% Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 O2 n/ t# K5 B; V4 m        if (ret)
( C( d) }7 [5 r, ~8 t5 [                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 U8 T+ [( c2 B5 J9 ]/ j                                "%d\n", ret);- F* ?" `0 r# b  Q+ C( `6 G, V! M3 ~
#endif; G$ {7 k1 X, s% A4 N* z4 y
        ret = platform_device_register(&da850_evm_tl_leds_device);7 P4 A$ C) J( y" x
        if (ret)
2 p& P- F; d" d9 |                pr_warning("Could not register som GPIO expander LEDS");
& P5 R* D( \" D8 L8 N0 x' Y3 k  V, T* A9 u        else
2 }( l, Q7 R1 A- y5 c9 i                printk(KERN_INFO "LED register sucessful!\n");+ Q) j" s) H; I+ S4 c3 L. `
% `) E  I/ T% X7 u: C1 U0 s
        return ret;" {6 ~( G3 d& m: O* k
}/ ~9 V3 n, l- A' r2 e% S2 q

# Q, [$ Q  C! S5 t! g1 ~; ustatic void __exit led_platform_exit(void)
: Y: a0 W' Y( c: s{
( Y: v( j, F" O& Q( @( N        platform_device_unregister(&da850_evm_tl_leds_device);/ ~, N( n3 i7 C  z/ o' V6 w
4 g  i: o! b$ g! @* v% J! q
        printk(KERN_INFO "LED unregister!\n");# T) d! _) ?  u" E8 k. h, {& x
}: A' D* V+ k# x4 b6 M! s, n, D' _
0 I: ?8 s! S" }/ r! T% T/ @# F
module_init(led_platform_init);
1 g7 h/ t6 x0 X9 p3 gmodule_exit(led_platform_exit);6 K! Y, r0 T# e* @* H

) i; e, @# V: y& h; ~6 |MODULE_DESCRIPTION("Led platform driver");9 s3 [, o& E7 @% @, k
MODULE_AUTHOR("Tronlong");6 O! K. D! p- n! r/ q; X
MODULE_LICENSE("GPL");
8 P6 f  K/ I! t( Q% n1 U! b9 R7 t/ Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-9 01:31 , Processed in 0.044197 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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