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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 x& o& T1 Y1 W# `1 W6 ]: }' m#include <linux/init.h>
; I# b0 U- F; `; n; H#include <linux/module.h>$ o" [- E% j$ A- j1 y+ L
#include <linux/kernel.h>/ S0 @4 Q+ V: z
#include <linux/types.h>" ?$ h+ G& R5 ]! J* a  w0 O
#include <linux/gpio.h>
8 R, w2 ~0 F8 w* I1 H+ L#include <linux/leds.h>
- B/ k/ H# O7 x) t#include <linux/platform_device.h>
" c0 a9 B0 g3 y8 x
, H2 V: [3 T! X4 _#include <asm/mach-types.h>  n9 `) x0 I2 H% U% a
#include <asm/mach/arch.h>; C* L8 ]5 h$ c- c9 f6 }
#include <mach/da8xx.h>
9 f! |2 e3 }$ a7 V#include <mach/mux.h>0 S) g% p; D6 H7 y) Z( O. z

& ~0 ~  e2 _4 c9 @$ ~$ X#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): Y& |& u: {+ @- M- ^7 d6 v7 b$ _
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ o; `/ f% V/ W+ G6 e* J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 \" A' G# _1 b
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% d' _7 x8 c% C  `% |
5 n* e8 f" K! \; P/* assign the tl som board LED-GPIOs*/( J- w& R" x* _+ s& h
static const short da850_evm_tl_user_led_pins[] = {
+ k! u$ l3 F' L5 e% }        /* These pins are definition at <mach/mux.h> file */4 A) l5 F- J$ K4 A& S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  P2 o- T( j7 w- T# g( `: a        -1
! Q  D* b5 B% \& n: x3 H};
! F' y7 k& N( a& D% J" Y. `+ H5 D% G" o, k2 J
static struct gpio_led da850_evm_tl_leds[] = {0 E& F6 o* C) _( n
        {
( [9 P0 X* ^2 X8 m7 R- y                .active_low = 0,
) Y; e6 d7 c, I5 E* v* _. V                .gpio = DA850_USER_LED0,
1 o+ }3 V( B. t$ j7 u                .name = "user_led0",+ }2 \# |+ J  j
                .default_trigger = "default-on",7 P: r2 Z6 g) l; I/ _8 o% D& E
        },: D+ i4 U8 e' G* m$ J& r# m
        {
1 P6 ^# F" g1 ]% b& a                .active_low = 0,' ^; _& O+ [- n0 `' ^" \$ i
                .gpio = DA850_USER_LED1,- D2 Y8 l! O2 T* w/ y/ D/ G
                .name = "user_led1",
! K; `, |: s4 x4 X% v                .default_trigger = "default-on",
% y/ C% {5 D$ r9 Q4 m        },
  {6 H  D& o. K        {
; j" H" [8 Q3 [+ g+ h                .active_low = 0,
2 f) d8 J7 N/ a( v- H" F                .gpio = DA850_USER_LED2,
+ o, ~9 N. o, H7 X4 K2 I# j                .name = "user_led2",# G5 d% W) p4 h. X) u
                .default_trigger = "default-on",
. j: J& x' n4 F        },' q4 M+ A( e& o& k& ~( v9 v0 H
        {
3 q& K+ E, ^' \3 w                .active_low = 0,
& y  q# v, H  r$ n                .gpio = DA850_USER_LED3,3 B2 a) P8 p5 i, O5 `
                .name = "user_led3",
' r, J. z, c. Q5 ~4 |7 m' [" y0 I                .default_trigger = "default-on",
4 l, w! H& @, N9 N        },( ]( X- U% F. ?* E5 g. R5 p
};3 }1 s* L0 A. ]; T( N! l; K0 a+ `
1 N  l( K3 v# g, B: Q  d) V/ L! V
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 U4 Z6 _% q1 l! l+ W' L. M$ b8 j+ Y3 {
        .leds = da850_evm_tl_leds,
! g2 s  g4 J. R0 q" F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# a8 u7 z2 e  O/ x  c, x};( P! ~! G; o, o5 M- _8 C
0 G% y9 k1 f3 J  z. j
static void led_dev_release(struct device *dev)5 O. e4 n8 u; M* t3 r' k8 y
{
) R; ^8 @1 [) q9 t};
! `7 N' k. K' o* k
$ U7 T, L, n8 R5 v- Astatic struct platform_device da850_evm_tl_leds_device = {
& m# A. l( g# t2 F  w6 e" }        .name                = "leds-gpio",
- L$ g# T( n  S- ^5 ^        .id                = 1,
7 c# {. ?/ o1 x" F        .dev = {+ R* z1 c& B# n7 p& C% n
                .platform_data = &da850_evm_tl_leds_pdata,
0 F9 [( E4 M3 k* c6 U+ `                .release = led_dev_release,
3 h" P7 u$ a2 c5 Q        }5 O) J) [% P6 g! H8 A3 ]2 ?
};
8 w4 H$ T7 j4 d8 U5 t. f$ _" e
& o4 T5 h! q; u+ d5 O% \' \' w' Pstatic int __init led_platform_init(void)8 d% J% V# A" _' ~1 E( j, a$ T
{+ ^' c4 i+ P& A. `) q1 N: B- Q; f. p
        int ret;
5 z$ Q3 _  r; B$ P7 I#if 06 \5 `3 `  K4 e' l# X, n0 A
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, q9 |; n  p( G# n% v
        if (ret)" Y# r1 u+ P! B! q( \) J1 v2 F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 P( ^% _  }" g  _  u' x3 \9 i
                                "%d\n", ret);3 V- L: o  M7 T, G0 m
#endif  D6 x1 w0 U7 S/ U
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 k$ k' `- y* b" b        if (ret)8 d2 n' [( m" k% A) s
                pr_warning("Could not register som GPIO expander LEDS");
. l7 C) g; z1 A1 Q' Z1 p4 O        else
) b' Y. E6 q$ j/ k# U8 m2 c                printk(KERN_INFO "LED register sucessful!\n");3 N) r% Z% v0 A( b

4 _3 J3 s) ]& g1 V2 S3 d        return ret;1 r3 n+ E5 E# I' q  m
}4 l5 Y2 Z  U9 }/ T; H& Z
+ n" |& E: B( c  n. ]$ j
static void __exit led_platform_exit(void)
9 {7 m. _5 y5 u% h+ U: E4 }7 F{
6 k6 m' K- e9 h% d1 U! |0 F        platform_device_unregister(&da850_evm_tl_leds_device);
" u& R! F1 }4 \7 y
" X5 r* U, J! W5 ~9 H        printk(KERN_INFO "LED unregister!\n");
1 j# S9 X: r1 o/ c- G1 [/ ?}" o7 `4 i5 v$ d
2 f! w, c" Q7 X- q6 w' G2 W
module_init(led_platform_init);
0 Y0 H' x; r  B0 p* C* qmodule_exit(led_platform_exit);
6 b" [7 ]3 d- u, j( b! M2 \7 K' B" x4 U: y* }2 L# C! n
MODULE_DESCRIPTION("Led platform driver");1 T& r/ s* y' _
MODULE_AUTHOR("Tronlong");5 M! V* V& R5 P) f3 Z
MODULE_LICENSE("GPL");
  d% A: l# }. P/ j
% E) M* T8 n, O0 i# Y. z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 17:49 , Processed in 0.039896 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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