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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" v) D- L0 v! e; f7 O$ b
#include <linux/init.h>& V5 K% X# {4 F: u
#include <linux/module.h>1 |* o" i1 \2 ]; |8 j4 P1 x6 R
#include <linux/kernel.h>
, C5 T. a$ ~. n) Q- I#include <linux/types.h>! h- Q1 p: f; p
#include <linux/gpio.h>
, ]. k: r; C; D#include <linux/leds.h>0 ?. I3 u1 _8 M% @
#include <linux/platform_device.h>
% S  a. n8 G1 Q; O, k
1 d+ ^4 W; x% @# U! i8 ]- \7 `#include <asm/mach-types.h>  h6 @; O, ]# L1 v8 ^
#include <asm/mach/arch.h>
0 I/ m, \) m& G, V2 v- k#include <mach/da8xx.h>7 h" z/ k1 {' o9 r, b& {  T
#include <mach/mux.h>
8 }, Q) r8 b$ M% ?. M3 O* L, T! q* S& x6 e: R' G
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ C( d% b9 r& T) p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) b2 X2 q" B) ?6 ?$ P+ z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  H& L' \# a; ?! L5 g$ a
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 t% v2 L; ?2 R; r$ ?
/ |8 F* M  B+ d/* assign the tl som board LED-GPIOs*/
- T0 h# D  G  u2 x/ o6 gstatic const short da850_evm_tl_user_led_pins[] = {
) Q" ~, p5 g* c/ j        /* These pins are definition at <mach/mux.h> file */
' b) j( [: p6 g1 {1 s+ S        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  r4 U0 i9 k) O- b: e2 i        -1
+ x+ G5 _3 F* L9 g* s};& x2 S# M# Y' Q
7 v3 c. r+ Q# ?! ~5 {
static struct gpio_led da850_evm_tl_leds[] = {1 A, J, F8 J! o+ [3 Y. ^0 S
        {
, i& S4 G6 l' e$ z7 H5 W                .active_low = 0,6 }: c( a2 T8 ~
                .gpio = DA850_USER_LED0,/ e1 `5 ]6 H# o7 B
                .name = "user_led0",
9 e1 E. B- _6 U' c0 y6 x( B                .default_trigger = "default-on",. V& j6 u5 D" R8 c
        },
/ N' o8 z& Q8 P+ t/ p- m        {) p; t8 x' \# ?1 @7 l
                .active_low = 0,
) _5 x& d; h1 n7 i% J/ G                .gpio = DA850_USER_LED1,2 F" k" l$ q2 E9 m% l2 m8 J
                .name = "user_led1",( @4 B8 n# b! B
                .default_trigger = "default-on",$ w: V6 Z2 ?; }/ C; C
        },
9 G$ ?- a4 S, A5 _7 J        {
* O* s. P0 J- H! N( d! C4 [                .active_low = 0,
5 v/ L* d7 G( ~  J% |& N7 D                .gpio = DA850_USER_LED2,
: t$ t  m, h6 A7 E* x, T                .name = "user_led2",
  z7 S$ N6 |; @8 |( h                .default_trigger = "default-on",
9 H, r5 X* X7 g( e- k6 A        },
- [& T$ l: V2 F, k        {
0 X  O% F# T% p1 f* s                .active_low = 0,! v, k3 i& ?# {! Y& a! K7 [
                .gpio = DA850_USER_LED3,% y+ n  C9 H7 T# F& ~( m. r
                .name = "user_led3",
2 M# ?6 n4 ]$ c                .default_trigger = "default-on",5 A0 a/ M. n, c
        },
) Z1 z& g- k6 E' w; _};
! u$ l' E! b' f+ v* q* V0 J8 J/ `
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 w: [" l( i! N        .leds = da850_evm_tl_leds,
, P4 i" A# C: D) K, b        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% n1 K5 w7 F% I4 {
};
' r0 c, G6 t! u! y4 J" Q) l$ {& d" D
static void led_dev_release(struct device *dev)5 b/ D" x' A1 M) E, f2 s5 T
{
2 `: F" |8 d% V$ h) n$ R  b};
5 M0 G4 e  a- W' o, H% U
* I1 P1 @5 F& c' ^4 C3 {static struct platform_device da850_evm_tl_leds_device = {
1 \6 j  ^" |) a& J, ~        .name                = "leds-gpio",; p, h1 r8 @0 ]' b% Q7 C! w
        .id                = 1,
2 J( _, [: E/ ~        .dev = {1 M5 k9 c  ]% h  n5 c
                .platform_data = &da850_evm_tl_leds_pdata,, N: d: Y7 N+ j' ~
                .release = led_dev_release,
9 c- E5 r2 [: S( V        }
/ @: {* h; C+ ^8 |4 h; `};$ e" \% B3 w6 s, o% |
: j" U' c" I5 A9 N8 r
static int __init led_platform_init(void), _. s, u6 `7 i+ H: \6 Y( @4 R, r
{, R( i; U6 K8 K: S* ]2 t
        int ret;
% D" m: `. f6 A8 `, t#if 0
3 s& A+ f5 f; {5 O5 Z% l" m9 M' {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! ]9 y7 s) f/ [
        if (ret)
" l" e7 H3 s' W; y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; A1 C4 [1 F% N6 E  ?) M                                "%d\n", ret);" U3 S1 {. F4 r3 J
#endif
8 A+ Y) z; j3 `        ret = platform_device_register(&da850_evm_tl_leds_device);
& S  a/ S. c* N0 h* G7 g6 c" h        if (ret)
- v$ N/ v3 U1 [6 r                pr_warning("Could not register som GPIO expander LEDS");
4 j/ ], r* N4 T& r7 S        else
/ f0 R9 ~4 m8 E6 R                printk(KERN_INFO "LED register sucessful!\n");. U2 ~! |: N1 |0 R* r. ?6 L

: [- N- e6 n/ X        return ret;1 o3 G& L+ c  k  `
}. ]/ x' C7 t5 ?& C  w9 m! c
" ^; K# t6 j% _  V: R
static void __exit led_platform_exit(void)
# m% q$ Y3 L( N{
* P! P5 M* g. @  i! L9 I! d        platform_device_unregister(&da850_evm_tl_leds_device);0 Z. D3 b& u5 `1 u" G( C1 b

9 I1 C; @1 v  r4 `7 o7 Z        printk(KERN_INFO "LED unregister!\n");
1 i* p6 }/ G7 x+ c; B}
! K5 {# W: M9 T& c% m& E& q3 |  E2 y; \- o1 w# E, F
module_init(led_platform_init);
1 P& ~" l6 `( w$ y5 Nmodule_exit(led_platform_exit);3 l- g& J+ n: ?

' m+ U0 K. O  s7 h, j' x& I$ {2 |MODULE_DESCRIPTION("Led platform driver");
" w0 v; ^. V" M  E. K; \MODULE_AUTHOR("Tronlong");/ O4 d! q& F# }+ p
MODULE_LICENSE("GPL");
/ {% h% G- `9 R* t, p/ N4 @) T/ |# {% U# v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 18:26 , Processed in 0.041006 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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